isp-uv-es/CloudSEN12Plus
🚨 New Dataset Version Released! We are excited to announce the release of Version [1.1] of our dataset! This update includes: [L2A & L1C support]. [Temporal support]. [Check the data without downloading (Cloud-optimized properties)]. 📥 Go to: https://huggingface.co/datasets/tacofoundation/cloudsen12 and follow the instructions in colab CloudSEN12+ is a significant extension of the CloudSEN12 dataset, which doubles the number… See the full description on the dataset page: https://huggingface.co/datasets/isp-uv-es/CloudSEN12Plus.
🚨 New Dataset Version Released!
We are excited to announce the release of Version [1.1] of our dataset!
This update includes:
- [L2A & L1C support].
- [Temporal support].
- [Check the data without downloading (Cloud-optimized properties)].
📥 Go to: https://huggingface.co/datasets/tacofoundation/cloudsen12 and follow the instructions in colab
<center> <img src="cloudsen12.gif" alt="drawing" width="35%"/> </center>
CloudSEN12+ is a significant extension of the CloudSEN12 dataset, which doubles the number of expert-reviewed labels, making it, by a large margin, the largest cloud detection dataset to date for Sentinel-2. All labels from the previous version have been curated and refined, enhancing the dataset's trustworthiness. This new release is licensed under CC0, which puts it in the public domain and allows anyone to use, modify, and distribute it without permission or attribution.
Data Folder order
The CloudSEN12+ dataset is organized into train, val, and test splits. The images have been padded from 509x509 to 512x512 and 2000x2000 to 2048x2048 to ensure that the patches are divisible by 32. The padding is filled with zeros in the left and bottom sides of the image. For those who prefer traditional storage formats, GeoTIFF files are available in our ScienceDataBank repository.
<center> <img src="https://cdn-uploads.huggingface.co/production/uploads/6402474cfa1acad600659e92/9UA4U3WObVeq7BAcf37-C.png" alt="drawing" width="50%"/> </center>
CloudSEN12+ spatial coverage. The terms p509 and p2000 denote the patch size 509 × 509 and 2000 × 2000, respectively. ‘high’, ‘scribble’, and ‘nolabel’ refer to the types of expert-labeled annotations
TACO Snippet
import tacoreader
import rasterio as rio
dataset = tacoreader.load("tacofoundation:cloudsen12-l1c")Sensor: Sentinel2 - MSI
TACO Task: image-segmentation
TACO Dataset Version: 1.1.0
Data raw repository: [https://cloudsen12.github.io/](https://cloudsen12.github.io/)
Dataset discussion: [https://huggingface.co/datasets/isp-uv-es/CloudSEN12Plus/discussions](https://huggingface.co/datasets/isp-uv-es/CloudSEN12Plus/discussions)
Split_strategy: stratified
Paper: [https://www.sciencedirect.com/science/article/pii/S2352340924008163](https://www.sciencedirect.com/science/article/pii/S2352340924008163)
Data Providers
Curators
Labels
For human _high-quality_ labels (also UnetMobV2V2 & UnetMobV2V1 predictions).
For human _scribble_ labels.
Dimensions
Spectral Bands
Data Structure
We use .mls format to store the data in HugginFace and GeoTIFF for ScienceDataBank.
Folder Structure
The fixed/ folder contains high and scribble labels, which have been improved in this new version. These changes have already been integrated.
The demo/ folder contains examples illustrating how to utilize the models trained with CLoudSEN12 to estimate the hardness and trustworthiness indices.
The images/ folder contains the CloudSEN12+ imagery
Download
The code below can be used to download the dataset using the mlstac library. For a more detailed example, please refer to the examples section in our website https://cloudsen12.github.io/.
import tacoreader
import rasterio as rio
print(tacoreader.__version__) # 0.5.3
# Remotely load the Cloud-Optimized Dataset
dataset = tacoreader.load("tacofoundation:cloudsen12-l1c")
#dataset = tacoreader.load("tacofoundation:cloudsen12-l2a")
#dataset = tacoreader.load("tacofoundation:cloudsen12-extra")
# Read a sample
sample_idx = 2422
s2_l1c = dataset.read(sample_idx).read(0)
s2_label = dataset.read(sample_idx).read(1)
# Retrieve the data
with rio.open(s2_l1c) as src, rio.open(s2_label) as dst:
s2_l1c_data = src.read([4, 3, 2], window=rio.windows.Window(0, 0, 512, 512))
s2_label_data = dst.read(window=rio.windows.Window(0, 0, 512, 512))
# Display
fig, ax = plt.subplots(1, 2, figsize=(10, 5))
ax[0].imshow(s2_l1c_data.transpose(1, 2, 0) / 3000)
ax[0].set_title("Sentinel-2 L1C")
ax[1].imshow(s2_label_data[0])
ax[1].set_title("Human Label")
plt.tight_layout()
plt.savefig("taco_check.png")
plt.close(fig)
Citation
Cite the dataset as:
@article{aybar2024cloudsen12+,
title={CloudSEN12+: The largest dataset of expert-labeled pixels for cloud and cloud shadow detection in Sentinel-2},
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 others},
journal={Data in Brief},
pages={110852},
year={2024},
DOI={10.1016/j.dib.2024.110852},
publisher={Elsevier}
}