遥感影像处理全流程:从DN值到NDVI的实践指南
2026/9/17 14:20:39 网站建设 项目流程

简介:遥感原理与应用知识点PDF是一份面向地理学、环境科学及遥感初学者的复习与备考资料,系统梳理了电磁波物理基础、遥感平台与传感器等核心章节。内容涵盖遥感概念辨析、电磁波谱组成、绝对黑体与大气窗口、光谱反射率与地物波谱特征等高频考点,并以名词解释、填空、选择、问答形式逐一呈现,方便对照练习和快速记忆。资源为单个PDF文件,压缩包大小877KB,内容精炼、便于打印或离线阅读。已有409人浏览学习,适合期末复习、考研准备或相关课程自学使用。结合预览可见,资料对沙土、植物、水体的光谱反射率规律及瑞利散射、米氏散射等易混淆知识点做了清晰归纳,能帮助读者快速抓住遥感原理中的重点与难点,提升复习效率。

1. 遥感影像的本质:先理解DN值,再谈应用

拿到一景遥感影像,如果打开后直接用原始像元值(DN值)去算植被指数,得出的结果会让你误判一半以上的植被分布。这不是夸张,而是初学者最容易踩中的坑:影像的强度值本身没有物理意义,只有经过辐射定标和大气校正,它才真正对应地物的反射率信息。这也正是“遥感原理与应用”这一整套知识体系的价值所在。

这篇文章从电磁波谱与大气窗口讲起,把数据源选型、图像预处理、信息提取到实际应用整个链条里的关键知识点梳理一遍。没有软件背景也能读,但如果你已经在用ENVI、QGIS或者GDAL,会更快把内容落到命令行和代码上。适合刚开始接触遥感、需要搭建知识框架的IT从业者,也适合用Python做地学分析但对物理原理不熟的开发人员。

2. 从电磁波谱到地物波谱:遥感物理基础

2.1 电磁波谱与遥感观测的波段选择

遥感说到底是在“看”地物对太阳辐射的反射和自身发射的电磁波。人眼只能感知0.4到0.7微米的可见光,卫星传感器的覆盖范围却远不止于此,从紫外、可见光、近红外、短波红外、热红外一直延伸到微波,不同波段携带的信息完全不同。

为什么传感器要设计这么多波段?因为不同地物在不同波长处的反射率差异,就是解译的基础。一个常见误区是把多光谱影像当成普通照片来看,认为红、绿、蓝三个波段就足够。实际上,植被在近红外波段的反射率远高于可见光,水体在近红外处几乎完全吸收。这种谱间差异是定量遥感的依据,也是分类算法的输入特征,少了近红外波段,很多地物的区分度会直线下降。

2.2 大气窗口与散射效应

大气对电磁波的吸收和散射,是遥感观测中首先要绕过的障碍。水汽、二氧化碳和臭氧在多个波段有强吸收带,能透过大气的波段范围被称为大气窗口。

主要的大气窗口有三个:0.4到2.5微米的可见光与短波红外窗口,承载绝大多数光学遥感;3到5微米的中红外窗口,多用于高温目标识别,和林火监测场景密不可分;8到14微米的热红外窗口,是地表温度反演的唯一通道。微波波段则几乎不受云雨影响,这是合成孔径雷达SAR能在夜间和阴天成像的根本原因。

散射效应按粒子尺寸分为瑞利散射、米氏散射和非选择性散射。瑞利散射强度与波长的四次方成反比,蓝光被散射得最厉害,晴空呈蓝色就是这个道理。米氏散射对近红外和中红外影响更大,有霾或沙尘时信号明显被污染。非选择性散射与波长无关,云和雾属于这一类。这里记住一个工程结论:在可见光波段做大气校正时,瑞利散射是主要贡献项;到了短波红外波段,散射贡献已经微弱到可以忽略。

2.3 地物波谱特征曲线:解译的物理依据

地物类型可见光特征近红外特征解译要点
绿色植被蓝光与红光吸收,绿光反射高反射红边位置与叶绿素含量相关
水体较低反射,含泥沙时蓝绿光偏高几乎全吸收近红外低反射是水体识别关键
裸土反射率随波长缓慢上升继续上升与建筑同谱时需借助纹理
冰雪可见光高反射反射率下降与云在可见光上容易混淆

绿色植被的波谱曲线极具标志性:蓝光0.45微米和红光0.65微米附近有两个吸收谷,这是叶绿素对入射光的吸收造成的;绿光0.55微米附近有一个反射峰,所以植被看起来是绿色;从红光到近红外反射率骤升,形成陡峭的“红边”,几乎可以作为植被存在的判别依据。

水体则在近红外和中红外几乎完全吸收,反射率趋近于零。裸土的曲线平滑,反射率随波长缓慢上升。建筑和道路的波谱形态常与裸土接近,这是城市地物分类难做的深层原因。

实际项目中会遇到同物异谱与异物同谱两组经典问题:同一树种在生长季和枯季的光谱差别很大,而水泥地和某些裸土在若干波段上又难以区分。应对思路通常两条:一是增加波段数,引入红边或热红外等敏感波段;二是加入时间维和空间纹理特征。但无论哪条路,前期预处理质量不过关,后面分类结果就无从谈起。

3. 遥感数据源选型:从传感器的四个分辨率说起

3.1 常用光学卫星的参数对比

做卫星遥感项目,数据源的选择基本决定了预处理流程的复杂度和分类能达到的精度上限。目前使用频率最高的中分辨率光学数据是三款:Landsat 8 OLI、Sentinel-2 MSI和MODIS。

Landsat 8 OLI空间分辨率30米,包含海岸带、蓝、绿、红、近红外和两个短波红外波段,全色波段15米,热红外100米,重访周期16天。Sentinel-2 MSI的空间分辨率分三档,可见光与近红外四个波段是10米,红边与短波红外是20米,气溶胶与卷云波段是60米,重访周期5天。MODIS有36个波段,空间分辨率250米到1000米,时间分辨率一天,是一条从可见光到热红外的全谱段覆盖。

数据源空间分辨率重访周期关键波段适合任务
Landsat 8 OLI30m / 15m / 100m16天可见光、近红外、短波红外、热红外长时序地表覆盖、城市扩张、地表温度
Sentinel-2 MSI10m / 20m / 60m5天可见光、红边、近红外、卷云植被精细分类、农业监测、云污染区
MODIS250m / 500m / 1000m1天36波段覆盖可见光到热红外全球尺度物候、火灾、海洋颜色

选型时主要看两件事:研究对象的空间尺度和变化周期。做城市绿地识别,10米分辨率能分清道路和树冠边界,Landsat的30米像元则可能把一行树和旁边建筑混在一起。做大范围物候分析,MODIS的每日重访不可替代,因为16天重访周期的数据在云雨多的季节,可能整年都凑不出几景合格影像。

3.2 四种分辨率的取舍逻辑

分辨率不是越高越好,空间、波谱、时间、辐射四个维度必须放在一起权衡。空间分辨率决定能分辨多小的目标,波谱分辨率决定能区分多接近的光谱类型,时间分辨率决定能捕捉多快的地表变化,辐射分辨率决定能区分多细微的亮度差异,Landsat 8量化到16位,DN值范围0到65535,比8位影像多了两个数量级的灰度层次,这对低反射率的暗目标非常关键。

项目实践中的一个通用做法:主流分类任务选Sentinel-2,长序列趋势分析选Landsat。原因很简单,Sentinel-2的10米分辨率和5天重访适合提取细节,而Landsat从1984年开始积累档案,近40年的时间跨度是做变化检测不可替代的底账。条件允许时两者混用,但要注意先做波段对齐和光谱归一化,否则不同传感器的系统差异会被误判成地表变化。

拿到数据后的第一步,我习惯先在QGIS里做快速质量检查。在样式面板把红、绿、蓝三个通道分别映射到近红外、红、绿波段生成假彩色合成,云层、条带噪声和几何错位都很直观。这个步骤放在预处理之前,可以避免在坏数据上浪费整个处理流程。

3.3 波段构造与应用方向的对应关系

波段数量不是越多越好,而是与目标越匹配越好。植被监测优先看红边和近红外,红边对叶绿素含量和冠层结构敏感,Sentinel-2专门设计了三个红边波段,正是为农业与林业调查服务。水体识别用绿光和近红外组合,清洁水体在近红外几乎零反射。地表温度反演则必须有热红外波段,但Landsat TIRS的100米分辨率在混合像元问题上比较突出,城区结果需要谨慎解释。

合成孔径雷达SAR是一个容易被忽视的选项。SAR工作在微波波段,不受云层和日照影响,在东南沿海和四川盆地这类多云地区,光学影像经常整景被云封死,这时SAR是唯一稳定的数据源。代价是SAR天然带斑点噪声,解译门槛比光学影像高不少,一般项目里用SAR做洪水淹没范围提取,比光学影像更可靠。

选数据源前先问三个问题:目标地物的最小尺寸是多少?变化周期是几天还是几年?研究区是不是常年多云?这几个问题的答案直接指向传感器选型,然后才轮到处理流程设计。

4. 遥感图像预处理:辐射定标、大气校正与几何校正

4.1 辐射定标:从DN值到表观反射率

传感器记录下来的原始数据是DN值,Digital Number,它只代表探测器接收到的辐射强度的量化等级,没有物理单位。辐射定标的作用,就是把这个无量纲的整数线性转换到辐亮度,再进一步转换成大气顶表观反射率,TOA。

标准定标分两步。第一步,用线性模型把DN值转成辐亮度:L = gain × DN + bias,其中gain和bias是传感器定标系数,一般从影像元数据文件如Landsat的MTL.txt里读取。第二步,把辐亮度转成表观反射率:ρ = π × L × d² / (ESUN × cosθ),d是日地距离修正系数,ESUN是波段平均太阳辐照度,θ是太阳天顶角。

import numpy as np import rasterio def dn_to_toa(band_path, gain, bias, esun, solar_zenith, d=1.0): """ 将DN值转换为大气顶表观反射率 band_path: 单波段影像路径 gain: 辐射定标增益,从MTL头文件读取 bias: 辐射定标偏移,从MTL头文件读取 esun: 波段日地平均太阳辐照度 solar_zenith: 太阳天顶角,单位为度 d: 日地距离修正系数,可在天文年历中查得 """ with rasterio.open(band_path) as src: dn = src.read(1).astype(np.float32) profile = src.profile radiance = dn * gain + bias cz = np.cos(np.deg2rad(solar_zenith)) toa = (np.pi * radiance * d ** 2) / (esun * cz) return toa, profile

代码说明:gain和bias的单位是W/(m²·sr·μm)/DN和W/(m²·sr·μm),在Landsat 8的头文件里对应RADIANCE_MULT_BAND_x和RADIANCE_ADD_BAND_x字段。esun是随波段变化的常量,每种传感器的每个波段各不相同,可以从事先整理的定标参数表里取,也可以直接从部分数据产品的元数据中读取。日地距离修正系数d在一年里的变化范围大约是0.97到1.03,在跨季度时序分析中不能省略。

需要注意,这里的线性定标参数适用于Landsat 8、Sentinel-2等较新的传感器。早期Landsat 5的TM数据使用查表式定标,参数结构不一样,处理时要先确认数据版本再选择公式。

4.2 大气校正:用DOS1暗像元法实现的完整代码

表观反射率里包含了大气散射和吸收的贡献。在晴朗天气下,瑞利散射在蓝光波段的贡献量可以达到信号的三成以上,不校正就计算植被指数,结果会整体显著偏低。这一步正是很多初学者容易跳过的环节。

暗像元法,DOS1,是操作最简单、结果也最稳定的主流大气校正方法。核心假设是:影像中总有某些像元的地表反射率接近零,比如清洁深水体或浓密山体阴影,它们在近红外波段的反射率理论上应为0。如果这些像元观测到的信号不为0,那么多出来的部分就是大气路径辐射。取下2%分位数的辐亮度作为路径辐射的估计值,从所有像元中减去,就完成了大气散射校正的主体。

import numpy as np import rasterio def dos1_correction(band_path, gain, bias, esun, solar_zenith, d=1.0): """ 使用DOS1暗像元法进行大气校正 返回地表反射率影像(0~1范围) """ with rasterio.open(band_path) as src: dn = src.read(1).astype(np.float32) profile = src.profile # 辐射定标:DN -> 辐亮度 radiance = dn * gain + bias # 取全影像第2百分位的辐亮度作为大气路径辐射估计 # 不用0%最小值,是为了避开传感器噪声和坏像元 percentile_value = np.percentile(radiance[radiance > 0], 2) radiance_path = max(percentile_value, 0.0) # 减去路径辐射,完成大气散射校正 radiance_corr = radiance - radiance_path # 辐亮度转地表反射率 cz = np.cos(np.deg2rad(solar_zenith)) reflectance = (np.pi * radiance_corr * d ** 2) / (esun * cz) reflectance = np.clip(reflectance, 0.0, 1.0) return reflectance, profile

代码说明:取第2百分位而不是最小值,是为避免单像元随机噪声干扰估计值。clip将反射率限制在0到1之间,超过1的像元通常是云或高反射目标,保留在影像里但后续分析时应掩膜剔除。

DOS1能有效校正大气散射,但它对水汽和臭氧吸收无能为力。如果项目对精度要求较高,比如地表温度反演或气溶胶定量反演,需要改用6S或MODTRAN这类辐射传输模型。常规的土地覆盖分类和植被指数计算,DOS1的精度已经足够,这也是它在工程里被用得最广的原因。

注意:如果影像里大部分区域是水体或浓密阴影,第2百分位取到的路径辐射值可能偏低,此时改用1%分位数或直接取最小值均可,结果差异通常在0.02以内。

4.3 几何校正与重采样参数的选择

几何校正解决的是“影像上的像元与真实地理坐标对不上”的问题。新型卫星大多随影像发布RPC有理多项式系数,直接用有理函数模型就能完成校正,操作量很小。早期数据或无人机影像则需要用地面控制点方法,在影像和参考底图之间找同名点做多项式拟合,控制点应均匀分布且避开变化剧烈的区域。

重采样插值方法的选择经常被忽略,但对后续分析影响很大。最近邻法保留原始像元值,不产生新灰度值,适合分类后处理,缺点是地物边缘呈锯齿状。双线性内插法边缘平滑,但会改变像元值的统计分布,不宜接在监督分类前面。三次卷积法精度最好,计算量也最大,常用于连续变量如反射率、温度的反演结果。

# GDAL 命令行几何校正与重采样示例 # -t_srs: 目标投影坐标系,这里使用WGS 84 / UTM 50N # -r: 重采样方法,连续变量用cubicspline,分类结果用near gdalwarp -t_srs EPSG:32650 -r cubicspline input.tif output_utm50.tif

命令说明:-t_srs指定目标投影,UTM 50N适合中国中部区域,研究区跨多个带时按实际位置选择。-r参数决定重采样算法,做反射率影像用cubicspline,做分类标签用near,选错会让类别边界出现伪像元。投影坐标系选经纬度还是UTM会影响面积量算精度,在纬度跨度大的区域,经纬度坐标直接量面积会带来显著的系统误差。

5. 遥感应用的信息提取:用反射率算NDVI的完整流程

5.1 用校正后的反射率计算NDVI

NDVI的公式是(近红外 - 红光)/(近红外 + 红光),植被在近红外反射强、红光吸收大,所以NDVI值高;水体、裸土和建筑趋向负值和零附近。这个指数之所以成为遥感应用中使用频率最高的波段运算之一,是因为比值形式能有效压制太阳高度角和地形坡度带来的增益差异。

但计算NDVI前必须完成前文的两步预处理。直接拿DN值套公式,虽然比值能在一定程度上抵消传感器增益差异,但无法消除大气条件不同的两期影像之间的系统偏移,最后变化检测出的可能是大气变化,而非地表变化。

import numpy as np import rasterio # 以Landsat 8为例,B4为红光波段,B5为近红外波段 # gain/bias/esun/solar_zenith需从MTL元数据中提取实际值 red_refl, profile = dos1_correction('LC08_B4.TIF', 0.00002, -0.1, 1983, 30) nir_refl, _ = dos1_correction('LC08_B5.TIF', 0.00002, -0.1, 1873, 30) # 计算NDVI,分母加1e-6避免除零 ndvi = (nir_refl - red_refl) / (nir_refl + red_refl + 1e-6) ndvi = np.clip(ndvi, -1.0, 1.0) with rasterio.open('ndvi_result.tif', 'w', **profile) as dst: dst.write(ndvi.astype(np.float32), 1) dst.update_tags(NDVI='Landsat8 DOS1 corrected')

代码说明:这里的gain、bias和esun数值仅为示例,实际使用必须从头文件的RADIANCE_MULT_BAND_4、RADIANCE_MULT_BAND_5等字段读取,用陌生常数会导致结果整体平移。输出用float32位深保留精度,不要转成8位整数,否则NDVI的细微信号全部丢失。

5.2 结果自查与变化检测应用

生成NDVI后先看直方图再下结论。健康的植被覆盖区会形成0.3到0.8之间的明显峰包,水体区域集中在-0.2以下,建筑和裸土围绕0附近波动。如果影像整体偏移导致水体NDVI大于0,多半是暗像元分位数选得偏高或辐射定标参数有误,此时回到DOS1检查路径辐射估计值,会比盲目调阈值更有效。

基于NDVI阈值可以做简单可靠的初步分类:大于0.3视为中等密度植被,0到0.3属于稀疏植被或裸土,小于0划为水体或阴影。这个阈值在不同传感器之间存在系统差异,跨Landsat和Sentinel-2比较时,务必各自校正后再统一阈值,否则传感器差异会被误读成植被退化。更稳妥的做法是对两期NDVI做差值,正差异代表植被改善,负差异代表植被退化,再结合土地利用类型判断具体成因。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询