Sentinel-2: Cloud Probability

COPERNICUS/S2_CLOUD_PROBABILITY
Disponibilidade de conjuntos de dados
2015-06-27T00:00:00Z–2025-10-04T00:06:09Z
Provedor de conjunto de dados
Snippet do Earth Engine
ee.ImageCollection("COPERNICUS/S2_CLOUD_PROBABILITY")
Intervalo de revisão
5 dias
Tags
cloud copernicus esa eu msi radiance satellite-imagery sentinel
sentinelhub

Descrição

A probabilidade de nuvem do S2 é criada com a biblioteca sentinel2-cloud-detector (usando LightGBM). Todas as bandas são aumentadas usando a interpolação bilinear para resolução de 10 m antes da aplicação do algoritmo de base de aumento de gradiente. A probabilidade de ponto flutuante 0..1 resultante é dimensionada para 0..100 e armazenada como um UINT8. As áreas que não têm nenhuma ou todas as bandas são mascaradas. Valores mais altos têm mais chances de serem nuvens ou superfícies altamente refletoras (por exemplo, telhados ou neve).

O Sentinel-2 é uma missão de imagens multiespectrais de alta resolução e ampla faixa que apoia estudos de monitoramento de terras do Copernicus, incluindo o monitoramento da vegetação, da cobertura de solo e água, além da observação de trechos navegáveis de cursos de água que atravessam as cidades e áreas costeiras.

Os dados de nível 2 podem ser encontrados na coleção COPERNICUS/S2_SR_HARMONIZED. Os dados de nível 1B podem ser encontrados na coleção COPERNICUS/S2_HARMONIZED. Há mais metadados disponíveis nos recursos dessas coleções.

Consulte este tutorial (em inglês) que explica como aplicar a máscara de nuvem.

Bandas

Bandas

Nome Mín. Máx. Tamanho do pixel Descrição
probability 0 100 10 metros

Probabilidade de o pixel estar nublado.

Termos de Uso

Termos de Uso

O uso de dados do Sentinel é regido pelos Termos e Condições de Dados do Sentinel da Copernicus (em inglês).

Explorar com o 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 no editor de código