第三章 图像预处理基础:辐射定标、大气校正、几何校正

各位同学,今天我们来聊聊遥感图像预处理。说实话,这一章是整个遥感图像融合的基石。我见过太多人拿到数据就直接做融合,结果出来的图惨不忍睹——颜色不对、地物变形、像元值离谱。嗯,预处理没做好,后面再高级的算法也救不回来。

图像预处理说白了就三件事:辐射定标、大气校正、几何校正。这三步做好了,你的数据才算真正“能用”。我习惯把它们比作做饭前的洗菜切菜——虽然不显眼,但决定了最终菜品的成败。

图像预处理知识体系 遥感图像预处理 辐射定标 大气校正 几何校正 DN值 → 辐亮度 → 反射率 6S模型 / FLAASH模型 正射校正 / 几何精校正 三者顺序:辐射定标 → 大气校正 → 几何校正 缺一不可,顺序不可颠倒

3.1 辐射定标——把原始数字变成物理量

辐射定标是预处理的第一步。你从卫星下载下来的数据,本质上是DN值(Digital Number),也就是0-255或者0-65535之间的整数。但DN值本身没有物理意义——它只是传感器记录下来的电压信号量化结果。

辐射定标要做的,就是把DN值转换成有物理意义的辐亮度或者表观反射率。我刚开始做遥感的时候,有次直接拿DN值去做植被指数计算,结果NDVI值全在0.8以上,明显不对劲。后来才发现——忘了做辐射定标。

3.1.1 定标公式与参数

辐射定标的核心公式其实很简单:

L = Gain × DN + Offset

其中:

  • L —— 辐亮度,单位通常是 W/(m²·sr·μm)
  • Gain —— 增益系数,从元数据文件获取
  • Offset —— 偏移量,同样来自元数据

不同卫星的定标参数格式不一样。Landsat 8的元数据文件(MTL.txt)里直接给出了RADIANCE_MULT_BAND和RADIANCE_ADD_BAND。而Sentinel-2的数据则需要从Granule元数据中提取。

重要提醒: 辐射定标是所有定量遥感分析的前提。不做定标,后面的大气校正就是空中楼阁。

3.1.2 实际操作中的坑

我遇到过最典型的问题——有些同学把Gain和Offset搞反了。还有一次,有人用了Landsat 5的定标参数去处理Landsat 8的数据,结果出来的辐亮度值差了将近一个数量级。

另外要注意:不同传感器的定标参数会随时间变化。卫星发射初期和运行几年后,传感器响应会衰减,所以定标参数需要定期更新。我个人习惯是每次处理数据前,都去USGS官网确认一下最新的定标系数。

3.2 大气校正——把“雾里看花”变成“清晰可见”

大气校正是预处理中最复杂的一步。说白了,就是消除大气分子和气溶胶对电磁波传输的影响。你想想看,卫星在几百公里高空拍到的地面,中间隔着厚厚的大气层——水汽、臭氧、气溶胶都会吸收和散射电磁波。

如果不做大气校正,你得到的反射率其实是“表观反射率”,里面混着大气的贡献。尤其在蓝光波段,大气散射的影响非常严重。我做过一个城市热岛的研究,没做大气校正之前,水体温度比实际高了将近3度——就是因为水汽吸收波段没处理好。

3.2.1 6S模型——物理基础扎实

6S(Second Simulation of the Satellite Signal in the Solar Spectrum)模型,是目前使用最广泛的大气辐射传输模型之一。它的核心思路是:根据大气参数(气溶胶光学厚度、水汽含量、臭氧浓度等),模拟电磁波在大气中的传输过程,然后反推出地表真实反射率。

6S模型的输入参数包括:

  • 几何参数:太阳天顶角、卫星天顶角、相对方位角
  • 大气模式:热带、中纬度夏季/冬季、亚寒带夏季/冬季等
  • 气溶胶模式:大陆型、海洋型、城市型、沙漠型等
  • 气溶胶光学厚度(AOD):550nm处的值
  • 水汽含量、臭氧浓度

我的经验: 如果没有实测的大气参数,可以用MODIS或VIIRS的全球大气产品来获取。我习惯用MODIS的MOD04/MYD04气溶胶产品,空间分辨率10km,基本够用。

6S模型的输出结果包括:大气校正后的地表反射率、大气透过率、程辐射等。这些参数在做图像融合时非常有用——比如你可以用大气校正后的反射率来反演地表参数,然后作为融合算法的输入。

3.2.2 FLAASH模型——集成化的大气校正工具

FLAASH(Fast Line-of-sight Atmospheric Analysis of Spectral Hypercubes)是ENVI软件中集成的大气校正模块。它基于MODTRAN辐射传输模型,但做了大量优化,计算速度比直接跑MODTRAN快得多。

FLAASH的优势在于:

  • 支持多光谱和高光谱数据
  • 自动估算水汽含量和气溶胶光学厚度
  • 输出结果包含可见光到近红外多个波段
  • 可以处理邻域效应(adjacency effect)

使用FLAASH时,有几个关键参数要特别注意:

  1. 传感器类型和高度 —— 选错了传感器,校正结果会完全跑偏
  2. 地面平均海拔 —— 这个参数影响大气路径长度,我见过有人直接用0米,结果山区数据校正过度
  3. 气溶胶模型 —— 城市区域选城市型,海边选海洋型,别搞混

警告: FLAASH要求输入数据必须是辐亮度(辐射定标后的结果),不能直接输入DN值。另外,数据需要是浮点型,整型数据会报错。

3.2.3 6S vs FLAASH——怎么选?

对比项 6S模型 FLAASH模型
理论基础 6S辐射传输模型 MODTRAN辐射传输模型
计算速度 较快(逐像元计算) 较慢(但比MODTRAN快)
输入参数 需要手动输入大气参数 可自动估算部分参数
适用场景 科研、批量处理 工程应用、快速处理
输出内容 反射率、透过率、程辐射 反射率、水汽含量、气溶胶

我个人习惯是:做科研论文时用6S,因为可以精确控制每个参数;做工程项目时用FLAASH,因为效率高、操作简单。但不管用哪个,都要先做辐射定标——这个顺序不能乱。

3.3 几何校正——让图像“对号入座”

几何校正解决的是“图像上的像素点对应地面上的哪个位置”这个问题。原始遥感图像存在几何畸变——地形起伏、传感器姿态变化、地球曲率等都会导致图像变形。

几何校正分为两类:几何粗校正几何精校正。粗校正是基于卫星轨道参数和传感器模型进行的,精度一般在几个像素以内。精校正则需要地面控制点(GCP),精度可以达到亚像素级别。

3.3.1 正射校正——消除地形影响

正射校正是几何校正中的“高阶玩法”。它利用数字高程模型(DEM)来消除地形起伏引起的几何变形。你想想看,一座山在卫星影像上看起来是“歪”的——山顶和山脚的投影位置发生了偏移。正射校正就是把这个“歪”的影像拉正。

正射校正的流程:

  1. 获取DEM数据(SRTM、ASTER GDEM、ALOS等)
  2. 建立传感器成像几何模型(共线方程或有理函数模型)
  3. 逐像元计算地形引起的偏移量
  4. 重采样生成正射影像

关键点: 正射校正的精度取决于DEM的分辨率和精度。对于平坦地区,30m的SRTM就够用;对于山区,建议用12m的ALOS或5m的DEM。

3.3.2 几何精校正——用控制点“钉”住位置

几何精校正需要在地面选取控制点——就是那些在图像上能清晰识别、在地面上有精确坐标的地物。比如道路交叉口、建筑物角点、水库堤坝等。

控制点的选取原则:

  • 均匀分布在整个图像上,不要集中在某一区域
  • 数量要足够——一般至少20-30个点
  • 精度要高——GPS实测点优于从地图上选取的点
  • 避免选取随时间变化的地物(比如农田边界)

我曾经做过一个项目,需要把多期Landsat影像精确配准。第一次做的时候只选了15个控制点,结果校正后的影像在边缘区域偏差了3个像素。后来增加到40个点,并且用二阶多项式模型,精度提升到了0.5个像素以内。

3.3.3 重采样方法的选择

几何校正最后一步是重采样——把原始像元值重新分配到校正后的网格上。常用的方法有三种:

方法 原理 适用场景
最近邻法 取最近的像元值 分类数据、保持原始值
双线性内插 取周围4个像元的加权平均 连续数据、平滑效果
三次卷积 取周围16个像元的加权平均 高精度要求、纹理保持

我的建议是:做植被指数或地表温度反演时,用双线性内插;做土地利用分类时,用最近邻法——因为分类结果是离散值,插值会引入“假类别”。

3.4 预处理流程总结

好了,把这三步串起来,完整的预处理流程就是:

  1. 辐射定标:DN值 → 辐亮度(或表观反射率)
  2. 大气校正:表观反射率 → 地表真实反射率(用6S或FLAASH)
  3. 几何校正:消除几何畸变(正射校正 + 精校正)

这个顺序不能颠倒。为什么?因为大气校正需要精确的辐亮度值,而几何校正会改变像元的位置和数值——如果先做几何校正再做大气校正,大气校正的输入数据就已经被“污染”了。

一个小技巧: 如果你处理的是多时相数据,建议先做几何校正,确保所有影像都配准到同一个坐标系,然后再做辐射定标和大气校正。这样后续的时序分析会更准确。

嗯,这一章的内容就到这里。预处理虽然繁琐,但值得你花时间做好。我见过太多人因为预处理没做好,导致后续分析全白费——那种感觉,真的不好受。


公众号:蓝海资料掘金营,微信deep3321