GEE笔记006-pythonAPI中Sentinel2云去除

  • 导入包

    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")
    

    在这里插入图片描述

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值