Skip to content

Run inference on a Sentinel-2 image from the Google Earth Engine

  • Last Modified: 30-08-2024
  • Author: Gonzalo Mateo-GarcĂ­a

Logo CloudSEN12

This notebook shows how to run the CloudSEN12 model over an image downloaded from the Google Earth Engine. Hence to run this notebook you a Google Earth Engine account.

We will run the models UnetMobV2_V1 and UnetMobV2_V2 with all bands proposed in:

Aybar, C., Ysuhuaylas, L., Loja, J., Gonzales, K., Herrera, F., Bautista, L., Yali, R., Flores, A., Diaz, L., Cuenca, N., Espinoza, W., Prudencio, F., Llactayo, V., Montero, D., Sudmanns, M., Tiede, D., Mateo-GarcĂ­a, G., & GĂłmez-Chova, L. (2022). CloudSEN12, a global dataset for semantic understanding of cloud and cloud shadow in Sentinel-2. Scientific Data, 9(1), Article 1. DOI: 10.1038/s41597-022-01878-2

Aybar, C., Bautista, L., Montero, D., Contreras, J., Ayala, D., Prudencio, F., Loja, J., Ysuhuaylas, L., Herrera, F., Gonzales, K., Valladares, J., Flores, L. A., Mamani, E., Quiñonez, M., Fajardo, R., Espinoza, W., Limas, A., Yali, R., Alcántara, A., Leyva, M., Loayza-Muro, M., Willems, M., Mateo-García, G. & Gómez-Chova, L. (2024). CloudSEN12+: The largest dataset of expert-labeled pixels for cloud and cloud shadow detection in Sentinel-2. Data in Brief, 110852. DOI: 10.1016/j.dib.2024.110852

pip install georeader-spaceml earthengine-api cloudsen12_models
# cloudsen12_models is not a georeader dependency (it depends on georeader),
# so install it in the running kernel.
%pip install cloudsen12_models
Requirement already satisfied: cloudsen12_models in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (1.0.1)
Requirement already satisfied: georeader-spaceml>=1.4 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cloudsen12_models) (2.3.0)
Requirement already satisfied: huggingface-hub>=0.25 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cloudsen12_models) (1.17.0)
Requirement already satisfied: numpy>=1 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cloudsen12_models) (2.4.6)
Requirement already satisfied: rasterio>=1 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cloudsen12_models) (1.4.4)
Requirement already satisfied: requests>=2 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cloudsen12_models) (2.34.2)
Requirement already satisfied: segmentation-models-pytorch>=0.3 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cloudsen12_models) (0.5.0)
Requirement already satisfied: torch>=2 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cloudsen12_models) (2.12.0)
Requirement already satisfied: tqdm>=4 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cloudsen12_models) (4.67.3)
Requirement already satisfied: geopandas>=1 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from georeader-spaceml>=1.4->cloudsen12_models) (1.1.3)
Requirement already satisfied: mercantile>=1 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from georeader-spaceml>=1.4->cloudsen12_models) (1.2.1)

Requirement already satisfied: shapely>=2 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from georeader-spaceml>=1.4->cloudsen12_models) (2.1.2)
Requirement already satisfied: pyogrio>=0.7.2 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from geopandas>=1->georeader-spaceml>=1.4->cloudsen12_models) (0.12.1)
Requirement already satisfied: packaging in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from geopandas>=1->georeader-spaceml>=1.4->cloudsen12_models) (26.2)
Requirement already satisfied: pandas>=2.0.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from geopandas>=1->georeader-spaceml>=1.4->cloudsen12_models) (3.0.3)
Requirement already satisfied: pyproj>=3.5.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from geopandas>=1->georeader-spaceml>=1.4->cloudsen12_models) (3.7.2)
Requirement already satisfied: click>=8.4.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from huggingface-hub>=0.25->cloudsen12_models) (8.4.1)
Requirement already satisfied: filelock>=3.10.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from huggingface-hub>=0.25->cloudsen12_models) (3.29.0)
Requirement already satisfied: fsspec>=2023.5.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from huggingface-hub>=0.25->cloudsen12_models) (2025.12.0)
Requirement already satisfied: hf-xet<2.0.0,>=1.4.3 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from huggingface-hub>=0.25->cloudsen12_models) (1.5.0)
Requirement already satisfied: httpx<1,>=0.23.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from huggingface-hub>=0.25->cloudsen12_models) (0.28.1)
Requirement already satisfied: pyyaml>=5.1 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from huggingface-hub>=0.25->cloudsen12_models) (6.0.3)
Requirement already satisfied: typer<0.26.0,>=0.20.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from huggingface-hub>=0.25->cloudsen12_models) (0.25.1)
Requirement already satisfied: typing-extensions>=4.1.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from huggingface-hub>=0.25->cloudsen12_models) (4.15.0)
Requirement already satisfied: anyio in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from httpx<1,>=0.23.0->huggingface-hub>=0.25->cloudsen12_models) (4.13.0)
Requirement already satisfied: certifi in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from httpx<1,>=0.23.0->huggingface-hub>=0.25->cloudsen12_models) (2026.5.20)
Requirement already satisfied: httpcore==1.* in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from httpx<1,>=0.23.0->huggingface-hub>=0.25->cloudsen12_models) (1.0.9)
Requirement already satisfied: idna in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from httpx<1,>=0.23.0->huggingface-hub>=0.25->cloudsen12_models) (3.17)
Requirement already satisfied: h11>=0.16 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from httpcore==1.*->httpx<1,>=0.23.0->huggingface-hub>=0.25->cloudsen12_models) (0.16.0)

Requirement already satisfied: shellingham>=1.3.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from typer<0.26.0,>=0.20.0->huggingface-hub>=0.25->cloudsen12_models) (1.5.4)
Requirement already satisfied: rich>=13.8.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from typer<0.26.0,>=0.20.0->huggingface-hub>=0.25->cloudsen12_models) (15.0.0)
Requirement already satisfied: annotated-doc>=0.0.2 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from typer<0.26.0,>=0.20.0->huggingface-hub>=0.25->cloudsen12_models) (0.0.4)

Requirement already satisfied: python-dateutil>=2.8.2 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from pandas>=2.0.0->geopandas>=1->georeader-spaceml>=1.4->cloudsen12_models) (2.9.0.post0)
Requirement already satisfied: six>=1.5 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from python-dateutil>=2.8.2->pandas>=2.0.0->geopandas>=1->georeader-spaceml>=1.4->cloudsen12_models) (1.17.0)
Requirement already satisfied: affine in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from rasterio>=1->cloudsen12_models) (2.4.0)
Requirement already satisfied: attrs in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from rasterio>=1->cloudsen12_models) (26.1.0)
Requirement already satisfied: cligj>=0.5 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from rasterio>=1->cloudsen12_models) (0.7.2)
Requirement already satisfied: click-plugins in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from rasterio>=1->cloudsen12_models) (1.1.1.2)
Requirement already satisfied: pyparsing in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from rasterio>=1->cloudsen12_models) (3.3.2)
Requirement already satisfied: charset_normalizer<4,>=2 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from requests>=2->cloudsen12_models) (3.4.7)
Requirement already satisfied: urllib3<3,>=1.26 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from requests>=2->cloudsen12_models) (2.7.0)

Requirement already satisfied: markdown-it-py>=2.2.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from rich>=13.8.0->typer<0.26.0,>=0.20.0->huggingface-hub>=0.25->cloudsen12_models) (4.2.0)
Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from rich>=13.8.0->typer<0.26.0,>=0.20.0->huggingface-hub>=0.25->cloudsen12_models) (2.20.0)
Requirement already satisfied: mdurl~=0.1 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from markdown-it-py>=2.2.0->rich>=13.8.0->typer<0.26.0,>=0.20.0->huggingface-hub>=0.25->cloudsen12_models) (0.1.2)
Requirement already satisfied: pillow>=8 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from segmentation-models-pytorch>=0.3->cloudsen12_models) (12.2.0)
Requirement already satisfied: safetensors>=0.3.1 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from segmentation-models-pytorch>=0.3->cloudsen12_models) (0.7.0)
Requirement already satisfied: timm>=0.9 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from segmentation-models-pytorch>=0.3->cloudsen12_models) (1.0.27)
Requirement already satisfied: torchvision>=0.9 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from segmentation-models-pytorch>=0.3->cloudsen12_models) (0.27.0)

Requirement already satisfied: setuptools<82 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from torch>=2->cloudsen12_models) (81.0.0)
Requirement already satisfied: sympy>=1.13.3 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from torch>=2->cloudsen12_models) (1.14.0)
Requirement already satisfied: networkx>=2.5.1 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from torch>=2->cloudsen12_models) (3.6)
Requirement already satisfied: jinja2 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from torch>=2->cloudsen12_models) (3.1.6)
Requirement already satisfied: cuda-toolkit==13.0.2 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2->cloudsen12_models) (13.0.2)
Requirement already satisfied: nvidia-cublas<=13.1.1.3,>=13.1.0.3 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from torch>=2->cloudsen12_models) (13.1.1.3)
Requirement already satisfied: cuda-bindings<14,>=13.0.3 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from torch>=2->cloudsen12_models) (13.3.1)
Requirement already satisfied: nvidia-cudnn-cu13==9.20.0.48 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from torch>=2->cloudsen12_models) (9.20.0.48)
Requirement already satisfied: nvidia-cusparselt-cu13==0.8.1 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from torch>=2->cloudsen12_models) (0.8.1)
Requirement already satisfied: nvidia-nccl-cu13==2.29.7 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from torch>=2->cloudsen12_models) (2.29.7)
Requirement already satisfied: nvidia-nvshmem-cu13==3.4.5 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from torch>=2->cloudsen12_models) (3.4.5)
Requirement already satisfied: triton==3.7.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from torch>=2->cloudsen12_models) (3.7.0)

Requirement already satisfied: nvidia-cuda-runtime==13.0.96.* in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2->cloudsen12_models) (13.0.96)
Requirement already satisfied: nvidia-cufft==12.0.0.61.* in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2->cloudsen12_models) (12.0.0.61)
Requirement already satisfied: nvidia-cufile==1.15.1.6.* in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2->cloudsen12_models) (1.15.1.6)
Requirement already satisfied: nvidia-cuda-cupti==13.0.85.* in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2->cloudsen12_models) (13.0.85)
Requirement already satisfied: nvidia-curand==10.4.0.35.* in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2->cloudsen12_models) (10.4.0.35)

Requirement already satisfied: nvidia-cusolver==12.0.4.66.* in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2->cloudsen12_models) (12.0.4.66)
Requirement already satisfied: nvidia-cusparse==12.6.3.3.* in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2->cloudsen12_models) (12.6.3.3)
Requirement already satisfied: nvidia-nvjitlink==13.0.88.* in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2->cloudsen12_models) (13.0.88)
Requirement already satisfied: nvidia-cuda-nvrtc==13.0.88.* in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2->cloudsen12_models) (13.0.88)
Requirement already satisfied: nvidia-nvtx==13.0.85.* in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cuda-toolkit[cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch>=2->cloudsen12_models) (13.0.85)
Requirement already satisfied: cuda-pathfinder>=1.4.2 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from cuda-bindings<14,>=13.0.3->torch>=2->cloudsen12_models) (1.5.5)

Requirement already satisfied: mpmath<1.4,>=1.1.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from sympy>=1.13.3->torch>=2->cloudsen12_models) (1.3.0)
Requirement already satisfied: MarkupSafe>=2.0 in /home/gonzalo/git/georeader/.venv/lib/python3.12/site-packages (from jinja2->torch>=2->cloudsen12_models) (3.0.3)


[notice] A new release of pip is available: 26.1.1 -> 26.1.2
[notice] To update, run: pip install --upgrade pip

Note: you may need to restart the kernel to use updated packages.

from cloudsen12_models import cloudsen12
import ee
import matplotlib.pyplot as plt
from georeader import plot
from shapely.geometry import box
from georeader.readers import ee_image
from georeader.readers import ee_image

# Initialize Earth Engine from environment variables (service-account key,
# token, or local credentials); see examples/README.md and .env.sample.
ee_image.initialize()
collection_name = "COPERNICUS/S2_HARMONIZED"
tile = "S2A_MSIL1C_20240417T064631_N0510_R020_T40RCN_20240417T091941"
img_col = ee.ImageCollection(collection_name)
image = img_col.filter(ee.Filter.eq("PRODUCT_ID", tile)).first()
info_img = image.getInfo()
# info_img
%%time

from rasterio import Affine
# projgee = image.select("B2").projection().getInfo()

aoi = box(55.325, 25.225, 55.415, 25.28)

bands = ['B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B8A', 'B9', 'B10', 'B11', 'B12']
crs = info_img["bands"][1]["crs"]
transform = Affine(*info_img["bands"][1]["crs_transform"])
img_local = ee_image.export_image(info_img['id'],
                                  crs=crs, transform=transform,
                                  bands_gee=bands,
                                  geometry=aoi)
img_local
CPU times: user 303 ms, sys: 79.8 ms, total: 382 ms
Wall time: 2.87 s

 
         Transform: | 10.00, 0.00, 331260.00|
| 0.00,-10.00, 2797010.00|
| 0.00, 0.00, 1.00|
         Shape: (13, 622, 916)
         Resolution: (10.0, 10.0)
         Bounds: (331260.0, 2790790.0, 340420.0, 2797010.0)
         CRS: EPSG:32640
         fill_value_default: 0.0
        
swirnirred = (img_local.isel({"band": [bands.index(b) for b in ["B11","B8","B4"]]}) / 4_500.).clip(0,1)

plot.show(swirnirred)
<Axes: >
No description has been provided for this image

UNetMobV2_V1

Model trained on the first version of CloudSEN12 Aybar et al. 2022.

model = cloudsen12.load_model_by_name(name="UNetMobV2_V1", weights_folder="cloudsen12_models")
cloudsen12.MODELS_CLOUDSEN12.keys()
dict_keys(['cloudsen12', 'UNetMobV2_V1', 'UNetMobV2_V2', 'cloudsen12l2a', 'dtacs4bands', 'landsat30'])
cloudmask = model.predict(img_local/10_000)
fig, ax = plt.subplots(1,2,figsize=(14,5),sharey=True, tight_layout=True)

plot.show(swirnirred,ax=ax[0])
cloudsen12.plot_cloudSEN12mask(cloudmask,ax=ax[1])
fig.savefig("example_flood_dubai_2024.png")
No description has been provided for this image

UnetMobV2_V2

Model trained on the second version of CloudSEN12 (called CloudSEN12+) Aybar et al. 2024.

modelv2 = cloudsen12.load_model_by_name(name="UNetMobV2_V2", weights_folder="cloudsen12_models")
cloudmaskv2 = modelv2.predict(img_local/10_000)
fig, ax = plt.subplots(1,2,figsize=(14,5),sharey=True, tight_layout=True)

plot.show(swirnirred,ax=ax[0])
cloudsen12.plot_cloudSEN12mask(cloudmaskv2,ax=ax[1])
<Axes: >
No description has been provided for this image

Sentinel-2 L2A

Run the model for L2A images.

from shapely.geometry import mapping
collection_name = "COPERNICUS/S2_SR_HARMONIZED"
tile = "S2A_MSIL2A_20240417T064631_N0510_R020_T40RCN_20240417T091941"
aoi_ee = ee.Geometry(mapping(aoi))
img_col = ee.ImageCollection(collection_name).filterDate('2024-04-17', '2024-04-18').filterBounds(aoi_ee)
image = img_col.first()
info_imgl2a = image.getInfo()
# info_imgl2a
bandsl2a = ['B1', 'B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B8', 'B8A', 'B9', 'B11', 'B12']
crs = info_imgl2a["bands"][1]["crs"]
transform = Affine(*info_imgl2a["bands"][1]["crs_transform"])
img_local_l2a = ee_image.export_image(info_imgl2a['id'],
                                  crs=crs, transform=transform,
                                  bands_gee=bandsl2a,
                                  geometry=aoi)
img_local_l2a
 
         Transform: | 10.00, 0.00, 331260.00|
| 0.00,-10.00, 2797010.00|
| 0.00, 0.00, 1.00|
         Shape: (12, 622, 916)
         Resolution: (10.0, 10.0)
         Bounds: (331260.0, 2790790.0, 340420.0, 2797010.0)
         CRS: EPSG:32640
         fill_value_default: 0.0
        
swirnirred_l2a = (img_local_l2a.isel({"band": [bandsl2a.index(b) for b in ["B11","B8","B4"]]}) / 4_500.).clip(0,1)

plot.show(swirnirred_l2a)
<Axes: >
No description has been provided for this image
modell2a = cloudsen12.load_model_by_name(name="cloudsen12l2a", weights_folder="cloudsen12_models")
cloudmask_l2a = modell2a.predict(img_local_l2a/10_000)
fig, ax = plt.subplots(1,2,figsize=(14,5),sharey=True, tight_layout=True)

plot.show(swirnirred_l2a,ax=ax[0])
cloudsen12.plot_cloudSEN12mask(cloudmask_l2a,ax=ax[1])
<Axes: >
No description has been provided for this image

Licence

The cloudsen12_models package is published under a GNU Lesser GPL v3 licence

The CloudSEN12 database and all pre-trained models are released under a Creative Commons non-commercial licence. For using the models in comercial pipelines written consent by the authors must be provided.

This notebook is released under a Creative Commons non-commercial licence.

If you find this work useful please cite:

@article{aybar_cloudsen12_2024,
    title = {{CloudSEN12}+: {The} largest dataset of expert-labeled pixels for cloud and cloud shadow detection in {Sentinel}-2},
    issn = {2352-3409},
    url = {https://www.sciencedirect.com/science/article/pii/S2352340924008163},
    doi = {10.1016/j.dib.2024.110852},
    journal = {Data in Brief},
    author = {Aybar, Cesar and Bautista, Lesly and Montero, David and Contreras, Julio and Ayala, Daryl and Prudencio, Fernando and Loja, Jhomira and Ysuhuaylas, Luis and Herrera, Fernando and Gonzales, Karen and Valladares, Jeanett and Flores, Lucy A. and Mamani, Evelin and Quiñonez, Maria and Fajardo, Rai and Espinoza, Wendy and Limas, Antonio and Yali, Roy and Alcántara, Alejandro and Leyva, Martin and Loayza-Muro, Rau´l and Willems, Bram and Mateo-García, Gonzalo and Gómez-Chova, Luis},
    month = aug,
    year = {2024},
    pages = {110852},
}

@article{aybar_cloudsen12_2022,
    title = {{CloudSEN12}, a global dataset for semantic understanding of cloud and cloud shadow in {Sentinel}-2},
    volume = {9},
    issn = {2052-4463},
    url = {https://www.nature.com/articles/s41597-022-01878-2},
    doi = {10.1038/s41597-022-01878-2},
    number = {1},
    urldate = {2023-01-02},
    journal = {Scientific Data},
    author = {Aybar, Cesar and Ysuhuaylas, Luis and Loja, Jhomira and Gonzales, Karen and Herrera, Fernando and Bautista, Lesly and Yali, Roy and Flores, Angie and Diaz, Lissette and Cuenca, Nicole and Espinoza, Wendy and Prudencio, Fernando and Llactayo, Valeria and Montero, David and Sudmanns, Martin and Tiede, Dirk and Mateo-GarcĂ­a, Gonzalo and GĂłmez-Chova, Luis},
    month = dec,
    year = {2022},
    pages = {782},
}