- 데이터 세트 제공
- 2015-06-27T00:00:00Z–2026-10-16T09:53:41Z
- 데이터 세트 출처
- 유럽 연합/ESA/Copernicus/SentinelHub
- 재관측 간격
- 5일
- 태그
설명
S2 구름 확률은 sentinel2-cloud-detector 라이브러리 (LightGBM 사용)로 생성됩니다.
모든 대역은 그래디언트 부스트 기본 알고리즘이 적용되기 전에 쌍선형 보간법을 사용하여 10m 해상도로 업샘플링됩니다. 결과로 생성되는 0..1 부동 소수점 확률은 0..100로 조정되고 UINT8로 저장됩니다. 밴드 중 일부 또는 전부가 누락된 영역은 마스킹됩니다.
값이 높을수록 구름 또는 반사율이 높은 표면(예: 지붕 또는 눈)일 가능성이 높습니다.
Sentinel-2는 넓은 관측 폭과 고해상도를 갖춘 다중 스펙트럼 이미징 임무로, 식생, 토양, 수역 모니터링을 포함하여 내륙 수로 및 해안 지역 관측 등 코페르니쿠스 지표면 모니터링 연구를 지원합니다.
수준 2 데이터는 COPERNICUS/S2_SR_HARMONIZED 컬렉션에서 찾을 수 있습니다. Level-1B 데이터는 COPERNICUS/S2_HARMONIZED 컬렉션에서 찾을 수 있습니다. 이러한 컬렉션의 애셋에 추가 메타데이터를 사용할 수 있습니다.
구름 마스크를 적용하는 방법을 설명하는 이 튜토리얼을 참고하세요.
대역
대역
픽셀 크기: 10m (모든 대역)
| 이름 | 민 | 최대 | 픽셀 크기 | 설명 |
|---|---|---|---|---|
probability |
0 | 100 | 10미터 | 픽셀이 흐릴 확률입니다. |
이용약관
이용약관
Sentinel 데이터 사용에는 Copernicus 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);
import ee import geemap.core as geemap
Colab(Python)
s2_sr = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED') s2_clouds = ee.ImageCollection('COPERNICUS/S2_CLOUD_PROBABILITY') start_date = ee.Date('2019-01-01') end_date = ee.Date('2019-03-01') max_cloud_probability = 65 region = ee.Geometry.Rectangle( coords=[-76.5, 2.0, -74, 4.0], geodesic=False, proj='EPSG:4326' ) def maskClouds(img): clouds = ee.Image(img.get('cloud_mask')).select('probability') is_not_cloud = clouds.lt(max_cloud_probability) return img.updateMask(is_not_cloud) # 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 def 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. criteria = ee.Filter.And( ee.Filter.bounds(region), ee.Filter.date(start_date, end_date) ) s2_sr = s2_sr.filter(criteria).map(maskEdges) s2_clouds = s2_clouds.filter(criteria) # Join S2 SR with cloud probability dataset to add cloud mask. s2_sr_with_cloud_mask = ee.Join.saveFirst('cloud_mask').apply( primary=s2_sr, secondary=s2_clouds, condition=ee.Filter.equals( leftField='system:index', rightField='system:index' ), ) s_2_cloud_masked = ( ee.ImageCollection(s2_sr_with_cloud_mask).map(maskClouds).median() ) rgb_vis = {'min': 0, 'max': 3000, 'bands': ['B4', 'B3', 'B2']} m = geemap.Map() m.set_center(-75, 3, 12) m.add_layer( s_2_cloud_masked, rgb_vis, 'S2 SR masked at ' + str(max_cloud_probability) + '%', True, ) m