- Dataset Availability
- 2015-06-27T00:00:00Z–2024-12-21T13:00:45Z
- Dataset Provider
- Google Earth Engine
- Earth Engine Snippet
-
ee.ImageCollection("GOOGLE/CLOUD_SCORE_PLUS/V1/S2_HARMONIZED")
- Tags
Description
Cloud Score+ is a quality assessment (QA) processor for medium-to-high resolution optical satellite imagery. The Cloud Score+ S2_HARMONIZED dataset is being operationally produced from the harmonized Sentinel-2 L1C collection, and Cloud Score+ outputs can be used to identify relatively clear pixels and effectively remove clouds and cloud shadows from L1C (Top-of-Atmosphere) or L2A (Surface Reflectance) imagery.
The Cloud Score+ S2_HARMONIZED dataset includes two QA bands, cs
and
cs_cdf
, that both grade the usability of individual pixels with respect to
surface visibility on a continuous scale between 0 and 1, where 0 represents
"not clear" (occluded), while 1 represents "clear" (unoccluded) observations.
The cs
band scores QA based on a spectral distance between the observed
pixel and a (theoretical) clear reference observation, while the cs_cdf
band
represents the likelihood an observed pixel is clear based on an estimated
cumulative distribution of scores for a given location through time. In
other words, cs
can be thought of as a more instantaneous atmospheric
similarity score (i.e., how similar is this pixel to what we'd expect to
see in a perfectly a clear reference), while cs_cdf
captures an expectation
of the estimated score through time (i.e., if we had all the scores for this
pixel through time, how would this score rank?).
Images in the Cloud Score+ S2_HARMONIZED collection have the same id and
system:index
properties as the individual Sentinel-2 L1C
assets from which they were produced such that Cloud Score+ bands can be
linked to source images based on their shared system:index
.
Cloud Score+ backfill for the entire Sentinel-2 archive is currently in progress and Dataset Availability dates will be updated periodically as new results are added to the Cloud Score+ collection.
For more information about the Cloud Score+ dataset and modelling approach, see this Medium post.
Bands
Resolution
10 meters
Bands
Name | Units | Min | Max | Description |
---|---|---|---|---|
cs |
Dimensionless | 0 | 1 | Pixel quality score based on spectral distance from a (theoretical) clear reference |
cs_cdf |
Dimensionless | 0 | 1 | Value of the cumulative distribution function of possible
|
Image Properties
Image Properties
Name | Type | Description |
---|---|---|
DATE_PRODUCT_GENERATED | STRING | Production date. |
MGRS_TILE | STRING | Sentinel-2 Military Grid Reference System ID. |
MODEL_VERSION | STRING | Cloud Score+ model version. |
NO_CONTEXT_FRACTION | DOUBLE | Fraction of subtiles processed with no temporal context. |
PROCESSING_SOFTWARE_VERSION | STRING | Cloud Score+ processing software version. |
SOURCE_ASSET_ID | STRING | Earth Engine Asset ID for source image. |
SOURCE_PRODUCT_ID | STRING | Sentinel-2 Product ID for source image. |
Terms of Use
Terms of Use
Citations
Pasquarella, V. J., Brown, C. F., Czerwinski, W., & Rucklidge, W. J. (2023) Comprehensive Quality Assessment of Optical Satellite Imagery Using Weakly Supervised Video Learning. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 2124-2134). PDF
Explore with Earth Engine
Code Editor (JavaScript)
// Harmonized Sentinel-2 Level 2A collection. var s2 = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED'); // Cloud Score+ image collection. Note Cloud Score+ is produced from Sentinel-2 // Level 1C data and can be applied to either L1C or L2A collections. var csPlus = ee.ImageCollection('GOOGLE/CLOUD_SCORE_PLUS/V1/S2_HARMONIZED'); // Region of interest. var ROI = ee.Geometry.Point(-119.9087, 37.4159); // Use 'cs' or 'cs_cdf', depending on your use case; see docs for guidance. var QA_BAND = 'cs_cdf'; // The threshold for masking; values between 0.50 and 0.65 generally work well. // Higher values will remove thin clouds, haze & cirrus shadows. var CLEAR_THRESHOLD = 0.60; // Make a clear median composite. var composite = s2 .filterBounds(ROI) .filterDate('2023-01-01', '2023-02-01') .linkCollection(csPlus, [QA_BAND]) .map(function(img) { return img.updateMask(img.select(QA_BAND).gte(CLEAR_THRESHOLD)); }) .median(); // Sentinel-2 visualization parameters. var s2Viz = {bands: ['B4', 'B3', 'B2'], min: 0, max: 2500}; Map.addLayer(composite, s2Viz, 'median composite'); Map.centerObject(ROI, 11);