Sentinel-2: Cloud Probability

COPERNICUS/S2_CLOUD_PROBABILITY
Disponibilité des ensembles de données
2015-06-27T00:00:00Z–2025-09-01T08:45:31Z
Fournisseur de l'ensemble de données
Extrait Earth Engine
ee.ImageCollection("COPERNICUS/S2_CLOUD_PROBABILITY")
Intervalle de réexamen
5 jours
Tags
cloud copernicus esa eu msi radiance satellite-imagery sentinel
sentinelhub

Description

La probabilité de couverture nuageuse S2 est créée avec la bibliothèque sentinel2-cloud-detector (à l'aide de LightGBM). Toutes les bandes sont suréchantillonnées à une résolution de 10 mètres à l'aide de l'interpolation bilinéaire avant l'application de l'algorithme de base de gradient boosting. La probabilité à virgule flottante 0..1 résultante est mise à l'échelle sur 0..100 et stockée en tant que UINT8. Les zones où une ou plusieurs bandes sont manquantes sont masquées. Les valeurs élevées sont plus susceptibles de correspondre à des nuages ou à des surfaces très réfléchissantes (par exemple, des toits ou de la neige).

Sentinel-2 est une mission d'imagerie multispectrale à haute résolution et à large champ qui soutient les études Copernicus sur la surveillance des terres, y compris la surveillance de la couverture végétale, des sols et de l'eau, ainsi que l'observation des voies navigables intérieures et des zones côtières.

Les données de niveau 2 sont disponibles dans la collection COPERNICUS/S2_SR_HARMONIZED. Les données de niveau 1B sont disponibles dans la collection COPERNICUS/S2_HARMONIZED. Des métadonnées supplémentaires sont disponibles pour les composants de ces collections.

Consultez ce tutoriel qui explique comment appliquer le masque de nuages.

Bracelets

Bandes

Nom Min Max Taille des pixels Description
probability 0 100 10 mètres

Probabilité que le pixel soit nuageux.

Conditions d'utilisation

Conditions d'utilisation

L'utilisation des données Sentinel est régie par les Conditions générales relatives aux données Sentinel du programme Copernicus.

Explorer avec Earth Engine

Éditeur de code (JavaScript)

var s2Sr = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED');
var s2Clouds = ee.ImageCollection('COPERNICUS/S2_CLOUD_PROBABILITY');

var START_DATE = ee.Date('2019-01-01');
var END_DATE = ee.Date('2019-03-01');
var MAX_CLOUD_PROBABILITY = 65;
var region =
    ee.Geometry.Rectangle({coords: [-76.5, 2.0, -74, 4.0], geodesic: false});
Map.setCenter(-75, 3, 12);

function maskClouds(img) {
  var clouds = ee.Image(img.get('cloud_mask')).select('probability');
  var isNotCloud = clouds.lt(MAX_CLOUD_PROBABILITY);
  return img.updateMask(isNotCloud);
}

// The masks for the 10m bands sometimes do not exclude bad data at
// scene edges, so we apply masks from the 20m and 60m bands as well.
// Example asset that needs this operation:
// COPERNICUS/S2_CLOUD_PROBABILITY/20190301T000239_20190301T000238_T55GDP
function maskEdges(s2_img) {
  return s2_img.updateMask(
      s2_img.select('B8A').mask().updateMask(s2_img.select('B9').mask()));
}

// Filter input collections by desired data range and region.
var criteria = ee.Filter.and(
    ee.Filter.bounds(region), ee.Filter.date(START_DATE, END_DATE));
s2Sr = s2Sr.filter(criteria).map(maskEdges);
s2Clouds = s2Clouds.filter(criteria);

// Join S2 SR with cloud probability dataset to add cloud mask.
var s2SrWithCloudMask = ee.Join.saveFirst('cloud_mask').apply({
  primary: s2Sr,
  secondary: s2Clouds,
  condition:
      ee.Filter.equals({leftField: 'system:index', rightField: 'system:index'})
});

var s2CloudMasked =
    ee.ImageCollection(s2SrWithCloudMask).map(maskClouds).median();
var rgbVis = {min: 0, max: 3000, bands: ['B4', 'B3', 'B2']};

Map.addLayer(
    s2CloudMasked, rgbVis, 'S2 SR masked at ' + MAX_CLOUD_PROBABILITY + '%',
    true);
Ouvrir dans l'éditeur de code