保姆级教程:用ENVI+单窗算法反演Landsat8地表温度(附完整BandMath公式)

保姆级教程:用ENVI+单窗算法反演Landsat8地表温度(附完整BandMath公式) 保姆级教程ENVI单窗算法实现Landsat8地表温度反演全流程解析当我们需要从卫星影像中提取地表温度数据时单窗算法因其相对简单的参数需求和较高的精度成为许多研究者的首选方法。特别是对于Landsat8这样的开源数据配合ENVI软件强大的BandMath功能可以实现从原始数据到温度产品的完整处理流程。本文将手把手带你完成整个反演过程重点解决实际操作中的公式输入和参数设置难题。1. 数据准备与环境配置在开始温度反演前我们需要确保拥有完整的数据集和适当的软件环境。Landsat8数据可以从USGS EarthExplorer或地理空间数据云平台免费获取。下载时应选择云量低于10%的影像并确保包含以下关键文件MTL元数据文件包含辐射定标参数B10波段热红外波段分辨率100米B4-B5波段用于NDVI计算分辨率30米ENVI软件需要安装以下扩展模块Radiometric Correction用于辐射定标Atmospheric Correction可选用于反射率计算BandMath核心计算工具提示建议在处理前创建新的ENVI工程目录将原始数据、中间文件和最终结果分类存放避免文件混乱。2. 辐射与大气校正处理2.1 辐射定标流程辐射定标是将DN值转换为辐射亮度的关键步骤。在ENVI中操作如下打开Radiometric Calibration工具选择多光谱波段B1-B7设置参数定标类型辐射亮度(Radiance) 缩放因子0.1 输出数据类型浮点型(Float)对热红外波段B10单独处理参数设置定标类型辐射亮度 缩放因子0.0003342 偏移量0.12.2 大气校正要点虽然单窗算法对大气校正要求不高但进行适当处理可提高NDVI计算精度# 示例ENVI IDL大气校正脚本 pro atmospheric_correction input_file dialog_pickfile(title选择辐射定标后文件) output_file input_file _atmcor envi_doit, QUAC, $ input_fileinput_file, $ output_fileoutput_file end3. 关键参数计算与实现3.1 大气透射率(t)获取大气透射率可通过以下方式确定方法精度数据需求适用场景在线计算工具高时间、位置、气象数据精确研究经验值中无快速估算历史数据拟合中高长期观测数据区域研究推荐使用NASA的AtmCorr工具在线计算需要输入影像获取时间经纬度坐标当天天气数据温度、湿度、气压3.2 植被指数与比辐射率计算NDVI计算公式NDVI \frac{B5 - B4}{B5 B4}ENVI BandMath表达式(float(b5)-float(b4))/(float(b5)float(b4))植被覆盖度(Fv)计算采用置信区间法确定NDVI极值NDVImin 0.1 (5%置信区间) NDVImax 0.57 (95%置信区间)BandMath表达式(b1 gt 0.57)*1 (b1 lt 0.1)*0 (b1 ge 0.1 and b1 le 0.57)*((b1-0.1)/(0.57-0.1))地表比辐射率(ε)分类计算水体0.995城镇0.9589 0.086Fv - 0.0671Fv²自然表面0.9625 0.0614Fv - 0.0461Fv²对应BandMath表达式(b1 le 0.1)*0.995 (b1 gt 0.1 and b1 lt 0.57)*(0.95890.086*b2-0.0671*b2*b2) (b1 ge 0.57)*(0.96250.0614*b2-0.0461*b2*b2)4. 单窗算法核心计算4.1 中间变量计算根据覃志豪单窗算法模型需要先计算两个中间变量变量CC ε × tBandMath实现0.73*b1 # 假设t0.73b1为比辐射率图变量DD (1-t)[1(1-ε)t]BandMath表达式(1-0.73)*(1(1-b1)*0.73)4.2 亮温(T6)计算从B10波段辐射亮度转换为亮温T6 \frac{K2}{\ln(\frac{K1}{Lλ} 1)}其中Landsat8常量K1 774.89 W/(m²·sr·μm) K2 1321.08 KBandMath表达式1321.08/alog(774.89/b11)4.3 大气平均作用温度(Ta)估算根据研究区气候类型选择公式气候类型公式热带Ta 17.9769 0.91715T0中纬度夏季Ta 16.0110 0.92621T0中纬度冬季Ta 19.2704 0.91118T0注意T0为当地气温单位K可从气象站获取并转换4.4 最终地表温度计算单窗算法完整公式Ts \frac{a(1-C-D) [b(1-C-D)CD]T6 - DT_a}{C}其中常量a -67.355351 b 0.458606对应BandMath表达式(-67.355351*(1-b1-b2)(0.458606*(1-b1-b2)b1b2)*b3-b2*292.67455805)/b1变量对应关系b1 C b2 D b3 T65. 结果后处理与验证5.1 温度单位转换计算结果为开尔文温度转换为摄氏度温度°C 温度K - 273.15BandMath表达式b1 - 273.155.2 结果验证方法统计检验检查温度值是否在合理范围内通常地表温度在-20°C至50°C之间空间分布验证比较水体、城市、植被区的温度差异是否符合预期实地数据对比如有气象站数据可进行点对点验证5.3 常见问题排查异常高温/低温值检查辐射定标参数是否正确确认大气透射率取值合理验证比辐射率分类是否准确空间分布异常检查NDVI计算是否正确确认研究区边界裁剪准确排除云污染像元在处理宁夏中卫市的数据时发现南部山区出现异常低温区经检查是残留薄云影响。通过设置温度阈值如0°C视为无效值可以有效过滤这类异常。