Sentinel-2: Cloud Probability

COPERNICUS/S2_CLOUD_PROBABILITY
זמינות קבוצת הנתונים
2015-06-27T00:00:00Z–2025-10-13T02:15:39Z
ספק קבוצת הנתונים
קטע קוד ל-Earth Engine
ee.ImageCollection("COPERNICUS/S2_CLOUD_PROBABILITY")
מרווח הזמן בין כל אחזור של נתונים עדכניים
‫5 ימים
תגים
cloud copernicus esa eu msi radiance satellite-imagery sentinel
sentinelhub

תיאור

ההסתברות לענן S2 נוצרת באמצעות הספרייה sentinel2-cloud-detector (באמצעות LightGBM). כל הפסים עוברים דגימת יתר באמצעות אינטרפולציה בילינארית לרזולוציה של 10 מטרים לפני שמחילים את אלגוריתם הבסיס של שיטת הגרדיאנט בוסט. ההסתברות 0..1 שמתקבלת כמספר נקודה צפה מותאמת לטווח 0..100 ונשמרת כ-UINT8. אזורים שחסרים בהם חלק מהפסי תדרים או כולם מוסתרים. ערכים גבוהים יותר מייצגים סבירות גבוהה יותר לעננים או למשטחים מחזירי אור (למשל גגות או שלג).

סנטינל-2 הוא מערך לווייני הדמיה מולטי ספקטראליים ברזולוציה גבוהה על שטח נרחב, שתומך במחקרים של תוכנית קופרניקוס ועוקב אחרי שינויים בקרקע, כולל מעקב אחרי צמחייה, קרקע וכיסוי מים, וגם עורך תצפית על נתיבי מים פנים-יבשתיים ואזורי חוף.

הנתונים ברמה 2 נמצאים באוסף COPERNICUS/S2_SR_HARMONIZED. הנתונים ברמה 1B נמצאים באוסף COPERNICUS/S2_HARMONIZED. מטא-נתונים נוספים זמינים בנכסים באוספים האלה.

במדריך הזה מוסבר איך להחיל את מסכת הענן.

תחום תדרים

רצועות

שם מינימום מקסימום גודל הפיקסל תיאור
probability 0 100 ‫10 מטרים

הסבירות שהפיקסל הוא ענני.

תנאים והגבלות

תנאים והגבלות

השימוש בנתוני Sentinel כפוף לתנאים ולהגבלות על נתוני Sentinel בתוכנית Copernicus.

סיור עם פלטפורמת Earth Engine

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);
פתיחה ב-Code Editor