Landsat Collection2 Surface Reflectance产品介绍、数据获取、去云
Landsat Collection2 Surface Reflectance产品介绍、数据获取、去云
Landsat Collection 2 地表反射率(Surface Reflectance,SR)数据测量了从地球表面反射到Landsat传感器的入射太阳辐射分量。
通过考虑气溶胶散射和薄云等大气效应,地表反射率数据提高了同一区域多期影像间的可比性,这有助于检测和表征地球表面变化。地表反射率数据由满足 <76 度太阳天顶角(Solar Zenith Angle)约束的 Level-1 数据生成,有一些辅助科学数据来帮助生成地表反射率数据。
Landsat8 OLI
Landsat8 OLI Collection 2 地表反射率数据使用Land Surface Reflectance Code (LaSRC) 版本1.5.0,使用coastal aerosol波段进行气溶胶反演测试,MODIS辅助气候数据和独特的辐射传输模型(Vermote et al., 2016)
Landsat4-5 TM和Landsat7 ETM+
Landsat4-5 TM和Landsat7 ETM+地表反射率数据使用Landsat Ecosystem Disturbance Adaptive Processing System (LEDAPS) 算法(3.4.0版本)生产。这个软件使用了MODIS大气校正路径应用于L1数据产品。水气压、臭氧、大气高度、气溶胶光学厚度,高程和Landsat数据输入6S辐射传输模型来生成大气层顶反射率、地表反射率、大气层顶亮温、云掩膜、云影、相邻的云,陆地和水。
rgee
获取Landsat Collection2 Surface Reflectance产品
目前我认为最方便的获取Landsat Collection2地表反射率产品的方法就是使用Google Earth Engine了,同样还是使用rgee
来操作,具体代码如下:
地表反射率数据需要进行校正 定义函数 applyScaleFactor
map
算子执行
library(sf)
library(rgee)
ee_Initialize(drive = T)
# Define a region of interest with sf
ee_roi <- read_sf("./SHP/TP_boundary.SHP") %>%
sf_as_ee()
LT5 = ee$ImageCollection("LANDSAT/LT05/C02/T1_L2")$
filterBounds(ee_roi)$
filterDate('1990-05-01', '1990-06-01')
#应用校正
applyScaleFactor = function(image){
opticalBands = image$select('SR_B.')$multiply(0.0000275)$add(-0.2)
return(opticalBands)
}
mosaic = LT5$select(c('SR_B4', 'SR_B3', 'SR_B2', 'SR_B1'))$
map(applyScaleFactor)$
mosaic()$clip(ee_roi)
#预览数据
imageVisParam <- list(bands = c('SR_B4', 'SR_B3', 'SR_B2'), min = 0, max = 0.3)
Map$addLayer(mosaic, imageVisParam, 'mosaic')+
Map$addLayer(ee_roi, visParams = list(palette = "red"), "roi")
Map$centerObject(ee_roi)
Landsat Collection2 去云
Landsat Collection2使用QA_PIXEL波段进行去云处理和质量控制。
CFMASK质量控制波段
Bitmask for QA_PIXEL
Bit 0: Fill
Bit 1: Dilated Cloud
Bit 2: Unused
Bit 3: Cloud
Bit 4: Cloud Shadow
Bit 5: Snow
Bit 6: Clear
0: Cloud or Dilated Cloud bits are set 1: Cloud and Dilated Cloud bits are not set Bit 7: Water
Bits 8-9: Cloud Confidence
0: None 1: Low 2: Medium 3: High Bits 10-11: Cloud Shadow Confidence
0: None 1: Low 2: Medium 3: High Bits 12-13: Snow/Ice Confidence
0: None 1: Low 2: Medium 3: High Bits 14-15: Cirrus Confidence
0: None 1: Low 2: Medium 3: High
GEE中Landsat Collection2数据目前尚无官方去云代码,在这里我使用了Bit3和Bit4去除云(Cloud)和云影(Cloud Shadow),具体代码如下:
library(sf)
library(rgee)
ee_Initialize(drive = T)
# Define a region of interest with sf
ee_roi <- read_sf("./SHP/TP_boundary.SHP") %>%
sf_as_ee()
LT5 = ee$ImageCollection("LANDSAT/LT05/C02/T1_L2")$
filterBounds(ee_roi)$
filterDate('1990-05-01', '1990-06-01')
# Cloud masking function.
maskL5sr <- function(image) {
cloudShadowBitMask <- bitwShiftL(1, 4)
cloudsBitMask <- bitwShiftL(1, 3)
qa <- image$select('QA_PIXEL')
mask <- qa$bitwiseAnd(cloudShadowBitMask)$eq(0)$
And(qa$bitwiseAnd(cloudsBitMask)$eq(0))
image$updateMask(mask)
}
#应用校正
applyScaleFactor = function(image){
opticalBands = image$select('SR_B.')$multiply(0.0000275)$add(-0.2)
return(opticalBands)
}
mosaic = LT5$map(maskL5sr)$
select(c('SR_B4', 'SR_B3', 'SR_B2', 'SR_B1'))$
map(applyScaleFactor)$
mosaic()$clip(ee_roi)
#预览数据
imageVisParam <- list(bands = c('SR_B4', 'SR_B3', 'SR_B2'), min = 0, max = 0.3)
Map$addLayer(mosaic, imageVisParam, 'mosaic')
Map$centerObject(ee_roi, zoom = 5)
更多rgee
相关内容还请阅读rgee
专题推文,也欢迎留言讨论Landsat Collection2数据使用和去云问题。
参考文献
Landsat Level- 2 Surface Reflectance Science Product courtesy of the U.S. Geological Survey. Masek, J.G., Vermote, E.F., Saleous N.E., Wolfe, R., Hall, F.G., Huemmrich, K.F., Gao, F., Kutler, J., and Lim, T-K. (2006). A Landsat surface reflectance dataset for North America, 1990–2000. IEEE Geoscience and Remote Sensing Letters 3(1):68-72. http://dx.doi.org/10.1109/LGRS.2005.857030. Vermote, E., Justice, C., Claverie, M., & Franch, B. (2016). Preliminary analysis of the performance of the Landsat 8/OLI land surface reflectance product. Remote Sensing of Environment. http://dx.doi.org/10.1016/j.rse.2016.04.008. https://github.com/r-spatial/rgee/issues/140
点击阅读原文查看rgee安装和简介视频课程