第四章:遥感数据预处理——从原始数据到可用信息
各位同学,大家好。我是老张,在遥感这行摸爬滚打了十几年。今天咱们聊的这章,可以说是整个遥感灾害监测的「地基」。地基没打好,后面什么变化检测、灾情评估,全是空中楼阁。
说白了,卫星拍下来的原始数据,就像一张没冲洗的胶卷,或者像一块没切过的璞玉。你不能直接拿它去分析。得先「洗照片」——这就是预处理。我见过太多项目,因为预处理没做好,后面分析结果一塌糊涂。嗯,咱们今天就把这四步走扎实。
4.1 辐射定标:把数字变成物理量
卫星传感器记录的是DN值(Digital Number),说白了就是一个整数。比如0到255,或者0到65535。这个数字本身没有物理意义。你得把它转换成辐亮度或者反射率,才能跟别的卫星数据比较。
为什么要做? 举个例子,你拿两台不同手机拍同一个场景,拍出来的亮度可能不一样。卫星也一样,不同传感器、不同时相的数据,DN值不能直接比。定标就是给这个数字「标定」一个物理单位。
核心公式:
L = Gain × DN + Offset
其中L是辐亮度,Gain是增益,Offset是偏移量。这些参数在卫星的元数据文件(MTL文件)里都能找到。
我个人习惯,拿到数据第一件事就是打开元数据文件,看看定标参数有没有更新。有些卫星会定期更新定标系数,用旧的会出问题。我记得有一次处理Landsat 8数据,发现辐射定标结果偏暗,查了半天才发现是用了上一版本的系数。
小技巧: 在ENVI或ArcGIS Pro里,辐射定标通常有现成的工具。但建议你手动算一遍,理解这个过程。代码很简单,几行Python的事:
import numpy as np
# 假设DN值数组为dn_data
gain = 0.0003342 # 从MTL文件读取
offset = -0.1
radiance = gain * dn_data + offset
4.2 大气校正:拨开云雾见青天
大气校正,说白了就是去掉大气对信号的干扰。太阳光穿过大气照到地面,再反射回传感器,这中间大气会吸收、散射一部分能量。你想想看,如果直接拿表观反射率去分析,那结果肯定不准。
常用的方法有几种:
- 6S模型: 物理模型,精度高,但需要输入大气参数(气溶胶、水汽等)。适合研究级应用。
- FLAASH: ENVI里集成的模块,基于MODTRAN模型。我项目里用得最多,操作相对简单。
- QUAC: 快速大气校正,不需要输入参数,但精度一般。适合快速浏览。
- DOS(暗目标法): 假设图像里有暗目标(比如清洁水体),其反射率接近0,以此推算大气影响。简单实用。
注意: 大气校正不是万能的。如果图像上有厚云或者浓雾,校正后依然无法恢复地面信息。我曾经在洪灾监测中遇到这种情况,最后只能换时相的数据。
这里有个避坑指南:我曾经在山区项目里用FLAASH做大气校正,结果发现山体阴影区域校正后反射率异常。后来查资料才知道,FLAASH假设地表是朗伯体(各向同性反射),但山区地形复杂,需要先做地形校正。嗯,这个坑我替你们踩过了。
4.3 几何校正与正射校正:让像素回到正确的位置
卫星影像存在几何变形,原因很多:卫星姿态变化、地球曲率、地形起伏等等。几何校正就是把这些变形纠正过来。
两种校正的区别:
| 类型 | 目的 | 是否需要DEM | 精度 |
|---|---|---|---|
| 几何校正 | 消除系统几何变形 | 否 | 中等(像素级) |
| 正射校正 | 消除地形引起的位移 | 是 | 高(子像素级) |
说白了,几何校正只是把图像「摆正」,但山区的房子可能还是歪的。正射校正则考虑了地形,让山顶和山谷的像素都回到正确位置。在灾害监测中,尤其是滑坡、泥石流这类需要精确位置信息的场景,我强烈建议做正射校正。
操作要点:
- 控制点选取:均匀分布,至少20个点。道路交叉口、建筑物角点都是好选择。
- 重采样方法:最近邻(快速)、双线性(平滑)、三次卷积(锐化)。我一般用双线性,平衡速度和精度。
- DEM精度:正射校正的DEM分辨率最好比影像分辨率高,至少不能低太多。
我记得有一次做地震灾后评估,用高分辨率影像做正射校正。因为灾区地形变化大,DEM是灾前的,结果校正后有些区域还是对不上。后来用了灾后快速生成的DEM才解决。所以,数据时效性很重要。
4.4 图像融合与镶嵌:1+1 > 2
图像融合,就是把高空间分辨率(但低光谱分辨率)的全色波段,和低空间分辨率(但高光谱分辨率)的多光谱波段融合在一起。结果是一张既清晰又色彩丰富的影像。
常用融合方法:
- Brovey变换: 简单快速,适合目视解译。但色彩容易失真。
- IHS变换: 把RGB转到亮度、色度、饱和度空间,用全色波段替换亮度分量。效果不错。
- PCA(主成分分析): 第一主成分替换法。我比较喜欢用这个,色彩保真度好。
- Gram-Schmidt: 目前最推荐的方法,光谱信息损失最小。ENVI里默认就是这个。
经验之谈: 融合前一定要确保两幅图像已经精确配准。差一个像素,融合结果就会出现重影。我曾经因为配准误差,融合后的建筑物边缘像鬼影一样,后来重新配准才解决。
图像镶嵌,就是把多幅影像拼接成一幅。听起来简单,但要做好不容易。关键是接缝线的处理和色调的匀色。
镶嵌的要点:
- 接缝线尽量避开建筑物、道路等明显地物,沿着河流、田埂等自然边界走。
- 色调匀色:用直方图匹配或者色彩平衡,让相邻影像的亮度、色彩一致。
- 羽化处理:接缝线附近做渐变过渡,避免生硬边界。
我做过一个全省范围的镶嵌项目,涉及100多景影像。最头疼的就是不同时相、不同季节的影像色调差异。夏天和冬天的影像拼在一起,一半绿一半黄,那叫一个难看。后来用了分区域的匀色策略,才勉强能看。
总结一下预处理的核心逻辑:
原始DN值 → 辐射定标(物理量) → 大气校正(地表反射率) → 几何/正射校正(正确位置) → 融合/镶嵌(高质量产品)
每一步都影响最终结果。别偷懒,也别跳过。
好了,这章的内容就到这里。预处理是遥感分析里最「苦」的活,但也是最重要的。你想想看,如果输入的数据都是错的,后面再高级的算法也救不回来。希望各位在实际项目中,能把这四步扎扎实实做好。