Sentinel-2: Cloud Probability

COPERNICUS/S2_CLOUD_PROBABILITY
Dataset-Verfügbarkeit
2015-06-27T00:00:00Z–2025-09-01T08:45:31Z
Dataset-Anbieter
Earth Engine-Snippet
ee.ImageCollection("COPERNICUS/S2_CLOUD_PROBABILITY")
Wiederholungsintervall
5 Tage
Tags
cloud copernicus esa eu msi radiance satellite-imagery sentinel
sentinelhub

Beschreibung

Die S2-Wolkenwahrscheinlichkeit wird mit der Bibliothek sentinel2-cloud-detector (mit LightGBM) erstellt. Alle Bänder werden mithilfe der bilinearen Interpolation auf eine Auflösung von 10 m hochskaliert, bevor der Gradient-Boosting-Basisalgorithmus angewendet wird. Die resultierende Gleitkomma-Wahrscheinlichkeit 0..1 wird auf 0..100 skaliert und als UINT8 gespeichert. Bereiche, in denen einige oder alle Bänder fehlen, werden maskiert. Höhere Werte sind eher Wolken oder stark reflektierende Oberflächen (z.B. Dächer oder Schnee).

Sentinel-2 ist eine großflächige, hochauflösende, multispektrale Bildgebungsmission, die Studien zur Landüberwachung im Rahmen von Copernicus unterstützt, einschließlich der Überwachung von Vegetation, Boden und Wasseroberfläche sowie der Beobachtung von Binnenwasserstraßen und Küstengebieten.

Die Daten der Stufe 2 finden Sie in der Sammlung COPERNICUS/S2_SR_HARMONIZED. Die Level-1B-Daten sind in der Sammlung COPERNICUS/S2_HARMONIZED verfügbar. Für Assets in diesen Sammlungen sind zusätzliche Metadaten verfügbar.

In dieser Anleitung wird beschrieben, wie Sie die Cloud-Maske anwenden.

Bänder

Bänder

Name Min. Max. Pixelgröße Beschreibung
probability 0 100 10 Meter

Wahrscheinlichkeit, dass das Pixel bewölkt ist.

Nutzungsbedingungen

Nutzungsbedingungen

Die Verwendung von Sentinel-Daten unterliegt den Geschäftsbedingungen für Copernicus-Sentinel-Daten.

Earth Engine nutzen

Code-Editor (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);
Im Code-Editor öffnen