csaybar/CloudSEN12-high
🚨 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 HIGH-QUALITY A Benchmark Dataset for Cloud Semantic… See the full description on the dataset page: https://huggingface.co/datasets/csaybar/CloudSEN12-high.
🚨 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 HIGH-QUALITY
A Benchmark Dataset for Cloud Semantic Understanding
![]()
CloudSEN12 is a LARGE dataset (~1 TB) for cloud semantic understanding that consists of 49,400 image patches (IP) that are evenly spread throughout all continents except Antarctica. Each IP covers 5090 x 5090 meters and contains data from Sentinel-2 levels 1C and 2A, hand-crafted annotations of thick and thin clouds and cloud shadows, Sentinel-1 Synthetic Aperture Radar (SAR), digital elevation model, surface water occurrence, land cover classes, and cloud mask results from six cutting-edge cloud detection algorithms.
CloudSEN12 is designed to support both weakly and self-/semi-supervised learning strategies by including three distinct forms of hand-crafted labeling data: high-quality, scribble and no-annotation. For more details on how we created the dataset see our paper.
Ready to start using [CloudSEN12](https://cloudsen12.github.io/)?
[Download Dataset](https://cloudsen12.github.io/download.html)
[Paper - Scientific Data](https://www.nature.com/articles/s41597-022-01878-2)
[Inference on a new S2 image](https://colab.research.google.com/github/cloudsen12/examples/blob/master/example02.ipynb)
[Enter to cloudApp](https://github.com/cloudsen12/CloudApp)
[CloudSEN12 in Google Earth Engine](https://gee-community-catalog.org/projects/cloudsen12/)
<br>
General Description
<br>
<br>
Label Description
<br>
<be>
Dataset information, working with np.memmap:
Sentinel-1 and Sentinel-2 collect images that span an area of 5090 x 5090 meters at 10 meters per pixel. This results in 509 x 509 pixel images, presenting a challenge.
Given each layer is a two-dimensional matrix, true image data is held from pixel (1,1) to (509,509)
The subsequent images have been padded with three pixels around the image to make the images 512 x 512, a size that most models accept.
To give a visual representation of where the padding has been added: x marks blank pixels stored as black (255)
xxxxxxxxxxxxxx x xx x xx x xx x xx x xx xxxxxxxxxxxxxx xxxxxxxxxxxxxx
The effects of the padding can be mitigated by adding a random crop within (1,1) to (509, 509) or completing a center crop to the desired size for network architecture.
The current split of image data is into three categories:
- Training: 84.90 % of total
- Validation: 5.35 % of total
- Testing: 9.75 % of total
For the recomposition of the data to take random samples of all 10,000 available images, we can combine the np.memmap objects and take random selections at the beginning of each trial, selecting random samples of the 10,000 images based on the desired percentage of the total data available.
This approach ensures the mitigation of training bias based on the original selection of images for each category.
<br>
Example
train shape: (8490, 512, 512) <br> val shape: (535, 512, 512) <br> test shape: (975, 512, 512) <br>
import numpy as np
# Read high-quality train
train_shape = (8490, 512, 512)
B4X = np.memmap('train/L1C_B04.dat', dtype='int16', mode='r', shape=train_shape)
y = np.memmap('train/manual_hq.dat', dtype='int8', mode='r', shape=train_shape)
# Read high-quality val
val_shape = (535, 512, 512)
B4X = np.memmap('val/L1C_B04.dat', dtype='int16', mode='r', shape=val_shape)
y = np.memmap('val/manual_hq.dat', dtype='int8', mode='r', shape=val_shape)
# Read high-quality test
test_shape = (975, 512, 512)
B4X = np.memmap('test/L1C_B04.dat', dtype='int16', mode='r', shape=test_shape)
y = np.memmap('test/manual_hq.dat', dtype='int8', mode='r', shape=test_shape)<br>
This work has been partially supported by the Spanish Ministry of Science and Innovation project PID2019-109026RB-I00 (MINECO-ERDF) and the Austrian Space Applications Programme within the [SemantiX project](https://austria-in-space.at/en/projects/2019/semantix.php).
