简介:这份资源面向遥感与GIS方向的初学者及环境监测从业者,围绕高分一号影像在重庆部分区域的水体监测实践,完整呈现从数据获取到成果出图的技术链路,重点解决黑臭水体与水华识别的反演问题,涉及ArcGIS与ENVI两款专业软件的操作。压缩包内为1个docx文档,约13.95MB,以图文流程记录的形式组织内容,便于按步骤对照学习。目前已有559人学习下载。文档依次覆盖陆地观测卫星数据服务网站的数据检索与下载、ENVI中的辐射定标、FLAASH大气校正、基于RPC模型的正射校正与黑背景值去除、水域掩膜裁剪,以及利用Band Math计算NDWI、MNDWI等水体指数完成反演,最后在ArcGIS中符号化分类并输出专题图。读者可据此掌握一套可复用的遥感水体监测流程,理解各处理环节的参数设置与作用,为水资源管理和环境保护相关分析提供参考。
1. 从一张高分一号影像到黑臭水体分布图:这套反演方案要解决什么
拿到一景高分一号 WFV 影像,很多人第一反应是直接算个 NDWI 就出图,结果水体边界糊成一片,黑臭水体和普通水体在图上根本分不开,水华区域还被误判成植被。问题不在指数公式,而在前面的辐射定标、大气校正、正射校正每一步都留了误差,最后全堆在反演结果上。这套方案要解决的就是这件事:用 ENVI 做预处理与波段运算、用 ArcGIS 做符号化与空间统计,把从数据下载到成图的完整链路固定下来,让黑臭水体和水华的识别结果可复现、可解释。适合正在做遥感课程设计、毕业设计,或者需要交付一份水环境监测方案的人直接照着走。
2. 数据获取与预处理链路:五步把原始影像变成可用反射率
高分一号 WFV 传感器幅宽大、重访周期短,做区域水体监测是合适的,但它给的是 DN 值,不是反射率。DN 值受传感器响应差异和太阳光照条件影响,直接拿去算指数,不同时相、不同景之间没有可比性。所以预处理不是走形式,是把影像拉回物理量的过程。这一章按数据下载、辐射定标、大气校正、正射校正、水域裁剪的顺序拆开讲,每一步说清楚参数怎么设、为什么这么设。
2.1 数据下载:检索条件怎么定才不返工
在陆地观测卫星数据服务平台上选通用卫星载荷检索,需要同时约束四个条件:时间范围、地理范围、云覆盖量、传感器类型。时间范围按监测目标定,做水华识别尽量选藻类活跃期,做黑臭水体排查选近期无强降雨的时段,降雨后水体浊度变化会干扰光谱特征。云覆盖量一般控制在 10% 以内,重庆多云雾,这个阈值可以放宽到 20%,但要在后续处理中把云区掩掉。传感器选 WFV,它有多光谱波段且幅宽适合区域尺度。
地理范围用矩形框选重庆目标区域,注意框选范围不要跨太多景,否则后续镶嵌会增加工作量。下载前先看检索结果的快视图,确认目标水体在影像内且没有被云遮挡。这一步的血泪经验是:不要只看云量百分比,云量低但云正好压在水体上的景一样不能用,快视图必须逐景看。
2.2 辐射定标:把 DN 值换成辐亮度
在 ENVI 中打开高分一号数据后,工具栏搜索 rad,打开 Radiometric Calibration 工具。选择刚打开的影像,参数设置里定标类型选 Radiance,输出为 BIL 或 BIP 格式,输出数据类型用 Float。定标系数来自影像自带的元数据文件,ENVI 会自动读取,不需要手动填。
# ENVI 中辐射定标的关键参数(在工具面板中设置,非命令行) # Calibration Type: Radiance # Output Interleave: BIL # Output Data Type: Float # Scale Factor: 由元数据自动读取,不手动改定标类型选 Radiance 而不是 Reflectance,是因为后续 FLAASH 大气校正需要输入辐亮度数据,如果这里直接定标成表观反射率,FLAASH 的输入就不对了。输出数据类型必须用 Float,整型会截断小数部分,弱信号水体的辐射差异会被抹掉。定标完成后检查输出影像的统计值,辐亮度值应该在合理范围内,如果出现大量负值或异常高值,说明定标系数读取有问题,回到元数据文件核对。
2.3 大气校正:FLAASH 参数与光谱曲线文件
工具栏搜索 fla,打开 FLAASH Atmospheric Correction。输入辐射定标后的影像,设置输出文件名和路径。关键参数包括:传感器类型选 UNKNOWN 或对应的高分一号多光谱设置,影像中心经纬度从元数据读取,大气模型按区域和季节选,气溶胶模型选 Rural 或 Urban,视目标区域周边情况定。
多光谱设置里点开 Multispectral Settings,Filter Function File 点 Open,选 Spectral Library,找到 gf1-wfv3 光谱曲线文件。这个文件定义了 WFV 各波段的光谱响应函数,不加载它,FLAASH 无法正确做波段间的辐射传输计算。高级设置一般不动,除非影像有明显的水汽异常。点 Apply 后等待输出,大气校正结果应该是反射率数据,值域大致在 0 到 1 之间。
提示:FLAASH 对输入影像的波段数和数据类型有要求,如果报错提示波段不匹配,先检查辐射定标输出是否保留了全部多光谱波段,不要只输出单波段。
2.4 正射校正与黑边去除:RPC 模型加参考影像
工具栏搜索 RPC,打开 RPC Orthorectification Using Reference Image。输入大气校正结果,参考影像选同区域的正射影像或 DEM 配套影像,高程数据用 SRTM 或 ASTER 的 DEM。参数里输出像元大小按参考影像或原始分辨率设,重采样方法选 Bilinear 或 Cubic。
输出结果双击图层,点 Edit Metadata,点 Add Metadata items,找到 Data Ignore Value,设为 0。这一步是去掉正射校正后影像边缘的黑色背景值,不设的话后续裁剪和波段运算会把黑边当成有效像元参与计算,水体指数在边缘会出现异常值。设完后再看影像,黑边应该变成透明或统一背景。
2.5 水域裁剪:Build Mask 与 Apply Mask 配合
工具栏搜索 mask,打开 Build Mask。输入正射校正结果,载入重庆水域 shp 数据,设置输出掩膜文件路径和文件名。Build Mask 的作用是把 shp 范围转成栅格掩膜,范围内为 1,范围外为 0。然后搜索 mask 打开 Apply Mask,输入文件选正射校正结果,掩膜文件选刚生成的 mask,输出参数里选择保留掩膜内像元。
裁剪后的结果只保留水域及周边缓冲范围,数据量大幅下降,后续波段运算速度明显提升。这里容易翻车的地方是 shp 的坐标系和影像不一致,Build Mask 不报错但掩膜位置偏移,出图时水体对不上。处理前先用 ArcGIS 或 ENVI 检查两者坐标系,不一致就先投影转换。
3. 反演模型与波段运算:黑臭水体和水华怎么从反射率里分离
预处理做完,影像已经是地表反射率,接下来是把水体信息从背景里提出来,再进一步区分正常水体、黑臭水体和水华。这一章讲指数选择、波段运算实现、阈值确定和分类出图,核心是把“算指数”变成“可解释的分类规则”。
3.1 指数选择:NDWI 与 MNDWI 的适用边界
NDWI 用绿波段和近红外波段,公式是 (Green - NIR) / (Green + NIR),对水体敏感,但在建成区背景下水体边界容易和建筑阴影混淆。MNDWI 把近红外换成短波红外,公式是 (Green - SWIR) / (Green + SWIR),抑制建筑阴影的效果更好。高分一号 WFV 有绿波段和近红外波段,短波红外要看具体波段配置,如果 WFV 没有短波红外,MNDWI 就用不了,只能回到 NDWI 加后处理。
黑臭水体的识别思路不同,它不是靠单一指数,而是看反射率光谱形态。黑臭水体通常在水体指数高的基础上,可见光波段反射率整体偏低且曲线平缓,部分案例中红波段相对绿波段有抬升。实际操作中一般先用水体指数提取水体掩膜,再在水体范围内做光谱特征统计,用多波段组合或分类器区分黑臭与正常水体。水华则看近红外波段反射率异常升高,因为藻类在近红外有强反射,水体指数在水华区会明显下降,这个反差可以作为识别依据。
3.2 波段运算实现:Band Math 公式与变量映射
工具栏搜索 band,打开 Band Math。输入公式,以 NDWI 为例:
(float(b2) - float(b3)) / (float(b2) + float(b3))公式里 b2 和 b3 是变量占位符,点 Map Variable to Input File,把 b2 映射到绿波段,b3 映射到近红外波段,输入文件选水域裁剪结果 water.dat。float() 是为了避免整型除法截断,不加的话结果全是 0 或 1,指数图会变成黑白块。
; 黑臭水体辅助判断的多波段组合示例(在水体掩膜内计算) (float(b1) + float(b2) + float(b3)) / 3.0这个公式算可见光三波段均值,均值偏低且 NDWI 高的区域作为黑臭水体候选。水华识别可以用近红外与红波段的比值:
float(b4) / float(b3)b4 映射近红外,b3 映射红波段,比值异常高的区域标记为水华候选。每个公式输出后都要检查值域,NDWI 正常范围在 -1 到 1 之间,如果出现大量超出范围的值,检查变量映射是否错位。
3.3 阈值确定与分类规则
阈值不能拍脑袋定。通常的做法是先在水体掩膜内采样,正常水体、黑臭水体、水华各选若干典型像元,统计各指数的分布,取分位数作为初始阈值,再结合目视解译调整。NDWI 水体阈值一般在 0 附近,黑臭水体的可见光均值阈值要看区域,重庆部分河段经验值在 0.08 到 0.15 之间,水华的近红外红比阈值通常在 1.5 以上。
分类规则可以写成决策树形式:NDWI 大于水体阈值且可见光均值低于黑臭阈值,判为黑臭水体;NDWI 大于水体阈值且近红外红比高于水华阈值,判为水华;其余水体判为正常水体。规则写进 ENVI 的决策树分类器或 ArcGIS 的栅格计算器都可以,关键是阈值来源要记录,答辩时能说清楚每个数怎么来的。
3.4 ArcGIS 符号化与空间统计出图
反演结果导入 ArcGIS 后,先做符号化。黑臭水体用深色系,水华用绿色系,正常水体用蓝色系,分类边界清晰。图层属性里设置透明度,底图用影像或矢量边界叠加,出图前检查图例、比例尺、指北针是否齐全。
空间统计用 ArcGIS 的栅格统计工具,按行政区或河段分区统计各类水体面积,输出表格。面积计算注意像元大小单位,高分一号 WFV 分辨率是米级,统计结果换算成平方公里。趋势分析如果有多个时相,可以做面积变化对比,单时相方案里至少把各类水体占比算出来,作为监测结论的量化支撑。
4. 避坑与常见问题:预处理和反演里最容易翻车的五处
这套流程步骤多,每一步的参数都有连带影响,下面五处是实际项目里出现频率最高的问题,按现象、原因、解决拆开写。
4.1 大气校正后反射率出现大面积负值
现象:FLAASH 输出结果里水体区域反射率为负,指数计算全乱。原因:辐射定标输出数据类型不是 Float,或者定标系数读取错误,也可能是气溶胶模型选得和区域不匹配。解决:回查辐射定标输出类型,确认元数据定标系数被正确读取;气溶胶模型换成 Rural 重跑;如果仍有少量负值,在波段运算里加最大值约束,但不建议大面积截断。
4.2 正射校正后影像与 shp 错位
现象:水域裁剪结果里水体位置偏移,掩膜切到了岸上。原因:影像 RPC 参数缺失或参考影像坐标系与 shp 不一致。解决:检查影像元数据里是否有 RPC 文件,没有的话换用有 RPC 的数据;统一坐标系后再做 Build Mask,不要指望软件自动对齐。
4.3 黑边没去掉导致指数异常
现象:影像边缘出现条带状高值或低值,NDWI 图边缘一圈噪声。原因:正射校正后的 Data Ignore Value 没设或设错。解决:按 2.4 节步骤把 Data Ignore Value 设为 0,设完重新做波段运算,不要用旧结果。
4.4 阈值在不同景之间不通用
现象:同一套阈值在 A 景效果好,换 B 景黑臭水体全漏。原因:不同时相大气条件、太阳高度角不同,反射率绝对值有差异。解决:每景单独采样定阈值,或者先做相对辐射归一化再统一阈值;答辩时说明阈值是区域经验值,不是普适常数。
4.5 水华和植被混淆
现象:近红外高反射区域被同时判为水华和植被。原因:单靠近红外红比无法区分藻类和岸上植被。解决:先用水体掩膜限制计算范围,只在水体内判断水华;水体边界外的植被不参与分类;必要时加入绿波段特征辅助区分。
5. 验收与答辩:怎么证明这套反演结果可信
方案做完,图和表都有了,验收环节要回答一个问题:凭什么说这张图上的黑臭水体和水华是准的。答辩时评委不会只看图好不好看,会追问阈值来源、精度验证和流程可复现性。这一章给一套可操作的验收方法。
第一步,做目视比对。把反演分类结果叠加到原始影像或高分辨率底图上,随机选若干区域检查分类边界是否贴合实际水体边界。黑臭水体和水华区域要单独抽查,不能只看整体图。比对时记录抽查点数量和命中情况,形成一张简单的核对表。
| 验证项 | 方法 | 合格标准 |
|---|---|---|
| 水体边界 | 与原始影像目视比对 | 主要水体边界偏移不超过 2 个像元 |
| 黑臭水体 | 抽样点位核对 | 抽查 20 个点,命中率不低于 80% |
| 水华区域 | 与近红外高值区比对 | 主要水华斑块不漏判 |
| 流程复现 | 按文档重跑一遍 | 关键步骤参数可查、结果一致 |
第二步,做流程复现检查。把预处理到反演的每一步参数记录成文档,包括定标类型、FLAASH 大气模型和气溶胶模型、正射参考影像、掩膜文件、波段运算公式和阈值。找同学按文档独立跑一遍,如果结果差异明显,说明某一步参数没写清楚。我一般会要求参数记录细到“点了哪个按钮、选了哪个文件”,因为翻车往往出在默认参数被忽略。
第三步,准备答辩话术。评委常问的三个问题:为什么选这个指数、阈值怎么定的、精度怎么保证。回答时不要背公式,讲清楚数据条件限制,比如 WFV 没有短波红外所以用 NDWI 加光谱辅助,阈值来自水体掩膜内采样统计加目视调整,精度用抽样核对表支撑。把局限也说出来,比如单时相无法做趋势分析、云覆盖区域未参与统计,反而显得可信。
从那以后我每次带这类遥感反演方案,都强制要求先写参数记录表再动手处理,处理完立刻做抽样核对,不等到出图才发现问题。希望帮到你。
本文还有配套的精品资源,点击获取