forked from cordmaur/WaterDetect
-
Notifications
You must be signed in to change notification settings - Fork 1
/
WaterDetect.ini
191 lines (164 loc) · 5.39 KB
/
WaterDetect.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# WaterDetect configuration file
# Please note that All section and values are required.
# There are no default values hard coded!
[General]
# sets the reference band for resolution and projections
reference_band = Red
# specifies the maximum percentage of invalid pixels in the image area
maximum_invalid = 0.95
# indicate if it is necessary to create a composite output of the area (True/False)
create_composite = False
# indicate if it should create the PDF reports
pdf_reports = True
pdf_resolution = 600
# save the indices in output image folder (ex. MNDWI, NDWI, etc.)
save_indices = True
# if a pekel reference is being used, set the threshold for the occurrence to be considered Water
# and also a threshold to consider it a bad mask
pekel_water = 80
pekel_accuracy = 90
# *** SECTION EXTERNAL MASK ***
# informs if there is an external mask to be used in the image's folder
# mask_name is a unique substring for the .tif file to be identified within the folder
[External_Mask]
external_mask = True
mask_name = invalid_mask
mask_valid_value = None
mask_invalid_value = 255
#mask_name = ref_mask
#mask_valid_value = None
#mask_invalid_value = 255
# *** SECTION CLUSTERING ***
# these are the options needed for the DWImage clustering algorithm
[Clustering]
average_results = False
min_positive_pixels = 2
# Bands combinations used for the clustering algorithm. Each combination will be an Output product
# Example: clustering_bands = [['mbwi', 'Mir2'], ['mndwi', 'mbwi'], ['Mir2', 'mndwi','ndwi']]
# for otsu in any band, utilize: ['otsu', 'mndwi']
clustering_bands = [
; ['Green', 'mndwi', 'mbwi', 'Nir', 'ndwi'],
; ['canny', 'mndwi'],
; ['canny', 'ndwi'],
; ['canny', 'mbwi'],
; ['canny', 'Nir'],
; ['canny', 'Mir2'],
# ['mndwi', 'ndwi', 'awei', 'mbwi', 'Nir', 'Mir2'],
# ['mndwi', 'ndwi', 'awei', 'mbwi', 'Nir'],
# ['mndwi', 'ndwi', 'awei', 'mbwi', 'Mir2'],
# ['mndwi', 'ndwi', 'awei', 'Nir', 'Mir2'],
; ['mndwi', 'ndwi', 'mbwi', 'Nir', 'Mir2'],
# ['mndwi', 'awei', 'mbwi', 'Nir', 'Mir2'],
# ['mndwi', 'ndwi', 'awei', 'Nir'],
; ['mndwi', 'ndwi', 'Nir' , 'mbwi'],
# ['mndwi', 'Nir' , 'awei', 'mbwi'],
# ['mndwi', 'ndwi', 'awei', 'Mir2'],
['mndwi', 'ndwi', 'Mir2', 'mbwi'],
# ['mndwi', 'Mir2', 'awei', 'mbwi'],
; ['mndwi', 'ndwi', 'Nir' , 'Mir2'],
; ['mndwi', 'Nir' , 'Mir2', 'mbwi'],
# ['mndwi', 'Nir' , 'awei', 'Mir2'],
# ['mndwi', 'ndwi', 'awei'],
['mndwi', 'ndwi', 'Mir2'],
# ['mndwi', 'Mir2', 'awei'],
['mndwi', 'ndwi', 'Nir' ],
# ['mndwi', 'Nir' , 'awei'],
['mndwi', 'ndwi', 'mbwi'],
# ['mndwi', 'mbwi', 'awei']]
; ['mndwi', 'Nir' , 'Mir2'],
; ['mndwi', 'Nir' , 'mbwi'],
; ['mndwi', 'Mir2', 'mbwi'],
; ['mndwi', 'ndwi'],
# ['mndwi', 'awei'],
; ['mndwi', 'mbwi'],
; ['mndwi', 'Nir'],
; ['mndwi', 'Mir2'],
['ndwi', 'mbwi', 'Nir', 'Mir2'],
; ['ndwi', 'Nir' , 'mbwi'],
; ['ndwi', 'Mir2', 'mbwi'],
; ['ndwi', 'Nir' , 'Mir2'],
; ['Nir' , 'Mir2', 'mbwi'],
['ndwi', 'Mir2'],
; ['ndwi', 'Nir' ],
; ['ndwi', 'mbwi'],
; ['Nir' , 'Mir2'],
; ['Nir' , 'mbwi'],
; ['Mir2', 'mbwi'],
]
# supported methods 'agglomerative','k-means'
clustering_method = agglomerative
# linkage for agglomerative can be 'ward', 'average', 'single' or 'complete'
linkage = average
# min and max number of allowed clusters
min_clusters = 2
max_clusters = 10
# inform a threshold to clip the Mir (or any band) band at the end of processing (None if no clipping)
clip_band = ['mndwi', 'Mir2', 'ndwi']
clip_inf_value = [-0.1, None, -0.15]
clip_sup_value = [None, 0.075, None]
# supported classifiers 'naive_bayes', 'SVM', 'MLP'
classifier = naive_bayes
# limits for the training dataset (train_size = percentage of pixels to use as training)
train_size = 0.2
min_train_size = 500
max_train_size = 10000
# supported indexes for identifying the best number of clusters 'calinsk', 'silhouette'
score_index = calinsk
# method to detect the water cluster among the clusters
# support methods: 'maxmndwi', 'minmir', 'maxmbwi', 'maxndwi'
detectwatercluster = maxmbwi
# *** SECTION GRAPH ***
# this section regulates the graphics parameters
[Graphs]
plot_graphs = True
#graphs_bands = [['Mir2', 'mndwi'], ['ndwi', 'mndwi']]
graphs_bands = [['Mir2', 'mndwi'], ['ndwi', 'mndwi'], ['Mir2', 'ndwi'], ['Nir', 'mbwi']]
# *** SECTION TIMESERIES ***
# this section regulates the graphics parameters
[TimeSeries]
plot_ts = False
# *** SECTION MASKS ***
# This section specifies the masks (cloud, shadow, etc) to be considered
# Each product (landsat, theia, etc.) has its own logic
[TheiaMasks]
CLM_all_clouds_and_shadows = yes
CLM_all_clouds = yes
CLM_clouds_blue_band = yes
CLM_clouds_multi_temporal = yes
CLM_thin_clouds = yes
CLM_cloud_shadows = yes
CLM_other_shadows = yes
CLM_high_clouds = yes
MG2_water = no
MG2_all_clouds = yes
MG2_snow = no
MG2_cloud_shadows = yes
MG2_other_shadows = yes
MG2_terrain_mask = yes
MG2_sun_too_low = yes
MG2_sun_tangent = yes
[LandsatMasks]
fill = no
clear = no
water = no
cloud_shadow = no
snow = no
cloud = no
cloud_conf1 = no
cloud_conf2 = no
cirrus_conf1 = no
cirrus_conf2 = no
terrain_occlusion = no
[S2CORMasks]
NO_DATA = no
SATURATED_OR_DEFECTIVE = no
DARK_AREA_PIXELS = no
CLOUD_SHADOWS = no
VEGETATION = no
NOT_VEGETATED = no
WATER = no
UNCLASSIFIED = no
CLOUD_MEDIUM_PROBABILITY = no
CLOUD_HIGH_PROBABILITY = no
THIN_CIRRUS = no
SNOW = no