一种解决Landsat9 Collection2 level1/2在ENVI打开无果的基本方法

本文介绍了如何解决Landsat8/9Collection2Level1/2头文件无法在ENVI中识别的问题,包括如何将波段数据转换为地表反射率和温度,以及在ENVI中进行波段运算和LayerStacking集成。通过辐射定标和大气校正,将数据归一化并集成,以便于后续分析。同时提供了获取遥感影像增益值和偏置值的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决的问题:

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

### 使用 ENVI 5.6 打开 Landsat 8 和 9 Collection 2 Level-2 (C2L2) 数据 #### 遥感影像获取 为了处理和分析地表温度,可以从地理空间数据云下载所需的 Landsat 8 OLI_TIRS 卫星数字产品[^1]。 #### 处理 MTL 文件以便兼容 ENVI 由于直接从 USGS 下载的 Landsat 8 SR Level-2 级别的数据存在不被 ENVI 正常识别的情况,因此需要先对 `MTL.txt` 文件进行预处理。通过批量化修改这些元数据文件的内容结构,使其能够适配 ENVI 的读取需求[^2]。 ```matlab % MATLAB 脚本用于批量转换 MTL 文件格式以适应 ENVI 加载 function modify_mtl_files(directoryPath) % 获取目录下的所有 .txt 文件列表 files = dir(fullfile(directoryPath, &#39;*.txt&#39;)); for i = 1:length(files) filePath = fullfile(directoryPath, files(i).name); % 读取原始 MTL 文件内容并调整其格式... % (此处省略具体实现细节) % 将修正后的文本保存回原路径或新位置 newFilePath = [filePath &#39;_modified&#39;]; fid = fopen(newFilePath,&#39;w&#39;); fprintf(fid,&#39;%s\n&#39;, modifiedContent{:}); fclose(fid); end end ``` 经过上述脚本处理过的 `.txt` 文件将会放置于同一文件夹内,并带有 `_modified` 后缀标记,此时再利用 ENVI 导入工具即可顺利加载对应的图像数据集。 #### 在 ENVI 中导入已处理的数据 完成前序准备后,在 ENVI 主界面依次点击菜单栏上的【File】-> 【Open Image File...】, 浏览至存储有经MATLAB编辑过的新版 `MTL_modified.txt` 文件所在的位置,选择该文件作为输入源来启动后续操作流程。一旦成功解析,则可进一步开展针对 LST 反演等相关研究工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

doll ~CJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值