- دردسترس بودن مجموعه داده
- 2015-06-27T00:00:00Z–2026-10-11T00:46:39Z
- تولیدکننده مجموعه داده
- اتحادیه اروپا/ESA/Copernicus/SentinelHub
- فاصله زمانی بازنگری
- ۵ روز
- برچسبها
شرح
احتمال ابری بودن S2 با کتابخانه
sentinel2-cloud-detector
ایجاد میشود (بااستفاده از LightGBM).
همه باندها بااستفاده از درونیابی دوخطی به وضوح ۱۰ متری نمونهبرداری میشوند
قبلاز اینکه الگوریتم پایه تقویت گرادیان اعمال شود. احتمال نقطه شناور 0..1 حاصل به 0..100 مقیاسبندی میشود و بهعنوان
UINT8 ذخیره میشود. نواحیای که فاقد هریک یا همه باندها هستند پوشانده میشوند.
مقادیر بالاتر احتمال بیشتری دارد که ابر یا سطوح بسیار بازتابنده باشد
(مثلاً پشتبام یا برف).
Sentinel-2 مأموریت تصویربرداری چندطیفی با وضوح بالا و پوشش گسترده است که از مطالعات پایش زمین Copernicus، ازجمله پایش پوشش گیاهی، خاک، و آب، و همچنین مشاهده آبراههای داخلی و مناطق ساحلی پشتیبانی میکند.
دادههای سطح ۲ را میتوانید در مجموعه COPERNICUS/S2_SR_HARMONIZED پیدا کنید. دادههای «سطح 1B» را میتوانید در مجموعه COPERNICUS/S2_HARMONIZED پیدا کنید. فرادادههای اضافی در داراییهای موجود در آن مجموعهها دردسترس است.
این آموزش را ببینید که نحوه اعمال ماسک ابری را توضیح میدهد.
باند
باند
اندازه پیکسل: ۱۰ متر (همه باندها)
| نام | دقیقه | Max | اندازه پیکسل | شرح |
|---|---|---|---|---|
probability |
0 | 100 | ۱۰ متر | احتمال ابری بودن پیکسل. |
شرایط استفاده
شرایط استفاده
استفاده از دادههای Sentinel تحت کنترل شرایط خدمات دادههای Copernicus Sentinel است.
کاوش با Earth Engine
ویرایشگر کد (جاوا اسکریپت)
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