Sentinel-2: Cloud Probability

COPERNICUS/S2_CLOUD_PROBABILITY
데이터 세트 사용 가능 여부
2015-06-27T00:00:00Z–2025-06-18T09:17: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);
코드 편집기에서 열기