1. Landsat8数据基础认知
第一次接触Landsat8数据时,我也被那些看似复杂的波段编号和命名规则搞得一头雾水。但实际操作后发现,只要掌握几个关键点就能快速上手。Landsat8搭载的OLI传感器共有11个波段,每个波段都像是一个特殊的"滤镜",能捕捉不同特性的地表信息。比如Band 5(近红外波段)对植被特别敏感,而Band 10、11则是专门用于地表温度测量的热红外波段。
波段组合就像调色板,不同的排列能突出不同地物特征。我常用7-6-4组合来观察城市扩张,这种假彩色合成能让建筑区呈现品红色,非常醒目。而做植被分析时,5-4-3的红外彩色组合能让健康植被呈现鲜红色,病弱植被则显示暗红色,对比非常直观。
数据命名看似复杂,其实暗藏规律。以"LC81290382019223LGN00"为例,这串代码就像数据的身份证:LC8代表卫星型号,129/038是轨道编号,2019是年份,223表示这是当年的第223天(8月11日)。理解这些编码后,不用打开文件就能知道数据的基本信息。
2. 数据获取与预处理技巧
从地理空间数据云下载数据时,新手常会遇到选择困难。我的经验是优先选择云量少(最好<10%)的Level 1T级别数据,这种数据已经过地形校正,处理起来更省事。下载后会得到一个压缩包,解压后能看到多个文件,其中MTL文件是关键——它包含了传感器参数、成像时间等元数据,ENVI处理时就是通过读取这个文件来识别数据的。
有个容易踩的坑是坐标系问题。有次我直接用shp文件裁剪影像,结果发现边界对不上,后来发现是矢量数据和影像的投影不一致。现在我的标准操作流程是:先用ENVI Classic将shp转为evf格式,确保投影与影像一致。转换时记得勾选"Convert to UTM",这样能避免后续的配准问题。
文件组织也很重要。建议建立这样的目录结构:
- /原始数据
- /中间结果
- /最终成果 我吃过亏,有次把所有处理结果都堆在桌面,后来软件崩溃全乱了。现在每步处理都会规范命名,比如"Radiance_LC8129038"表示辐射定标结果,"TOA_LC8129038"表示大气校正结果。
3. 辐射定标实战详解
辐射定标是将原始DN值转换为具有物理意义的辐射亮度值的过程。在ENVI中操作时,新手最容易忽略的是输出格式选择。FLAASH大气校正要求输入BIL格式,如果选错会导致后续步骤报错。我习惯直接点击"Apply FLAASH Settings"按钮,这样能自动设置好所有必要参数。
参数设置中有个细节需要注意:系数值(Scale Factor)。Landsat8的默认值是0.1,但有些早期数据可能需要设为1。判断方法是查看MTL文件中的RADIANCE_MULT_BAND_x参数。有次我忘记检查这个值,结果得到的辐射亮度值比实际小了10倍,导致后续分析全部出错。
定标完成后建议做两个检查:
- 右键图层选择"Quick Stats",查看数值范围是否合理(典型值在0-100 W/m²·sr·μm)
- 用Band 4(红波段)和Band 5(近红外)做个简单的NDVI,看看植被区域值是否在0.2-0.8之间
4. 研究区精准裁剪技巧
裁剪看似简单,但要做到精准需要些技巧。我推荐使用"Subset Data from ROIs"工具而不是简单的空间范围裁剪,这样可以确保边界完全吻合。关键是要勾选"Mask pixels outside ROI",否则ENVI会按外接矩形裁剪,多出很多无效区域。
遇到复杂边界时,建议先做两步预处理:
- 在ArcGIS中用"Buffer"工具将边界外扩30米(一个像元大小)
- 使用"Simplify Polygon"工具适当简化边界折点 这样能避免裁剪结果出现锯齿状边缘。有次我直接用了过于复杂的县级边界,结果裁剪耗时长达2小时,简化后只需3分钟。
裁剪后的质量检查很重要:
- 检查元数据中的"data ignore value"是否正确
- 用"Pixel Inspector"工具查看边界像元值是否为0
- 对比裁剪前后直方图,确保特征没有异常变化
5. FLAASH大气校正关键设置
FLAASH界面参数众多,最容易出错的是大气模型选择。有次我误选了"Mid-Latitude Summer"(中纬度夏季),结果校正后的植被反射率明显偏低。后来发现四川地区8月份应该用"Tropical"(热带)模型,因为当地夏季大气条件更接近热带特征。
气溶胶设置也有讲究:
- 城市区域选"Urban"
- 植被覆盖区选"Rural"
- 沿海地区考虑"Maritime" 剑阁县属于山区林地,我选择"Rural"模型效果最好。有个判断技巧:查看Band 1(海岸带波段)的散射程度,如果雾蒙蒙的说明气溶胶影响大,需要更精确的设置。
高程设置容易被忽视。ENVI自带90m分辨率DEM数据,但精确的做法是:
- 从ASTER GDEM下载30m数据
- 用"Statistics from ROIs"计算研究区平均高程
- 输入到"Ground Elevation"参数中 实测发现,高程误差超过200米会导致反射率计算出现明显偏差。
6. 常见问题排查指南
内存不足报错是最常见的问题。我的解决方案是:
- 修改ENVI安装目录下的"envi.cfg"文件
- 找到"memory_size"参数,调整为物理内存的70%
- 设置"swap_dir"到一个剩余空间大于20GB的磁盘分区
遇到"Bad header in input file"错误时,通常是文件路径包含中文导致的。我现在的固定做法是:
- 所有路径都用英文命名
- 文件夹层级不超过3层
- 临时文件放在C盘根目录下
校正结果异常时,按这个顺序检查:
- 查看日志文件(.txt)中的警告信息
- 检查输入数据的辐射亮度单位是否为μW/cm²·sr·nm
- 确认成像时间是否输入正确(精确到分钟)
- 验证水汽反演波段(Band 9)是否被正确识别
7. 成果验证与质量评价
完成大气校正后,我习惯用三个指标验证结果可靠性:
- 植被反射率曲线:健康植被在近红外波段(Band5)应有明显峰值(0.4-0.6)
- 水体反射率:清洁水体在可见光波段应低于0.1
- 云检测:用Band9(卷云波段)检查是否还有残余云像元
有个实用的交叉验证方法:从USGS下载同一区域的L2级地表反射率产品,与自己处理的结果进行对比。差异在±0.05以内说明处理流程正确。我处理剑阁县数据时,与官方产品在Band4的相关系数达到0.98,验证了处理流程的可靠性。
最后建议保存两份结果:
- 完整的ENVI格式数据(含元数据)
- GeoTIFF格式(便于其他软件使用) 我还会额外保存处理日志,记录所有参数设置,方便后续复现和问题追溯。