-
导入包
import geemap,os,ee
-
显示GEE窗口
m = geemap.Map(center=[40, 100], zoom=4) m.add_basemap('SATELLITE') m
-
筛选影像并显示
#载入矢量数据集 Albers_667 = ee.FeatureCollection("users/你的id/你的矢量数据集") #依据字段筛选矢量数据 alt = Albers_667.filterMetadata("CPAC","equals","a654301") #载入Sentinel2 S2 = ee.ImageCollection("COPERNICUS/S2_SR") #根据矢量边界与日期筛选影像 S2_ALT_2020 = S2.filterBounds(alt.geometry()).filterDate("2020-01-01","2020-12-30") #SR2020真彩色显示 visParams2 = { "bands": ['B4', 'B3', 'B2'], "min": 0, "max": 3000, "gamma": 1.4} m.addLayer(S2_ALT_2020,visParams2,"S2_ALT_2020")
-
载入同区域同时期Sentinel2云概率数据集
S2_Clouds = ee.ImageCollection('COPERNICUS/S2_CLOUD_PROBABILITY') S2_Clouds_ALT_2020 = S2_Clouds.filterBounds(alt.geometry()) .filterDate("2020-01-01","2020-12-30")
-
编写去云函数
def maskClouds(img): clouds = ee.Image(img.get('cloud_mask')).select('probability') #最大云概率为65 isNotCloud = clouds.lt(65) return img.updateMask(isNotCloud) def maskEdges(s2_img): return s2_img.updateMask(s2_img.select('B8A').mask() .updateMask(s2_img.select('B9').mask()))
-
处理S2影像边缘
S2_ALT_20202 = S2_ALT_2020.map(maskEdges)
-
将处理后的影像与云概率影像连接
s2SrWithCloudMask = ee.Join.saveFirst('cloud_mask').apply(**{ "primary": S2_ALT_20202, "secondary": S2_Clouds_ALT_2020, "condition": ee.Filter.equals(**{ "leftField": "system:index", "rightField":"system:index"}) })
-
将连接后的影像进行去云、中值合成并显示
s2CloudMasked =ee.ImageCollection(s2SrWithCloudMask) .map(maskClouds).median() rgbVis = {"min": 0, "max": 3000, "bands": ['B4', 'B3', 'B2']}; m.addLayer(s2CloudMasked,rgbVis,"S2_ALT_NOCLOUD")
GEE笔记006-pythonAPI中Sentinel2云去除
最新推荐文章于 2023-12-18 18:22:39 发布