Sentinel-2: Cloud Probability

COPERNICUS/S2_CLOUD_PROBABILITY
Ketersediaan Set Data
2015-06-27T00:00:00Z–2025-10-13T14:52:01Z
Penyedia Set Data
Cuplikan Earth Engine
ee.ImageCollection("COPERNICUS/S2_CLOUD_PROBABILITY")
Interval Kunjungan Ulang
5 Hari
Tag
cloud copernicus esa eu msi radiance satellite-imagery sentinel
sentinelhub

Deskripsi

Probabilitas awan S2 dibuat dengan library sentinel2-cloud-detector (menggunakan LightGBM). Semua band di-upsample menggunakan interpolasi bilinear ke resolusi 10 m sebelum algoritma dasar gradient boost diterapkan. Probabilitas floating point 0..1 yang dihasilkan diskalakan ke 0..100 dan disimpan sebagai UINT8. Area yang tidak memiliki satu atau semua band akan ditutupi. Nilai yang lebih tinggi cenderung berupa awan atau permukaan yang sangat reflektif (misalnya, atap atau salju).

Sentinel-2 adalah misi pencitraan multispektrum dengan cakupan luas dan resolusi tinggi yang mendukung studi Copernicus Land Monitoring, termasuk pemantauan vegetasi, lapisan permukaan tanah dan air, serta pengamatan jalur air pedalaman dan area pesisir.

Data Level 2 dapat ditemukan dalam koleksi COPERNICUS/S2_SR_HARMONIZED. Data Level-1B dapat ditemukan dalam koleksi COPERNICUS/S2_HARMONIZED. Metadata tambahan tersedia di aset dalam koleksi tersebut.

Lihat tutorial ini yang menjelaskan cara menerapkan masker awan.

Band

Band

Nama Min Maks Ukuran Piksel Deskripsi
probability 0 100 10 meter

Kemungkinan piksel berawan.

Persyaratan Penggunaan

Persyaratan Penggunaan

Penggunaan data Sentinel diatur oleh Persyaratan dan Ketentuan Data Sentinel Copernicus.

Mengeksplorasi dengan Earth Engine

Editor Kode (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);
Buka di Editor Kode