Sentinel-2: Cloud Probability

COPERNICUS/S2_CLOUD_PROBABILITY
Disponibilidad del conjunto de datos
2015-06-27T00:00:00Z–2025-10-04T00:06:09Z
Proveedor del conjunto de datos
Fragmento de Earth Engine
ee.ImageCollection("COPERNICUS/S2_CLOUD_PROBABILITY")
Intervalo de revisión
5 días
Etiquetas
cloud copernicus esa eu msi radiance satellite-imagery sentinel
sentinelhub

Descripción

La probabilidad de nubes de S2 se crea con la biblioteca sentinel2-cloud-detector (con LightGBM). Todas las bandas se aumentan de resolución con interpolación bilineal a una resolución de 10 m antes de aplicar el algoritmo base de potenciación del gradiente. La probabilidad de punto flotante 0..1 resultante se ajusta a 0..100 y se almacena como un UINT8. Las áreas a las que les falta alguna o todas las bandas se enmascaran. Los valores más altos tienen más probabilidades de ser nubes o superficies muy reflectantes (p.ej., techos o nieve).

Sentinel-2 es una misión de imágenes multiespectrales de alta resolución y ancho de franja que respalda los estudios de monitoreo terrestre de Copernicus, incluido el monitoreo de la vegetación, la cobertura del suelo y el agua, así como la observación de las áreas costeras y los cursos de agua interiores.

Los datos de nivel 2 se pueden encontrar en la colección COPERNICUS/S2_SR_HARMONIZED. Los datos de nivel 1B se pueden encontrar en la colección COPERNICUS/S2_HARMONIZED. Hay metadatos adicionales disponibles en los recursos de esas colecciones.

Consulta este instructivo en el que se explica cómo aplicar la máscara de nubes.

Bandas

Bandas

Nombre Mín. Máx. Tamaño de los píxeles Descripción
probability 0 100 10 metros

Es la probabilidad de que el píxel esté nublado.

Condiciones de Uso

Condiciones de Uso

El uso de los datos de Sentinel se rige por los Términos y Condiciones de los datos de Sentinel de Copernicus.

Explora con Earth Engine

Editor de código (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);
Abrir en el editor de código