解决的问题:
LandSat8 Collection2 Level1/2由于头文件格式不能被识别而在ENVI中无法被打开的问题。
处理方法:
一、对波段数据逐一进行波段运算转换为地表反射率
在USGS发布的Landsat9 Collection2 L1/L2数据使用手册中查阅到Landsat9 Collection2表面反射率数据属于Collection2二级数据产品,分辨率为30米,基于陆地表面反射率代码(LaSRC)生成,该算法利用沿海气溶胶波段进行气溶胶反演测试,还利用MODIS的辅助气候数据和独特的辐射传输模型。
若要将1-7波段影像像元值转换为地表反射率,那么我们需要在头文件中找到REFLECTANCE_MULT_BAND参数与REFLECTANCE_ADD_BAND参数,然后进行计算:
ρi(SR)= DN*MULT+ADD
若要将10波段影像像元值转换为地表温度,那么我们需要在头文件中找到 TEMPERATURE_MULT_BAND_ST_B10 参数与TEMPERATURE_ADD_BAND_ST_B10 参数,然后进行计算:
ST=DN*MULT+ADD-273(0°代表的开尔文温度)
实际上,在进行大气校正时,我们难免会可能存在能见度等输入参数误差、数据噪声、参数设置不精准等情况,所以我们并不可能完全得出真实一致的地表反射率。但是我们通过实验能够观察到这部分大误差像元占比很小,所以我们通常直接将其归一化即可。理论上讲,地表反射率应该处于0-1之间,负值像元一般为水体、浓密植被或者阴影像元,地表反射率大于1的像元一般为高反射人工地物或者有云层覆盖(云层程辐射)。那换个角度思考这个问题,我们也能够发现对于不同影像如果大气校正后地表反射率大于1的像元越多,那么其高反射人工建筑物就可能越多,或者该影像的云覆盖程度就越高。
在ENVI中操作:
ToolBox -> Band Algebra-> Band math ->输入计算式:(b1*0.0000275-0.2)>0<1 -> 输出归一化地表反射率文件。
二、利用Layer Stacking(层堆栈)将所需的LandSat9 Collection2 level2波段数据集成
ENVI操作:(集成后形成了单波段文件,其可在envi_classic中用RGB三波段组合打开)
ENVI ->Raster Management -> Layer Stacking(将所有归一化后的地表反射率文件集成)。
后序:
如果所获取遥感影像文件既不能在ENVI打开,也不是地表反射率文件。那么,我们可以通过在影像头文件中查找单波段对应最小、最大辐射亮度值自行计算增益和偏移值,然后利用波段运算器对数据进行辐射定标,同时再根据选择模型所需参数在头文件中找到进行大气校正。详见大佬的CSDN博客[3]。
参考资料
[1]LandSat9 Data Users Handbook(Landsat9数据用户手册)https://d9-wret.s3.us-west-2.amazonaws.com/assets/palladium/production/s3fs-public/media/files/LSDS-2082_L9-Data-Users-Handbook_v1.pdf
[2]张志杰,张浩,常玉光,陈正超.2015.Landsat系列卫星光学遥感器辐射定标方法综述.遥感学报,19(5):719-732
[3]Landsat影像增益值和偏置值的获取_丑唐的修炼之旅的博客-CSDN博客_landsat8增益和偏置值
[4]Landsat Collection 2 Surface Reflectance | U.S. Geological Survey