JulioContrerasH commited on
Commit
ace47aa
·
verified ·
1 Parent(s): 4894b55

Upload: ensemble_spot.json

Browse files
Files changed (1) hide show
  1. ensemble/ensemble_spot.json +274 -0
ensemble/ensemble_spot.json ADDED
@@ -0,0 +1,274 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "type": "Feature",
3
+ "stac_version": "1.1.0",
4
+ "stac_extensions": [
5
+ "https://stac-extensions.github.io/mlm/v1.5.0/schema.json",
6
+ "https://stac-extensions.github.io/file/v2.1.0/schema.json"
7
+ ],
8
+ "id": "ENSEMBLE_6MODELS_CLOUDMASK_FT_20251118",
9
+ "geometry": {
10
+ "type": "Polygon",
11
+ "coordinates": [
12
+ [
13
+ [
14
+ -180.0,
15
+ -90.0
16
+ ],
17
+ [
18
+ -180.0,
19
+ 90.0
20
+ ],
21
+ [
22
+ 180.0,
23
+ 90.0
24
+ ],
25
+ [
26
+ 180.0,
27
+ -90.0
28
+ ],
29
+ [
30
+ -180.0,
31
+ -90.0
32
+ ]
33
+ ]
34
+ ]
35
+ },
36
+ "bbox": [
37
+ -180,
38
+ -90,
39
+ 180,
40
+ 90
41
+ ],
42
+ "properties": {
43
+ "datetime": "2025-11-18T12:32:38Z",
44
+ "created": "2025-11-18T12:32:38Z",
45
+ "updated": "2025-11-18T12:32:38Z",
46
+ "description": "Ensemble of 6 fine-tuned DeepLabV3/UNet++/LinkNet models for cloud detection in VGT-1, VGT-2, and PROBA-V imagery. Use load.py for inference.",
47
+ "title": "Ensemble Cloud Detection Model (6 Models) - VGT1/VGT2/Proba-V",
48
+ "mlm:name": "ensemble_fdr4vgt_cloudmask_ft",
49
+ "mlm:architecture": "Ensemble (Mean/Max/Min aggregation) of 6 segmentation models",
50
+ "mlm:tasks": [
51
+ "semantic-segmentation"
52
+ ],
53
+ "mlm:framework": "pytorch",
54
+ "mlm:framework_version": "2.5.1+cu121",
55
+ "mlm:accelerator": "cuda",
56
+ "mlm:accelerator_constrained": false,
57
+ "mlm:accelerator_summary": "NVIDIA GPU with CUDA support (compute capability >= 7.0)",
58
+ "mlm:accelerator_count": 1,
59
+ "mlm:batch_size_suggestion": 8,
60
+ "mlm:pretrained": true,
61
+ "mlm:input": [
62
+ {
63
+ "name": "VGT_PROBA_TOC_reflectance",
64
+ "bands": [
65
+ "Blue (B0, ~450nm)",
66
+ "Red (B2, ~645nm)",
67
+ "Near-Infrared (B3, ~835nm)",
68
+ "SWIR (MIR, ~1665nm)"
69
+ ],
70
+ "input": {
71
+ "shape": [
72
+ -1,
73
+ 4,
74
+ 512,
75
+ 512
76
+ ],
77
+ "dim_order": [
78
+ "batch",
79
+ "channel",
80
+ "height",
81
+ "width"
82
+ ],
83
+ "data_type": "float32"
84
+ },
85
+ "norm": {
86
+ "type": "raw_toc_reflectance",
87
+ "range": [
88
+ 0,
89
+ 10000
90
+ ],
91
+ "description": "Raw Top-of-Canopy reflectance values scaled by 10000"
92
+ },
93
+ "pre_processing_function": null
94
+ }
95
+ ],
96
+ "mlm:output": [
97
+ {
98
+ "name": "cloud_probability",
99
+ "tasks": [
100
+ "semantic-segmentation"
101
+ ],
102
+ "result": {
103
+ "shape": [
104
+ -1,
105
+ 1,
106
+ 512,
107
+ 512
108
+ ],
109
+ "dim_order": [
110
+ "batch",
111
+ "channel",
112
+ "height",
113
+ "width"
114
+ ],
115
+ "data_type": "float32"
116
+ },
117
+ "classification:classes": [
118
+ {
119
+ "value": 0.0,
120
+ "name": "clear",
121
+ "description": "Clear sky (may contain cloud shadows)",
122
+ "color_hint": "00000000"
123
+ },
124
+ {
125
+ "value": 1.0,
126
+ "name": "cloud",
127
+ "description": "Cloud present",
128
+ "color_hint": "FFFF00"
129
+ }
130
+ ],
131
+ "post_processing_function": "Apply threshold to get binary mask. Standard threshold: 0.5. Recommended (balanced) threshold: 0.4.",
132
+ "standard_threshold": 0.5,
133
+ "recommended_threshold": 0.596,
134
+ "value_range": [
135
+ 0.0,
136
+ 1.0
137
+ ],
138
+ "description": "Per-pixel probability of cloud presence. Built-in sigmoid activation. Values close to 1.0 indicate high confidence of cloud."
139
+ }
140
+ ],
141
+ "custom:export_format": "torch.export.pt2",
142
+ "custom:has_sigmoid": true,
143
+ "custom:sigmoid_location": "built-in wrapper",
144
+ "custom:export_datetime": "2025-11-18T12:32:38Z",
145
+ "custom:project": "FDR4VGT",
146
+ "custom:project_url": "https://fdr4vgt.eu/",
147
+ "custom:sensors": [
148
+ "VGT-1",
149
+ "VGT-2",
150
+ "PROBA-V"
151
+ ],
152
+ "custom:sensor_notes": "Model applicable to SPOT-VGT1, SPOT-VGT2, and PROBA-V imagery",
153
+ "custom:spatial_resolution": "1km",
154
+ "custom:tile_size": 512,
155
+ "custom:recommended_overlap": 64,
156
+ "custom:applicable_start": "1998-03-01T00:00:00Z",
157
+ "custom:applicable_end": null,
158
+ "dependencies": [
159
+ "torch>=2.0.0",
160
+ "segmentation-models-pytorch>=0.3.0",
161
+ "pytorch-lightning>=2.0.0"
162
+ ],
163
+ "custom:ensemble_size": 6,
164
+ "custom:ensemble_strategy": "Mean probability aggregation (default), supports Max/Min modes"
165
+ },
166
+ "links": [
167
+ {
168
+ "rel": "about",
169
+ "href": "https://fdr4vgt.eu/",
170
+ "type": "text/html",
171
+ "title": "FDR4VGT Project - Harmonized VGT Data Record"
172
+ },
173
+ {
174
+ "rel": "license",
175
+ "href": "https://creativecommons.org/licenses/by/4.0/",
176
+ "type": "text/html",
177
+ "title": "CC-BY-4.0 License"
178
+ }
179
+ ],
180
+ "assets": {
181
+ "load": {
182
+ "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/load.py",
183
+ "type": "application/x-python-code",
184
+ "title": "Ensemble model loader",
185
+ "description": "Python code to load all models and combine them into an EnsembleModel class.",
186
+ "roles": [
187
+ "code"
188
+ ]
189
+ },
190
+ "example_data": {
191
+ "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/example_data.safetensor",
192
+ "type": "application/octet-stream; application=safetensors",
193
+ "title": "Example VGT/PROBA-V image",
194
+ "description": "Example VGT/PROBA-V Top-of-Canopy reflectance image for model inference.",
195
+ "roles": [
196
+ "mlm:example_data",
197
+ "data"
198
+ ]
199
+ },
200
+ "model_01_spot_1dpwseg": {
201
+ "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/spot_1dpwseg.pt2",
202
+ "type": "application/octet-stream; application=pytorch",
203
+ "title": "Model 1: 1dpwseg_fdr4vgt_cloudmask_ft",
204
+ "description": "The weights of the 1DPWSEG model in torch.export .pt2 format with built-in sigmoid activation.",
205
+ "mlm:artifact_type": "torch.export.pt2",
206
+ "roles": [
207
+ "mlm:model",
208
+ "mlm:weights",
209
+ "data"
210
+ ]
211
+ },
212
+ "model_02_spot_segformer": {
213
+ "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/spot_segformer.pt2",
214
+ "type": "application/octet-stream; application=pytorch",
215
+ "title": "Model 2: segformer_fdr4vgt_cloudmask_ft",
216
+ "description": "The weights of the SEGFORMER model in torch.export .pt2 format with built-in sigmoid activation.",
217
+ "mlm:artifact_type": "torch.export.pt2",
218
+ "roles": [
219
+ "mlm:model",
220
+ "mlm:weights",
221
+ "data"
222
+ ]
223
+ },
224
+ "model_03_spot_unetpp": {
225
+ "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/spot_unetpp.pt2",
226
+ "type": "application/octet-stream; application=pytorch",
227
+ "title": "Model 3: unetpp_fdr4vgt_cloudmask_ft",
228
+ "description": "The weights of the UNETPP model in torch.export .pt2 format with built-in sigmoid activation.",
229
+ "mlm:artifact_type": "torch.export.pt2",
230
+ "roles": [
231
+ "mlm:model",
232
+ "mlm:weights",
233
+ "data"
234
+ ]
235
+ },
236
+ "model_04_spot_1dpwunet": {
237
+ "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/spot_1dpwunet.pt2",
238
+ "type": "application/octet-stream; application=pytorch",
239
+ "title": "Model 4: 1dpwunet_fdr4vgt_cloudmask_ft",
240
+ "description": "The weights of the 1DPWUNET model in torch.export .pt2 format with built-in sigmoid activation.",
241
+ "mlm:artifact_type": "torch.export.pt2",
242
+ "roles": [
243
+ "mlm:model",
244
+ "mlm:weights",
245
+ "data"
246
+ ]
247
+ },
248
+ "model_05_spot_1dpwunetpp": {
249
+ "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/spot_1dpwunetpp.pt2",
250
+ "type": "application/octet-stream; application=pytorch",
251
+ "title": "Model 5: 1dpwunetpp_fdr4vgt_cloudmask_ft",
252
+ "description": "The weights of the 1DPWUNETPP model in torch.export .pt2 format with built-in sigmoid activation.",
253
+ "mlm:artifact_type": "torch.export.pt2",
254
+ "roles": [
255
+ "mlm:model",
256
+ "mlm:weights",
257
+ "data"
258
+ ]
259
+ },
260
+ "model_06_spot_1dpwdeeplabv3": {
261
+ "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/spot_1dpwdeeplabv3.pt2",
262
+ "type": "application/octet-stream; application=pytorch",
263
+ "title": "Model 6: 1dpwdeeplabv3_fdr4vgt_cloudmask_ft",
264
+ "description": "The weights of the 1DPWDEEPLABV3 model in torch.export .pt2 format with built-in sigmoid activation.",
265
+ "mlm:artifact_type": "torch.export.pt2",
266
+ "roles": [
267
+ "mlm:model",
268
+ "mlm:weights",
269
+ "data"
270
+ ]
271
+ }
272
+ },
273
+ "collection": "FDR4VGT_CloudMask_Ensemble"
274
+ }