JulioContrerasH commited on
Commit
9994593
·
verified ·
1 Parent(s): 0fd3c78
Files changed (1) hide show
  1. ensemble/ensem_4_4_flex.json +0 -286
ensemble/ensem_4_4_flex.json DELETED
@@ -1,286 +0,0 @@
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_4MODELS_FLEXIBLE_20251202",
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-12-02T12:03:10Z",
44
- "created": "2025-12-02T12:03:10Z",
45
- "updated": "2025-12-02T12:03:10Z",
46
- "description": "Flexible ensemble of 4 models (1dpwdeeplabv3, 1dpwunetpp, 1dpwseg, unet) with runtime aggregation (mean/max/min) and uncertainty quantification for cloud detection in VGT-1, VGT-2, and PROBA-V satellite imagery. Models are loaded separately and combined at inference time.",
47
- "title": "Ensemble Cloud Detection Model (4 Models + Uncertainty) - VGT1/VGT2/Proba-V",
48
- "mlm:name": "ensemble_4models_flexible_fdr4vgt_cloudmask",
49
- "mlm:architecture": "Flexible Ensemble (runtime Mean/Max/Min + Uncertainty): 1dpwdeeplabv3, 1dpwunetpp, 1dpwseg, unet",
50
- "mlm:tasks": [
51
- "semantic-segmentation",
52
- "uncertainty-quantification"
53
- ],
54
- "mlm:framework": "pytorch",
55
- "mlm:framework_version": "2.5.1+cu121",
56
- "mlm:accelerator": "cuda",
57
- "mlm:accelerator_constrained": false,
58
- "mlm:accelerator_summary": "NVIDIA GPU with CUDA support (compute capability >= 7.0)",
59
- "mlm:accelerator_count": 1,
60
- "mlm:batch_size_suggestion": 4,
61
- "mlm:pretrained": true,
62
- "mlm:input": [
63
- {
64
- "name": "VGT_PROBA_TOC_reflectance",
65
- "bands": [
66
- "Blue (B0, ~450nm)",
67
- "Red (B2, ~645nm)",
68
- "Near-Infrared (B3, ~835nm)",
69
- "SWIR (MIR, ~1665nm)"
70
- ],
71
- "input": {
72
- "shape": [
73
- -1,
74
- 4,
75
- 512,
76
- 512
77
- ],
78
- "dim_order": [
79
- "batch",
80
- "channel",
81
- "height",
82
- "width"
83
- ],
84
- "data_type": "float32"
85
- },
86
- "norm": {
87
- "type": "raw_toc_reflectance",
88
- "range": [
89
- 0,
90
- 10000
91
- ],
92
- "description": "Raw Top-of-Canopy reflectance values scaled by 10000"
93
- },
94
- "pre_processing_function": null
95
- }
96
- ],
97
- "mlm:output": [
98
- {
99
- "name": "cloud_probability",
100
- "tasks": [
101
- "semantic-segmentation"
102
- ],
103
- "result": {
104
- "shape": [
105
- -1,
106
- 1,
107
- 512,
108
- 512
109
- ],
110
- "dim_order": [
111
- "batch",
112
- "channel",
113
- "height",
114
- "width"
115
- ],
116
- "data_type": "float32"
117
- },
118
- "classification:classes": [
119
- {
120
- "value": 0.0,
121
- "name": "clear",
122
- "description": "Clear sky (may contain cloud shadows)",
123
- "color_hint": "00000000"
124
- },
125
- {
126
- "value": 1.0,
127
- "name": "cloud",
128
- "description": "Cloud present",
129
- "color_hint": "FFFF00"
130
- }
131
- ],
132
- "post_processing_function": "Apply threshold to get binary mask. Recommended threshold: 0.5051. Returns tuple: (probabilities, uncertainty)",
133
- "standard_threshold": 0.5,
134
- "recommended_threshold": 0.5051,
135
- "value_range": [
136
- 0.0,
137
- 1.0
138
- ],
139
- "description": "Per-pixel mean probability across 4 ensemble models. Built-in sigmoid activation. Values close to 1.0 indicate high confidence of cloud."
140
- },
141
- {
142
- "name": "prediction_uncertainty",
143
- "tasks": [
144
- "uncertainty-quantification"
145
- ],
146
- "result": {
147
- "shape": [
148
- -1,
149
- 1,
150
- 512,
151
- 512
152
- ],
153
- "dim_order": [
154
- "batch",
155
- "channel",
156
- "height",
157
- "width"
158
- ],
159
- "data_type": "float32"
160
- },
161
- "value_range": [
162
- 0.0,
163
- 1.0
164
- ],
165
- "description": "Normalized standard deviation across 4 ensemble members. Values close to 1.0 indicate high disagreement between models (high uncertainty). Automatically returned as second element of output tuple."
166
- }
167
- ],
168
- "custom:export_format": "torch.export.pt2",
169
- "custom:has_sigmoid": true,
170
- "custom:sigmoid_location": "built-in wrapper",
171
- "custom:project": "FDR4VGT",
172
- "custom:project_url": "https://fdr4vgt.eu/",
173
- "custom:sensors": [
174
- "VGT-1",
175
- "VGT-2",
176
- "PROBA-V"
177
- ],
178
- "custom:sensor_notes": "Model applicable to SPOT-VGT1, SPOT-VGT2, and PROBA-V imagery",
179
- "custom:spatial_resolution": "1km",
180
- "custom:tile_size": 512,
181
- "custom:recommended_overlap": 64,
182
- "custom:applicable_start": "1998-03-01T00:00:00Z",
183
- "custom:applicable_end": null,
184
- "dependencies": [
185
- "torch>=2.0.0",
186
- "segmentation-models-pytorch>=0.3.0",
187
- "pytorch-lightning>=2.0.0"
188
- ],
189
- "custom:export_datetime": "2025-12-02T12:03:10Z",
190
- "custom:ensemble_size": 4,
191
- "custom:ensemble_members": [
192
- "1dpwdeeplabv3",
193
- "1dpwunetpp",
194
- "1dpwseg",
195
- "unet"
196
- ],
197
- "custom:ensemble_strategy": "Flexible runtime aggregation - supports mean/max/min modes with uncertainty quantification",
198
- "custom:ensemble_fused": false,
199
- "custom:returns_tuple": true,
200
- "custom:tuple_format": "(probabilities, uncertainty)"
201
- },
202
- "links": [
203
- {
204
- "rel": "about",
205
- "href": "https://fdr4vgt.eu/",
206
- "type": "text/html",
207
- "title": "FDR4VGT Project - Harmonized VGT Data Record"
208
- },
209
- {
210
- "rel": "license",
211
- "href": "https://creativecommons.org/licenses/by/4.0/",
212
- "type": "text/html",
213
- "title": "CC-BY-4.0 License"
214
- }
215
- ],
216
- "assets": {
217
- "load": {
218
- "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/load.py",
219
- "type": "application/x-python-code",
220
- "title": "Ensemble model loader",
221
- "description": "Python code to load all models and combine them into an EnsembleModel class with mean/max/min aggregation.",
222
- "roles": [
223
- "code"
224
- ]
225
- },
226
- "example_data": {
227
- "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/example_data.safetensor",
228
- "type": "application/octet-stream; application=safetensors",
229
- "title": "Example VGT/PROBA-V image",
230
- "description": "Example VGT/PROBA-V Top-of-Canopy reflectance image for model inference.",
231
- "roles": [
232
- "mlm:example_data",
233
- "data"
234
- ]
235
- },
236
- "model_01_1dpwdeeplabv3": {
237
- "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/f_global_1dpwdeeplabv3.pt2",
238
- "type": "application/octet-stream; application=pytorch",
239
- "title": "Model 1: 1dpwdeeplabv3_fdr4vgt_cloudmask_ft",
240
- "description": "The weights of the 1DPWDEEPLABV3 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_02_1dpwunetpp": {
249
- "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/f_global_1dpwunetpp.pt2",
250
- "type": "application/octet-stream; application=pytorch",
251
- "title": "Model 2: 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_03_1dpwseg": {
261
- "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/f_global_1dpwseg.pt2",
262
- "type": "application/octet-stream; application=pytorch",
263
- "title": "Model 3: 1dpwseg_fdr4vgt_cloudmask_ft",
264
- "description": "The weights of the 1DPWSEG 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
- "model_04_unet": {
273
- "href": "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/f_global_unet.pt2",
274
- "type": "application/octet-stream; application=pytorch",
275
- "title": "Model 4: unet_fdr4vgt_cloudmask_ft",
276
- "description": "The weights of the UNET model in torch.export .pt2 format with built-in sigmoid activation.",
277
- "mlm:artifact_type": "torch.export.pt2",
278
- "roles": [
279
- "mlm:model",
280
- "mlm:weights",
281
- "data"
282
- ]
283
- }
284
- },
285
- "collection": "FDR4VGT_CloudMask_Ensemble_Flexible_4models"
286
- }