Sentinel-2: Cloud Probability

COPERNICUS/S2_CLOUD_PROBABILITY
데이터 세트 제공
2015-06-27T00:00:00Z–2025-09-04T13:42:31Z
데이터 세트 제공업체
Earth Engine 스니펫
ee.ImageCollection("COPERNICUS/S2_CLOUD_PROBABILITY")
다시 방문 간격
5일
태그
cloud copernicus esa eu msi radiance satellite-imagery sentinel
sentinelhub

설명

S2 클라우드 확률은 sentinel2-cloud-detector 라이브러리 (LightGBM 사용)로 생성됩니다. 모든 밴드는 그라데이션 부스트 기본 알고리즘이 적용되기 전에 양선형 보간법을 사용하여 10m 해상도로 업샘플링됩니다. 결과로 생성된 0..1 부동 소수점 확률은 0..100로 조정되고 UINT8로 저장됩니다. 밴드가 일부 또는 전부 누락된 영역은 마스크 처리됩니다. 값이 높을수록 구름이나 반사율이 높은 표면(예: 지붕이나 눈)일 가능성이 높습니다.

Sentinel-2는 식생, 토양, 수면 모니터링은 물론 내륙 수로와 연안 지역 관측 등 코페르니쿠스 육지 모니터링 연구를 지원하는 폭넓은 고해상도 다중 스펙트럼 이미지 처리 임무입니다.

2단계 데이터는 COPERNICUS/S2_SR_HARMONIZED 컬렉션에서 확인할 수 있습니다. Level-1B 데이터는 COPERNICUS/S2_HARMONIZED 컬렉션에서 확인할 수 있습니다. 이러한 컬렉션의 애셋에서 추가 메타데이터를 사용할 수 있습니다.

클라우드 마스크를 적용하는 방법을 설명하는 이 튜토리얼을 참고하세요.

대역

대역

이름 최소 최대 픽셀 크기 설명
probability 0 100 10미터

픽셀이 흐릴 확률입니다.

이용약관

이용약관

Sentinel 데이터 사용에는 코페르니쿠스 Sentinel 데이터 이용약관이 적용됩니다.

Earth Engine으로 탐색

코드 편집기(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);
코드 편집기에서 열기