零基础实战ENVI BandMath全流程反演Landsat 8地表温度当你在深夜的实验室盯着屏幕上的遥感数据是否曾被复杂的温度反演公式劝退本文将以最小化理论推导的方式带你用ENVI BandMath工具完成从原始数据到温度图的全流程操作。我们假设你手头已有Landsat 8 Level-1数据包接下来只需按步骤粘贴这些经过实测验证的代码片段。1. 环境准备与数据预处理在开始前请确保ENVI 5.3以上版本已安装。将Landsat 8压缩包解压后你会看到包含_MTL.txt的文件夹——这个元数据文件包含了后续计算所需的所有卫星参数。必须检查的元数据参数SUN_ELEVATION太阳高度角DATE_ACQUIRED成像日期LANDSAT_SCENE_ID场景编号提示建议新建专门的工作目录存放处理中间文件避免路径包含中文或特殊字符用以下步骤加载数据打开ENVI → File → Open → 选择_MTL.txt文件在弹出对话框中勾选所有波段特别是B4、B5、B10右键图层栈 → Save As → 保存为ENVI标准格式.dat2. 辐射定标与大气校正传统教程常要求手动计算辐射亮度值其实ENVI内置了自动化工具。在Toolbox中找到Radiometric Correction → Radiometric Calibration按此配置参数项设置值Input File原始B10波段Calibration TypeBrightness TemperatureOutput命名如radiance.dat对于大气校正我们推荐使用简化版的黑暗像元法。在BandMath中输入(float(b1) - 0.1) * 0.0003342 0.1 ; b1代表B10波段这个公式中0.1是典型暗像元值0.0003342来自Landsat 8的辐射转换系数输出建议保存为atcorr.dat3. 植被指数与地表分类3.1 NDVI计算在BandMath中直接输入归一化植被指数公式(float(b5)-float(b4))/(float(b5)float(b4)) ; b4红波段, b5近红外常见问题排查结果出现NaN值 → 检查分母是否为0数值范围异常 → 确认波段选择正确3.2 地表类型划分用阈值法快速分类水体/植被/城市(b1 lt 0.1)*1 (b1 ge 0.1 and b1 lt 0.3)*2 (b1 ge 0.3)*3 ; 1水体, 2裸地, 3植被4. 比辐射率精确计算根据地表类型采用不同计算公式在BandMath中构建条件表达式(b2 eq 1)*0.995 (b2 eq 2)*(0.9625 0.0614*b3 - 0.0461*b3^2) (b2 eq 3)*(0.9589 0.086*b3 - 0.0671*b3^2)变量说明b2 地表分类结果b3 NDVI值系数来自NASA官方推荐值5. 温度反演终极公式最后一步将热辐射转换为摄氏度针对Landsat 8 TIRS Band 10的专用公式1321.08 / alog(774.89 / b1 1) - 273关键参数解读774.89和1321.08是Band 10特有的K1/K2常数alog表示自然对数-273实现开尔文到摄氏度的转换注意若处理其他Landsat卫星数据必须替换对应的K1/K2值6. 结果验证与可视化右键温度图层选择Raster Color Slice建议设置如下色阶温度范围(℃)颜色地表特征0深蓝色冰雪/高山0-20浅绿色健康植被20-35黄色裸露土壤35红色城市热岛/火灾区最终成果应该显示清晰的温度梯度变化。我曾处理过北京周边数据发现城区温度比郊区平均高出4-6℃这个差异在夏季尤为明显。如果结果出现大面积异常值建议从辐射定标步骤开始逐步检查中间文件。
告别理论公式!用ENVI BandMath手把手搞定Landsat 8地表温度反演(附完整代码)
发布时间:2026/6/2 11:14:06
零基础实战ENVI BandMath全流程反演Landsat 8地表温度当你在深夜的实验室盯着屏幕上的遥感数据是否曾被复杂的温度反演公式劝退本文将以最小化理论推导的方式带你用ENVI BandMath工具完成从原始数据到温度图的全流程操作。我们假设你手头已有Landsat 8 Level-1数据包接下来只需按步骤粘贴这些经过实测验证的代码片段。1. 环境准备与数据预处理在开始前请确保ENVI 5.3以上版本已安装。将Landsat 8压缩包解压后你会看到包含_MTL.txt的文件夹——这个元数据文件包含了后续计算所需的所有卫星参数。必须检查的元数据参数SUN_ELEVATION太阳高度角DATE_ACQUIRED成像日期LANDSAT_SCENE_ID场景编号提示建议新建专门的工作目录存放处理中间文件避免路径包含中文或特殊字符用以下步骤加载数据打开ENVI → File → Open → 选择_MTL.txt文件在弹出对话框中勾选所有波段特别是B4、B5、B10右键图层栈 → Save As → 保存为ENVI标准格式.dat2. 辐射定标与大气校正传统教程常要求手动计算辐射亮度值其实ENVI内置了自动化工具。在Toolbox中找到Radiometric Correction → Radiometric Calibration按此配置参数项设置值Input File原始B10波段Calibration TypeBrightness TemperatureOutput命名如radiance.dat对于大气校正我们推荐使用简化版的黑暗像元法。在BandMath中输入(float(b1) - 0.1) * 0.0003342 0.1 ; b1代表B10波段这个公式中0.1是典型暗像元值0.0003342来自Landsat 8的辐射转换系数输出建议保存为atcorr.dat3. 植被指数与地表分类3.1 NDVI计算在BandMath中直接输入归一化植被指数公式(float(b5)-float(b4))/(float(b5)float(b4)) ; b4红波段, b5近红外常见问题排查结果出现NaN值 → 检查分母是否为0数值范围异常 → 确认波段选择正确3.2 地表类型划分用阈值法快速分类水体/植被/城市(b1 lt 0.1)*1 (b1 ge 0.1 and b1 lt 0.3)*2 (b1 ge 0.3)*3 ; 1水体, 2裸地, 3植被4. 比辐射率精确计算根据地表类型采用不同计算公式在BandMath中构建条件表达式(b2 eq 1)*0.995 (b2 eq 2)*(0.9625 0.0614*b3 - 0.0461*b3^2) (b2 eq 3)*(0.9589 0.086*b3 - 0.0671*b3^2)变量说明b2 地表分类结果b3 NDVI值系数来自NASA官方推荐值5. 温度反演终极公式最后一步将热辐射转换为摄氏度针对Landsat 8 TIRS Band 10的专用公式1321.08 / alog(774.89 / b1 1) - 273关键参数解读774.89和1321.08是Band 10特有的K1/K2常数alog表示自然对数-273实现开尔文到摄氏度的转换注意若处理其他Landsat卫星数据必须替换对应的K1/K2值6. 结果验证与可视化右键温度图层选择Raster Color Slice建议设置如下色阶温度范围(℃)颜色地表特征0深蓝色冰雪/高山0-20浅绿色健康植被20-35黄色裸露土壤35红色城市热岛/火灾区最终成果应该显示清晰的温度梯度变化。我曾处理过北京周边数据发现城区温度比郊区平均高出4-6℃这个差异在夏季尤为明显。如果结果出现大面积异常值建议从辐射定标步骤开始逐步检查中间文件。