QA4EO-2 / unet.json
JulioContrerasH's picture
Upload 3 files
493ecbb verified
{
"type": "Feature",
"stac_version": "1.1.0",
"stac_extensions": [
"https://stac-extensions.github.io/mlm/v1.5.0/schema.json",
"https://stac-extensions.github.io/file/v2.1.0/schema.json"
],
"id": "MSS_CLOUDMASK_UNET_EFFB3",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-180,
-90
],
[
-180,
90
],
[
180,
90
],
[
180,
-90
],
[
-180,
-90
]
]
]
},
"bbox": [
-180,
-90,
180,
90
],
"properties": {
"datetime": "2026-01-18T22:42:31.441233Z",
"created": "2026-01-18T22:42:31.441233Z",
"updated": "2026-01-19T01:01:38.488397Z",
"title": "MSS Cloud Detection Model (UNet-EfficientNetB3)",
"description": "UNet architecture with EfficientNet-B3 encoder for cloud detection in Landsat MSS (Multispectral Scanner) imagery. Trained on CloudSEN12 data emulated to MSS spectral bands using satharmony package. Detects 4 classes: clear, thin cloud, thick cloud, and shadow.",
"mlm:name": "mss_cloudmask_unet_effb3",
"mlm:architecture": "UNet with EfficientNet-B3 encoder + SCSE attention",
"mlm:tasks": [
"semantic-segmentation",
"cloud-detection"
],
"mlm:framework": "pytorch",
"mlm:framework_version": "2.5.1+cu121",
"mlm:accelerator": "cuda",
"mlm:memory_size": 309827650,
"mlm:batch_size_suggestion": 8,
"mlm:total_parameters": 13223490,
"mlm:input": [
{
"name": "mss_reflectance",
"bands": [
"Green (500-600nm)",
"Red (600-700nm)",
"NIR1 (700-800nm)",
"NIR2 (800-1100nm)"
],
"input": {
"shape": [
-1,
4,
"H",
"W"
],
"dim_order": [
"batch",
"channel",
"height",
"width"
],
"data_type": "float32"
},
"norm": {
"type": "reflectance",
"range": [
0.0,
1.0
],
"description": "TOA reflectance normalized to [0, 1]. DN values should be divided by 10000."
},
"preprocessing": "Divide DN by 10000 to get reflectance in [0, 1]"
}
],
"mlm:output": [
{
"name": "cloud_mask",
"classes": [
{
"id": 0,
"name": "clear",
"description": "Clear sky"
},
{
"id": 1,
"name": "thin_cloud",
"description": "Thin/cirrus clouds"
},
{
"id": 2,
"name": "thick_cloud",
"description": "Thick/opaque clouds"
},
{
"id": 3,
"name": "shadow",
"description": "Cloud shadow"
}
],
"result": {
"shape": [
-1,
4,
"H",
"W"
],
"dim_order": [
"batch",
"class",
"height",
"width"
],
"data_type": "float32"
},
"description": "Per-pixel logits for 4 classes. Use argmax to get class labels, or softmax for probabilities.",
"postprocessing": "Apply argmax(dim=1) to get class labels (0-3), or softmax(dim=1) for probabilities"
}
],
"mlm:hyperparameters": {
"learning_rate": 0.0003,
"weight_decay": 0.0001,
"optimizer": "AdamW",
"scheduler": "CosineAnnealingWarmRestarts",
"batch_size": 256,
"training_epochs": 55,
"final_val_iou": 0.6164,
"loss_function": "CrossEntropyLoss",
"encoder_depth": 5,
"decoder_attention": "SCSE"
},
"custom:sensor": "Landsat MSS",
"custom:spatial_resolution": "60m",
"custom:temporal_coverage": "1972-2013",
"custom:training_data": "CloudSEN12 emulated to MSS bands",
"custom:emulator": "satharmony",
"custom:project": "QA4EO-2",
"custom:project_url": "https://github.com/IPL-UV/qa4eo",
"file:size": 154913825,
"dependencies": [
"torch>=2.0.0",
"pytorch-lightning>=2.0.0",
"segmentation-models-pytorch>=0.3.0",
"rasterio>=1.3.0",
"numpy>=1.21.0"
]
},
"assets": {
"model": {
"href": "https://huggingface.co/isp-uv-es/QA4EO-2/resolve/main/unet.ckpt",
"type": "application/octet-stream",
"title": "PyTorch Lightning checkpoint",
"roles": [
"mlm:model",
"mlm:weights"
],
"file:size": 154913825
},
"load": {
"href": "https://huggingface.co/isp-uv-es/QA4EO-2/resolve/main/load.py",
"type": "application/x-python-code",
"title": "Model loading and inference functions",
"roles": [
"mlm:inference-code"
]
}
},
"links": [
{
"rel": "about",
"href": "https://github.com/IPL-UV/qa4eo",
"type": "text/html",
"title": "Project repository"
},
{
"rel": "license",
"href": "https://creativecommons.org/licenses/by/4.0/",
"type": "text/html",
"title": "CC-BY-4.0"
}
]
}