geemap学习笔记041:Landsat Collection2系列数据去云算法总结

前言

去云算法是进行数据处理中所要进行一步重要操作,Sentinal-2数据中已经提供了去云算法,但是Landsat Collection2系列数据中并没有提供去云算法,下面就以Landsat 8 Collection2为例进行介绍。

1 导入库并显示地图

import ee
import geemap

ee.Initialize()
Map = geemap.Map()
Map

2 Landsat 8 Collection2去云

Map = geemap.Map()

# Landsat-8 Collection2 去云算法
def rmL8CloudNew(image):
  #根据'QA_PIXEL'波段,如果设置了云位(3)并且云阴影位(4)较高,则认为它是坏像素。
  cloudShadowBitMask = (1 << 4)
  cloudsBitMask = (1 << 3)
  qa = image.select('QA_PIXEL')
  mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0) \
                 .And(qa.bitwiseAnd(cloudsBitMask).eq(0))
  return image.updateMask(mask) \
              .copyProperties(image) \
              .copyProperties(image, ["system:time_start"])

# 应用缩放因子
def apply_scale_factors(image):
  optical_bands = image.select('SR_B.').multiply(0.0000275).add(-0.2)
  thermal_bands = image.select('ST_B.*').multiply(0.00341802).add(149.0)
  return image.addBands(optical_bands, None, True).addBands(
      thermal_bands, None, True
  )

centroid = ee.Geometry.Point([-122.4439, 37.7538]) #创建一个点坐标

collection = (
    ee.ImageCollection('LANDSAT/LC08/C02/T1_L2') #Landsat 8数据
    .filterDate('2021-08-01', '2021-09-01') #时间
    .filterBounds(centroid) #筛选经过点的数据
    .filter(ee.Filter.gt('CLOUD_COVER', 20)) #获取一幅云量较多的数据
    .map(rmL8CloudNew)  #进行map去云
    .map(apply_scale_factors) #应用缩放因子
) 

image = collection.first() #选择第一景数据

vis = {
    'bands': ['SR_B4', 'SR_B3', 'SR_B2'],
    'min': 0.0,
    'max': 0.3,
}#设置可视化参数

Map.centerObject(image, 8) #设置中心
Map.addLayer(image, vis, 'Landsat-8')
Map

未进行去云之前
image.png

去云之后的结果,其结果基本就是将云像素给去掉。
image.png

后记

大家如果有地信遥感方面的问题需要请教或者有项目需要合作,可以在闲 鱼软件的用户中搜索:遥感GIS工作室,请认准头像,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值