保姆级教程:用ENVI 5.3搞定Landsat8影像的辐射与大气校正(附海淀区裁剪实例)
ENVI 5.3遥感影像处理实战:从辐射校正到区域分析
当第一次接触遥感影像处理时,很多新手会被各种专业术语和复杂流程吓到。ENVI作为遥感领域的标杆软件,其功能强大但学习曲线陡峭。本文将用最直观的方式,带你完成Landsat8影像从原始数据到可用成果的全流程处理,特别适合需要在短时间内交出成果的学生和初级工程师。
1. 环境准备与数据获取
在开始处理前,我们需要准备好工作环境和数据源。ENVI 5.3虽然界面友好,但仍有几个关键点需要注意:
软件配置要求:
- 操作系统:Windows 10/11 64位
- 内存:建议≥16GB(处理大型影像时)
- 存储空间:至少保留20GB空闲空间
- 显卡:支持OpenGL 3.3及以上
提示:安装路径务必全英文,避免中文字符导致的兼容性问题
Landsat8数据可以从多个平台获取,国内用户推荐:
- 地理空间数据云(http://www.gscloud.cn)
- USGS EarthExplorer(https://earthexplorer.usgs.gov)
- Google Earth Engine(需科学账号)
下载时选择包含MTL.txt文件的完整数据包,这个文件包含了传感器校准的关键参数。典型的Landsat8数据包包含11个波段:
| 波段编号 | 波长范围(μm) | 空间分辨率(m) | 主要用途 |
|---|---|---|---|
| 1 | 0.43-0.45 | 30 | 海岸气溶胶 |
| 2 | 0.45-0.51 | 30 | 蓝光波段 |
| 3 | 0.53-0.59 | 30 | 绿光波段 |
| 4 | 0.64-0.67 | 30 | 红光波段 |
| 5 | 0.85-0.88 | 30 | 近红外 |
| 6 | 1.57-1.65 | 30 | 短波红外1 |
| 7 | 2.11-2.29 | 30 | 短波红外2 |
| 8 | 0.50-0.68 | 15 | 全色波段 |
| 9 | 1.36-1.38 | 30 | 卷云检测 |
| 10 | 10.6-11.2 | 100 | 热红外1 |
| 11 | 11.5-12.5 | 100 | 热红外2 |
2. 辐射校正:从DN值到物理量
辐射校正是将原始数字量化值(DN)转换为具有物理意义的辐射亮度值的关键步骤。ENVI 5.3提供了直观的辐射定标工具:
- 启动ENVI,通过
File > Open加载MTL.txt文件 - 在工具箱搜索栏输入"Radiometric Calibration"
- 在弹出的对话框中选择多波段影像(通常为"_MTL_MultiSpectral")
关键参数设置:
- 定标类型:选择
Radiance(辐射亮度) - 输出格式:
BIL(波段按行交叉存储) - 数据类型:
Floating Point(保持计算精度) - 点击
Apply FLAASH Settings自动匹配比例因子
# 伪代码展示辐射定标的核心计算 def dn_to_radiance(dn, gain, bias): """ DN值转辐射亮度公式 :param dn: 原始数字量化值 :param gain: 增益系数(来自MTL文件) :param bias: 偏移量(来自MTL文件) :return: 辐射亮度值(W/(m²·sr·μm)) """ return gain * dn + bias完成辐射定标后,影像看起来可能没有明显变化,这是因为辐射校正主要改变的是像元值的物理含义而非视觉效果。可以通过右键图层选择Quick Stats查看统计信息,确认值域已从0-255的DN值变为实际的辐射亮度范围。
3. 研究区域裁剪:提升处理效率
大气校正过程计算密集,对整景影像处理耗时较长。先裁剪出研究区域能显著提升效率:
- 准备研究区矢量边界(如海淀区行政边界.shp)
- 在ENVI中加载矢量文件:
File > Open Vector File - 搜索并打开
Subset Data from ROIs工具 - 选择辐射定标后的影像作为输入
- 关键参数设置:
- ROI Selection:勾选所有相关要素
- Mask Pixel Outside ROI:Yes(精确裁剪)
- Mask Background Value:0(黑色背景)
为什么不在辐射定标前裁剪?
- 辐射定标需要完整的元数据(MTL文件)
- 裁剪操作会丢失部分头文件信息
- 大气校正不需要原始元数据,可放心裁剪
海淀区作为典型城市区域,其影像特征明显:
- 高密度建筑群(高反射率)
- 道路网络清晰可见
- 公园绿地(植被覆盖区)
- 水体(湖泊、河流)
4. 大气校正:消除环境干扰
FLAASH是ENVI集成的经典大气校正模块,能有效消除气溶胶、水蒸气等影响。以下是关键参数配置指南:
基础参数:
- Input Radiance Image:选择裁剪后的影像
- Output Reflectance File:设置输出路径
- Output Directory for FLAASH Files:指定工作目录
传感器信息:
- Sensor Type:Landsat8 OLI
- Flight Date:从元数据中获取(右键图层 > View Metadata)
- Ground Elevation:海淀区平均海拔约50m(0.05km)
大气模型选择: 根据成像时间和纬度确定:
| 月份 | 纬度范围 | 推荐模型 |
|---|---|---|
| 5-8月 | <23°N | Tropical |
| 5-8月 | 23-45°N | Mid-Latitude Summer |
| 其他月份 | 23-45°N | Mid-Latitude Winter |
海淀区位于北纬39.9°,夏季影像应选择Mid-Latitude Summer模型。
气溶胶模型: 城市区域选择Urban,农村地区选择Rural。海淀作为城区,通常选择Urban。
多光谱设置:
- 点击
Multispectral Settings按钮 - 选择
GUI Defaults - 使用默认大气校正参数
注意:大气校正过程可能持续10-30分钟,取决于硬件配置和影像大小。期间不要操作ENVI其他功能,避免中断。
5. 质量检查与结果应用
完成所有校正后,需要进行质量检查:
视觉检查:
- 对比校正前后影像
- 确认地物边界清晰
- 检查是否有条带或异常区域
统计检查:
# ENVI命令行检查统计信息 ENVI> print, stat(校正后影像)典型反射率值应在合理范围内:
- 植被:NIR波段0.3-0.8
- 水体:可见光波段<0.1
- 裸土:0.1-0.4
应用验证:
- NDVI计算:
(NIR-Red)/(NIR+Red) - 土地利用分类
- 变化检测分析
- NDVI计算:
常见问题排查:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 校正失败 | 路径含中文 | 使用全英文路径 |
| 结果异常 | 海拔单位错误 | 确认使用km单位 |
| 值域不合理 | 波段顺序错误 | 检查输入波段顺序 |
| 部分区域异常 | 云层覆盖 | 考虑云掩膜处理 |
处理后的影像可用于多种分析:
- 城市热岛效应研究(结合热红外波段)
- 植被覆盖度评估
- 地表温度反演
- 土地利用/覆盖变化监测
在实际项目中,我通常会保存处理过程中的中间结果,特别是辐射定标后的数据,这样当需要调整大气校正参数时,可以避免重复进行前面的步骤。另外,ENVI的批处理功能(File > Batch Processing)对于处理多时相影像特别有用,可以显著提升工作效率。
