FDR4VGT-CLOUD

FDR4VGT-CLOUD

GitHub Open in Colab

Cloud mask model for the ESA FDR4VGT record, the reprocessing of the SPOT-VGT and Proba-V archives. One model covers VGT-1, VGT-2 and Proba-V at 1 km.

Paper: A multisensor deep learning framework for robust cloud segmentation in SPOT-VGT and Proba-V. Contreras, Aybar, Gomez-Chova. IEEE Geoscience and Remote Sensing Letters, submitted 2026.

Cloud probability example

Model

  • DeepLabV3 with a MobileNetV2 encoder, plus a 1x1 pixel-wise MLP. A 1x1 convolution fuses both branches. 12.65M parameters.
  • Input: 4 top-of-atmosphere reflectance bands (Blue, Red, NIR, SWIR), 512 x 512 tiles, batch 1 to 256.
  • The values are reflectance, not DN. Nominal range 0 to 2.05.
  • Output: cloud probability. The sigmoid is inside the exported graph.
  • Recommended threshold: 0.5.

Data used

  • 78 hand-annotated scenes for fine-tuning: 66 train and 12 validation.
  • 31 held-out scenes that never entered training.
  • Test set of 81 scenes: 24 Proba-V pixel scenes, 8 SPOT-VGT pixel scenes and 49 Proba-V scenes annotated with points.
  • Training starts from a weak pre-training stage and then fine-tunes on the annotated scenes. The masks were drawn with IRIS.

Data availability

This repository hosts the model weights and configuration. Code and splits are on GitHub. Training data are not redistributed:

Data Provider Access
Proba-V / SPOT-VGT reflectance VITO (Terrascope) Terrascope
Human-annotated cloud masks ESA Φ-lab Round Robin available on request
Point validation data Brockmann Consult available on request
Code and splits GitHub IPL-UV/fdr4vgt-cloud

Performance

F2, IoU and kappa at threshold 0.5, on test scenes that were not used for training.

Test set Scenes Annotation F2 IoU Kappa
Proba-V 49 points 0.889 0.840 0.806
SPOT-VGT 8 pixels 0.929 0.849 0.819

Earlier numbers counted scenes that were in training. These are the clean ones.

Install

pip install "mlstac==0.4.9" "torch==2.7.0" rasterio

The single model and the 6-member ensemble were exported with torch 2.7.0. torch.export refuses to load a file written by another torch version, so install that exact version. A 512 x 512 example patch is published as single/example_data.safetensor and loads with safetensors.numpy.load_file under the key image.

Quick start

import torch
import mlstac
import rasterio as rio

url = "https://huggingface.co/isp-uv-es/FDR4VGT-CLOUD/resolve/main/single/multisensor_single_1dpwdeeplabv3.json"
local = mlstac.load(url).download("FDR4VGT-CLOUD")
net = local.compiled_model()

with rio.open("https://huggingface.co/datasets/isp-uv-es/ProbaV-SPOT/resolve/main/PROBAV_L2A_20141111_184634_2_1KM_V201.tif") as src:
    image = src.read()

prob = local.predict_large(
    image=image,
    model=net,
    device="cuda" if torch.cuda.is_available() else "cpu",
    batch_size=8,
    num_workers=8,
    nodata=0.0,
)

cloud = (prob.squeeze() > 0.5).astype("uint8")

image is a full 4-band Proba-V scene from the public sample dataset, about 35 MB. prob is a float array in 0 to 1 with the same height and width as the input.

Notebook

Ablation models

The repo also keeps the checkpoints from the ablation study, 19 in total: 7 global models (f_global_*), 6 Proba-V models (proba_*) and 6 SPOT-VGT models (spot_*). Each one has a JSON next to it with the same structure.

Those checkpoints were exported with torch 2.5.1 and need torch 2.5.x. The operational single model and the 6-member ensemble were re-exported with torch 2.7.

Links

Citation

If you use this code, the model weights or the ProbaV-SPOT sample, please cite:

@article{contreras2026fdr4vgt,
  title   = {A multisensor deep learning framework for robust cloud segmentation in SPOT-VGT and Proba-V},
  author  = {Contreras, Julio and Aybar, C{\'e}sar and G{\'o}mez-Chova, Luis},
  journal = {IEEE Geoscience and Remote Sensing Letters},
  year    = {2026},
}

License

Model weights are released under CC0-1.0. The SPOT-VGT and Proba-V imagery used to train and evaluate the model follows the terms of the FDR4VGT archive.

Acknowledgements

Work supported by the European Space Agency within the FDR4VGT project, led by VITO. Developed at the Image Processing Laboratory (IPL), University of Valencia.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support