☰
高分一号水体反演全流程:从影像预处理到黑臭水华出图
2026/10/27 5:44:02 网站建设 项目流程

简介:这份资源面向遥感与GIS方向的初学者及环境监测从业者,围绕高分一号影像在重庆部分区域的水体监测展开,重点解决黑臭水体与水华识别的完整技术链路问题,涉及ArcGIS与ENVI两款专业软件协同作业,适合作为遥感影像处理与水体反演的实操参考。资源包共1个docx文档,约13.95MB,以图文流程记录的形式呈现,便于按步骤对照学习。目前已有559人学习下载,具备一定的参考热度。文档完整覆盖从陆地观测卫星数据服务网站检索下载高分一号数据,到ENVI中辐射定标、FLAASH大气校正、RPC正射校正与水域掩膜裁剪,再到波段计算器构建NDWI、MNDWI水体指数反演,最后在ArcGIS中符号化区分正常水体、黑臭水体与水华区并出图的全过程,读者可据此掌握遥感水体监测的规范流程与关键参数设置思路。

1. 高分一号水体反演:从一景原始影像到黑臭与水华分布图

手里有一景高分一号 WFV 影像,想判断某个水库或河段有没有黑臭水体、水华铺了多大面积,最省事的路径不是自己写辐射传输模型,而是把 ENVI 的辐射定标、FLAASH 大气校正、RPC 正射校正串成一条固定流水线,再用 Band Math 算指数、ArcGIS 出图。这套流程听起来步骤多,但真正卡人的地方就那么几个:光谱响应文件选错、忽略值没设、掩膜和影像对不上。这篇笔记按“数据下载—预处理—反演出图”的顺序,把每个环节的参数、公式和翻车点拆开讲,适合刚接触遥感水环境反演、手里有 ENVI 和 ArcGIS 但不确定参数怎么填的从业者照着复现。

2. 数据获取与预处理流水线:四个工具串起来才叫可用影像

高分一号 WFV 传感器幅宽大、重访周期短,做区域水体监测比单景高分成像更实用,代价是原始 DN 值不能直接拿来算指数。整条预处理链的目标只有一个:把影像变成具有物理意义的地表反射率,并且空间位置对得上矢量边界。下面按实际操作顺序拆。

2.1 检索与下载:把云量和传感器卡死

在陆地观测卫星数据服务平台上,检索入口选“通用卫星载荷检索”,不要直接按任务名翻目录。时间范围按监测目标定,水华有明显季节性,黑臭水体则要看枯水期和丰水期的对比,一般至少取两期。地点用行政区或矢量范围圈定,云覆盖量建议先卡 10% 以内,山区实在没有干净影像再放宽到 20%,但水体反演对薄云极其敏感,云边缘的反射率会被抬高一截,算出来的指数会假高。

传感器一定要勾选 WFV,高分一号还有 PMS 相机,幅宽小、波段设置不同,混着下会在后面 FLAASH 的光谱响应文件上直接对不上。下载下来的数据一般是压缩包,解压后保留全分辨率多光谱和对应的 RPC 文件,RPC 文件丢了正射校正就没法做,这是很多人第一次翻车的地方。

2.2 辐射定标:DN 值到辐亮度

ENVI 里直接搜rad,打开 Radiometric Calibration。输入选刚打开的高分一号多光谱数据,输出格式建议选 BIL,定标类型用 Radiance,不要选 Reflectance——高分一号的定标系数在元数据里,ENVI 能自动读,但反射率定标需要额外的大气参数,这一步交给后面的 FLAASH 更稳。

# ENVI 中对应操作(Classic 界面) # Toolbox: Radiometric Correction > Radiometric Calibration # Input File: GF1_WFV_xxx.tif # Calibration Type: Radiance # Output Interleave: BIL # Output Data Type: Float

参数里最容易被忽略的是输出数据类型,默认可能是 Byte,定标后的辐亮度值范围远超 0–255,用 Byte 会直接截断,后面大气校正出来的反射率一片死黑。输出文件名带上_rad后缀,方便后面按顺序找文件。定标完成后随手点开一个波段的统计,辐亮度均值应该在个位数到几十之间,如果还是 0–255 的量级,说明定标没生效。

2.3 FLAASH 大气校正:光谱响应文件是命门

搜fla打开 FLAASH Atmospheric Correction。输入选辐射定标结果,输出路径不要带中文和空格,这是 ENVI 的老毛病。传感器类型选 GF1,高度一般填 645 km 左右,像元大小按 WFV 的 16 m 填。大气模型按纬度和季节选,中纬度夏季或中纬度冬季,气溶胶模型城市区域选 Urban,郊区选 Rural。

关键一步在 Multispectral Settings 里的 Filter Function File。点 Open 进 Spectral Library,选gf1-wfv3光谱曲线文件,这个文件描述的是 WFV 第三相机波段响应函数,选错相机编号会导致波段中心波长偏移,水华识别用的近红外波段反射率会系统性偏低。设置完点 Apply 开始跑,一景 WFV 大概几分钟到十几分钟,取决于机器内存。

跑完打开结果,看水体区域的反射率曲线,干净水体在近红外应该接近 0,如果整景偏亮或者出现负值,多半是气溶胶模型选错或者辐射定标类型不对。这一步没有后悔药,只能回退重跑。

2.4 RPC 正射校正与去黑边

搜RPC,打开 RPC Orthorectification Using Reference Image。输入大气校正结果,参考影像用同区域的正射影像或 DEM 配套影像,高程数据用 SRTM 或 ASTER GDEM 都行,重采样选 Cubic Convolution,输出像元大小保持 16 m。

正射完的影像四周会有黑色填充值,直接拿去算指数会把背景当成极低反射率地物。双击图层点 Edit Metadata,Add Metadata Items 里找Data Ignore Value,设为 0。这一步不做,后面掩膜裁剪时黑边会被算进统计,面积直接虚高。

2.5 水域掩膜:Build Mask 与 Apply Mask 配对

搜mask,先 Build Mask,输入正射校正结果,载入重庆水域 shp,输出 mask 文件。再搜mask打开 Apply Mask,输入影像选正射结果,掩膜文件选刚生成的 mask,输出参数里勾选“Mask Value”为 0,把非水域像元置零。

这里有个细节:shp 的坐标系必须和影像一致,如果不一致,Build Mask 不会报错,但生成的掩膜会整体偏移,裁出来的水域要么缺一块要么多一块。操作前先在 ArcGIS 里把 shp 投影到和影像相同的 UTM 带,再导回 ENVI。

3. 指数反演与出图:Band Math 公式怎么写才不白算

预处理做完,影像已经是地表反射率,接下来用波段运算提取水体指数,再在 ArcGIS 里分级出图。这一章的重点不是公式本身,而是波段顺序、忽略值和分级阈值这三件事。

3.1 NDWI 与 MNDWI 的波段对应

高分一号 WFV 的波段顺序是蓝、绿、红、近红外。NDWI 用绿和近红外,公式为(float(b2)-float(b4))/(float(b2)+float(b4)),MNDWI 用绿和短波红外,但 WFV 没有短波红外波段,所以这个项目里实际能用的是 NDWI 以及针对水华的近红外/红光比值。

在 Band Math 里输入公式时,变量名要和后面 Map Variable to Input File 里绑定的波段一一对应。很多人公式写对了但变量绑错,比如把 b2 绑到红波段,算出来的指数完全没意义。

# ENVI Band Math 公式(NDWI) (float(b2) - float(b4)) / (float(b2) + float(b4)) # 水华辅助指数:近红外与红光比值 float(b4) / float(b3)

公式里加float()是为了避免整型除法,ENVI 默认按输入数据类型运算,反射率是浮点一般没事,但保险起见统一转浮点。绑定文件选水域裁剪后的water.dat,输出文件名带_ndwi。

3.2 阈值分级与黑臭、水华判别

NDWI 大于 0 通常判为水体,但黑臭水体的 NDWI 往往也在 0 以上,单靠这个指数分不出来。实际操作里会叠加两个辅助判断:黑臭水体在绿波段反射率偏高、在红光波段偏低,整体光谱曲线比干净水体“平”;水华则在近红外出现明显抬升,NDWI 反而可能下降。

在 ArcGIS 里对 NDWI 结果做重分类,先按 0 切出水体,再对水体内部按近红外反射率分三级:低值区判为干净水体,中间值结合绿光偏高判为疑似黑臭,近红外高值判为水华。分级阈值没有全国统一标准,同一个区域最好用同期实测点位校准一次,没有实测数据就参考历史影像的相对高低。

判别目标主要依据辅助依据常见误判
干净水体NDWI > 0,近红外接近 0绿光反射率低浅滩、悬浮泥沙
黑臭水体NDWI > 0,绿光偏高红光偏低,光谱平坦阴影区、建筑倒影
水华近红外明显抬升红光/近红外比值异常云边缘、太阳耀斑

3.3 ArcGIS 符号化与面积统计

把分级结果导入 ArcGIS,用栅格转面后按类别符号化,黑臭用深褐、水华用黄绿、干净水体用蓝色,出图时叠加行政边界和水系底图。面积统计直接在属性表里按类别汇总,注意单位换算,16 m 像元的面积是 256 平方米,别直接拿像元个数当平方米用。

出图前检查一遍投影,ENVI 输出的结果如果没带投影信息,ArcGIS 会按经纬度显示,面积统计会差出几个数量级。正射校正那一步如果参考影像带投影,输出一般会继承,但最好在 ENVI 里手动确认一次。

4. 避坑排查:五个让结果报废的细节

4.1 大气校正后反射率全为负或全为 0

现象:FLAASH 输出打开后水体区域一片黑,统计值全是负的或者 0。原因通常是辐射定标输出数据类型选了 Byte,辐亮度被截断,FLAASH 拿到的输入本身就不对。解决:回退到辐射定标,输出类型改 Float,重新跑一遍定标和大气校正。另一个可能是气溶胶模型选了不匹配的类型,城市区域选 Rural 会让整景反射率偏低,换回 Urban 重跑。

4.2 正射校正后影像和矢量错位

现象:水域掩膜裁出来的范围和实际水系对不上,整体平移几百米。原因:参考影像和输入影像的坐标系不一致,或者 RPC 文件缺失导致 ENVI 用了默认几何模型。解决:先在 ArcGIS 里统一投影,确认 RPC 文件和数据在同一目录且文件名匹配,重跑 RPC 校正后用少量地面控制点抽查。

4.3 Band Math 结果全为 0 或 NaN

现象:NDWI 输出整景 0,或者大片 NaN。原因:变量绑定错误,公式里的 b2、b4 绑到了不存在的波段,或者输入文件是掩膜后的 water.dat 但波段数不对。解决:打开 Map Variable to Input File 逐项核对波段序号,掩膜后的文件波段数应该和原多光谱一致,如果只剩一个波段说明掩膜时选错了输出方式。

4.4 黑边被算进水体面积

现象:统计出来的水体面积比实际大一圈,边缘呈规则矩形。原因:正射校正后的 Data Ignore Value 没设成 0,黑边被当成低反射率地物参与了指数计算。解决:回到正射结果,Edit Metadata 里把 Data Ignore Value 设为 0,重新生成掩膜和指数。

4.5 水华区域被云边缘污染

现象:水华分级图里出现大片沿云边缘分布的异常高值。原因:检索时云量阈值放得太宽,薄云边缘的近红外反射率被抬高,和真实水华信号混在一起。解决:下载时把云量卡到 10% 以内,已经下载的影像用云掩膜先剔除云边缘像元,再参与分级。

5. 用两期影像做变化检测:把单景反演变成可验证的结论

单景反演只能给一个时间切片,说服力有限。我一般会取同一区域枯水期和丰水期各一景,走完全相同的预处理参数,然后对两期 NDWI 做差值,看黑臭和水华的扩张或收缩。差值前必须保证两期影像的辐射定标和大气校正参数一致,否则差异里混进了大气条件的变化,结论就不可信。

具体做法是在 ENVI 里对两期 NDWI 结果做 Band Math 相减,公式为float(b1) - float(b2),输出变化图后在 ArcGIS 里按正负分级。变化幅度超过 0.2 的区域重点核查,结合两期的原始假彩色影像人工确认是真实变化还是云影、水位波动造成的假变化。

检查项合格标准不合格时的动作
两期辐射定标类型均为 Radiance统一重跑定标
两期大气模型同季节同模型按季节分别选模型并记录
两期正射参考同一参考影像换用同一参考重跑
变化阈值差值绝对值 > 0.2低于阈值的归为无变化

这套流程跑顺之后,一景影像从下载到出图大概半天,两期对比一天能出结论。从那以后我每次做水体反演,都会先把辐射定标输出类型和 Data Ignore Value 这两个参数单独检查一遍再往下走,这两个地方翻车最隐蔽,等出图才发现就得整条链重来。希望帮到你。

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

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

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

立即咨询