
简介一份围绕高分一号(GF-1)影像的重庆部分区域水体监测实操方案面向遥感、GIS学习者及从事环境监测的从业者重点解决黑臭水体与水华反演问题。资源内含1个docx文档压缩包约13.95MB文档详细记录了从数据下载到ArcGIS出图的完整工作流在陆地观测卫星数据服务网站设置时间、地点、云覆盖率及GF-1传感器参数ENVI中按步骤完成辐射定标、FLAASH大气校正、RPC正射校正及Mask水域裁剪通过Band Math输入NDWI/MNDWI公式提取水体信息最后在ArcGIS中符号化制图并做面积统计。已有557人学习下载。这套资源不仅有每一步的操作说明与参数指导还附有gf1-wfv3光谱曲线文件选择、Data Ignore Value置零去除黑边等易错点说明适合需要完整复现水体遥感反演流程的初学者按文档步骤逐步实践。1. 高分一号黑臭水体反演不是有影像就能算出水体我第一次拿到覆盖西南某市的高分一号 WFV 影像时想法很简单打开 ENVI拉伸一下对比度找个水体指数算一算黑臭和水华不就浮出来了结果整幅图花得没法看云和建筑全被识别成水体正经河面反而裂成一截一截的。问题不在反演公式而在原始影像根本不能用——DN 值只是传感器记录的灰度既没物理意义也没做过几何纠正拿它直接算任何比值指数本质都是在跟噪声做运算。这个项目就是把「从数据下载到出图」的完整链路拆给你看陆地观测卫星数据服务页面选片、ENVI 里做辐射定标、FLAASH 大气校正、RPC 正射校正、用目标区域水系 shp 裁出水域再在 Band Math 里算 NDWI最后交给 ArcGIS 符号化出图。适合刚接触遥感反演、想跑通一个完整案例的从业者也适合做水环境监测但不想在预处理上反复折腾的工程师。读完你能说清楚每一步在解决什么问题、参数该往哪个方向调而不是照着截图瞎点。2. 数据下载与选片把检索条件当过滤器而不是填空题2.1 通用卫星载荷检索的字段怎么填数据下载这一步大部分教程一笔带过实际恰恰是翻车重灾区。登录陆地观测卫星数据服务页面后进入通用卫星载荷检索看到的是一排下拉框很多人习惯性填「全部」「任意」结果要么列表几千条没法看要么一张能用的都没有。我的习惯是把检索条件当过滤器用而不是填空题。卫星选高分一号载荷选 WFV。高分一号上有两类相机PMS 是 2 米全色加 8 米多光谱适合看细节WFV 是 16 米多光谱幅宽大一景差不多能盖住大半个市辖区做水体监测完全够用而且数据量小、预处理快。时间范围不要只给一天至少留出两周缓冲高分一号虽然是高重访星座但你要的是「研究区上空 云量低 成像质量好」三条件同时满足窗口期没那么宽裕。地理位置直接填研究区中心经纬度或者用平台自带的画框工具圈定范围。云量这一项要特别说。默认是 0 到 100 的区间新手一看「云量越少越好」直接填 0。这么做大概率检索结果直接为空或者只有寥寥几景、成像时间还对不上。云量是成像时真实记录的云覆盖比例不是按需定制的西南地区常年多云想等一景云量 0 的高分一号运气成分太大。我一般先按 10 到 20 搜下载前再配合平台提供的快视图确认目标水域附近没云、没有云影。选片阶段的目标是「研究区干净」不是「整景干净」云不在水面上就完全可用。2.2 云量、时相与影像替补选片翻车现场时相选择上黑臭水体反演最好挑夏季晴好天气的影像气温高、水体流动性差、藻类繁殖快黑臭和水华的信号最明显。春秋季也能做但水体温差小、分层弱反演结果容易边界模糊。另外注意避开刚下过大雨的几天强降雨会把河道冲一遍浊度异常升高这时候检出的「黑臭」可能只是泥沙。快视图的坑也不小。16 米分辨率的 WFV 在缩略图上看着挺干净下载回来边缘偶尔会出现拉花或者条带这种问题在阶段很难筛掉。所以我一般一次下载两到三景同一时间段的数据留替补尤其是跨越不同轨道号的景。多花的这点下载时间远比重跑一遍预处理值得。补一句入库后的影像文件名和产品说明要认真看记录成像时间、云量、中心经纬度后面 FLAASH 大气校正要填这些信息遗漏了还得回去翻元数据。2.3 下载产物与数据目录规划下载解压后一个时相的高分一号 L1 级产品通常会包含影像数据主体、XML 或 TXT 格式的元数据文件以及 RPC 参数文件。RPC 文件别删正射校正全靠它。我会在项目根目录下先把目录结构建好免得预处理到一半文件乱套mkdir -p 项目目录/00_参考数据 项目目录/01_原始L1 mkdir -p 项目目录/02_辐射定标 项目目录/03_大气校正 mkdir -p 项目目录/04_正射校正 项目目录/05_水域裁剪 mkdir -p 项目目录/06_反演结果 项目目录/07_出图工程 # 把下载的压缩包解压后统一改名命名规则卫星_传感器_成像日期 mv GF1_WFV1_20240815_L1A 项目目录/01_原始L1/GF1_WFV1_20240815这段脚本没什么技术含量但能帮你省大量时间。命名规则建议固定成「传感器_成像日期」这种一眼可读的格式FLAASH 和正射校正都要填根文件名名字越规整越不容易填错。水域 shp、高程 DEM、gf1-wfv3 光谱响应文件这类反复使用的外部数据统一放 00_参考数据后面所有环节都从这个目录取不会出现「咦这个文件放哪了」的情况。3. 预处理三件套辐射定标、FLAASH 大气校正、正射校正3.1 辐射定标先把 DN 值翻译成辐射亮度高分一号的 L1 级产品像元存的是 DN 值也就是传感器记录的数字量化值它跟地物实际反射的电磁波能量是线性关系但中间隔着传感器响应、增益、偏置一堆因素。不消除这些影响绿波段和近红外波段的 DN 值根本没有可比性NDWI 这种比值指数算出来自然全是噪音。在 ENVI 里操作不复杂工具栏搜 rad打开 Radiometric Calibration选刚打开的影像。关键参数如下参数推荐设置说明Calibration TypeRadiance输出辐射亮度单位是 W/(m²·µm·sr)Output InterleaveBIL 或 BSQ保持默认即可后续工具会自动识别Output Data TypeFloat定标后数值可能带小数用整型会截断精度Scale Factor1.0默认值不要随便填 0.1 或 10除非你清楚自己在干嘛新版 ENVI 的 Radiometric Calibration 工具会把高分一号的定标参数从元数据里自动读出来不需要手动输入。点 OK 后会生成一个定标结果文件名里带 rad 后缀这个文件就是下一步大气校正的输入。定标完可以顺手打开 Quick Stats 看一眼辐射亮度值的量级多在 0 到几十之间DEM 之类的高程数据进 FLAASH 前最好先把所有波段都确认一遍像元深度和坐标信息避免参数填错。3.2 FLAASH 大气校正的逐项参数与光谱响应函数大气校正是整个预处理里最像黑匣子的一步参数填错不会立刻报错而是等到反演阶段给你一份整体偏移的结果。工具栏搜 fla打开 FLAASH Atmospheric Correction输入辐射定标后的影像设置输出文件名和路径然后按顺序处理参数。FLAASH 主面板的输入参数每一格都有讲究参数推荐设置说明Input Radiance Image定标结果文件后缀通常是 rad确认是辐射亮度而不是 DNOutput Reflectance File自定义命名命名包含 atm 或 ref区分处理阶段Sensor TypeMultispectral多光谱传感器类型选错会加载错误模型Flight Date / Time元数据里的成像时间注意 UTC 与北京时间的差异填错影响大气模型Scene Center Location自动读取后人工复核务必确认中心点落在研究区附近Sensor Altitude保持默认GF1 的轨道高度 ENVI 一般能自动带出Ground Elevation高程数据中位数用 SRTM 平均值别填 0平原区至少也有几十米Atmospheric ModelSub-Arctic Summer / Mid-Latitude Summer按季节和纬度选夏季研究区选亚热带夏季模型Aerosol ModelRural城区/郊区通用没有特殊污染源就用它Water RetrievalNone没有 820nm 波段时关闭水汽反演Multispectral Settings 这一项不能跳过。点开后Filter Function File 一栏选择 gf1-wfv3 光谱曲线文件。这个文件是高分一号 WFV 传感器各波段的响应函数FLAASH 靠它把影像波段和大气传输模型对应起来选错了等于传感器模型全部错位。文件可以通过 Open 按钮进入 Spectral Library 选择我通常直接把工具包附带的 gf1-wfv3 文件拷到 00_参考数据目录避免每次去翻库。高级设置全部不动。点 Apply 开始运行几分钟到十几分钟不等取决于影像大小和机器性能。跑完输出的大气校正结果像元值表示地表反射率范围一般在 0 到 1 之间有的版本乘了 10000 缩放系数不影响后续比值计算。这一步做完影像才真正有物理意义之后的比值指数才有对比基础。3.3 正射校正与 Data Ignore Value把黑边从统计里踢出去大气校正后的影像仍然存在地形起伏和传感器姿态造成的几何形变河流这种细长地物尤其明显山区的河道可能整体平移几十米。需要做正射校正。工具栏搜 RPC打开 RPC Orthorectification Using Reference Image输入大气校正结果参考影像选同区域的 DEM 或者已校正的影像高程数据选 SRTM 30 米 DEM重采样方法用 Bilinear。正射校正输出的影像四周是黑的这是无效像元值为 0。如果直接拿去做反演黑边会在水体指数图里变成一圈极低值或极高值的异常区用 ArcGIS 出图时直方图拉伸还会把中间的正常水体压暗。处理办法是给影像设置 Data Ignore Value在图层列表右键输出结果选 Edit Metadata点 Add Metadata Items找到 Data Ignore Value把值设为 0。这一步很多人忽略但它直接决定后续所有统计结果的可信度。设置完 Data Ignore Value 后再去做水域裁剪、波段运算ENVI 会自动忽略值为 0 的像元。需要提醒的是Data Ignore Value 设置的是「元数据标记」它告诉软件这些像元无效但不会物理删除这些像元。因此后续 Band Math 计算时黑边像元仍然可能参与像素级的运算唯一的可靠做法是配合第 4 章的掩膜步骤把无效区彻底排除。4. 水域裁剪用掩膜把研究区从影像里抠出来4.1 Build Mask 前先统一坐标系拿到正射校正结果后下一步是只保留水域范围。这里涉及两个常见误区一是拿 shp 直接用不管坐标系二是在 Build Mask 里选错数据源导致掩膜和影像对不上。水系 shp 的坐标系经常是通用的地理坐标系或者省级地方坐标系而正射校正后的影像是投影坐标系通常是 UTM 或高斯投影。坐标系不统一掩膜虽然在视窗里看着叠上了实际像素级对位会偏几百米。我一般在 ArcGIS 里先查看 shp 的属性表或 .prj 文件确定原始坐标系然后用 Project 工具转换到跟影像一致的坐标系。如果 shp 没有 .prj 文件先用 Define Projection 指定可能的坐标系再投影转换。转换完成后在 ENVI 里把影像和 shp 叠加看一眼河流边界和影像上的水体轮廓贴合才算过关。确认坐标系一致后工具栏搜 mask打开 Build Mask。在 Mask Definition 选项里选择 Vector导入水域 shp 数据。这里有个细节Build Mask 输出的是一个掩膜文件里面只有 0 和 1 两种像元值作用是把研究区内外区分开输出路径和文件名自己定。操作时要注意导入 shp 后要检查一下掩膜文件覆盖的范围是否跟影像范围一致有时候 shp 范围大于影像会导致掩膜文件边缘被截断。4.2 Apply Mask 参数与结果检查掩膜文件生成后工具栏再搜 mask选 Apply Mask。输入文件选择正射校正结果掩膜文件选择刚生成的 mask输出文件名建议命名为 water.dat方便后面波段运算时识别。Apply Mask 对话框里默认会列出掩膜值如果你希望保留的水域区域在掩膜文件里是 1就确保 Mask Values 只勾选 1把 0 值区域剔除。输出后先不要急着做反演做两件事。第一用 Quick Stats 查看 water.dat 的像元统计确认水域内部有有效值四周被 0 值覆盖。第二把 water.dat 加载到视窗叠加水系 shp检查边缘是否贴合。如果发现水域边缘被削掉一圈或者掩膜外有残留说明掩膜值选反了回 Apply Mask 里改勾选值重跑一次。需要说明的是Apply Mask 只是把非目标区域置为无效值并没有删除像元。这也是为什么前面一定要设 Data Ignore Value前后配合才能让无效区在统计、制图、波段运算中被一致地忽略。如果偷懒只做 Apply Mask 不设 ignore valueArcGIS 里拉直方图时会看到大量的 0 值像元参与运算。4.3 掩膜黑匣子0 和 1 的意义别靠猜Build Mask 和 Apply Mask 是 ENVI 里最容易让人栽跟头的两个工具因为它们对「哪个值有效」的语义在不同版本里可能相反。有的版本掩膜文件里 1 表示有效区域0 表示无效区域有的版本在 Apply Mask 里默认 Mask Value 是 0你反倒要勾选 0 才能保留目标区域。不要看教程怎么写就照抄而是做完掩膜后自己验证。方法很简单加载 mask 文件用 Cursor Value 工具分别点一下研究区内和区外的像元看它的值到底是 1 还是 0再回到 Apply Mask 里勾选对应的值。这个确认动作三十秒能帮你避免掩膜反了之后整个反演结果报废。掩膜做完数据准备部分就结束了接下来进入真正的反演环节。5. 避坑高分一号反演最常见的五个翻车现场5.1 黑边漏进反演结果水体指数图外围一圈假异常现象NDWI 结果图上影像边缘出现一圈极高值或极低值正常水体被压缩成一小块。原因正射校正后的 0 值黑边没有设置 Data Ignore Value或者设置了但在 Build Mask 时没有勾选忽略 0 值的选项导致黑边像元参与了波段运算。0 值像元在 (b2-b4)/(b2b4) 这个公式里会得到 0/0 的未定义结果ENVI 通常把它当作 0 处理于是边缘出现大片「非水」假象。解决正射校正后立即通过 Edit Metadata 设置 Data Ignore Value 为 0。Build Mask 时在 Mask Definition 面板里勾选 Ignore Value 选项确保掩膜文件同样继承这个无效值标记。最后用 Quick Stats 验证边缘像元不参与统计。5.2 水体指数算出来全是负值或者整幅图整体偏移现象NDWI 的像元值几乎全在 -0.5 以下水体和陆地拉不开差距。原因最常见的是直接用 L1 级产品的 DN 值算指数没做辐射定标和大气校正。DN 值里绿波段和近红外波段的量级受传感器增益和大气散射影响两者不在同一基准上比值指数自然失真。其次是大气校正时大气模型选错比如夏季影像选了中纬度冬季模型导致近红外波段的反射率被系统性压低了。解决严格按照第 3 章的流程做完辐射定标和 FLAASH 大气校正确认大气模型与成像季节、纬度匹配。检查方式是在 ENVI 里对比定标前后同一像元的绿波段数值正常水体区域的大气校正后反射率应该在 0.03 到 0.08 之间远低于 DN 值的几百几千。5.3 FLAASH 报错或输出影像全黑/全白现象FLAASH 运行到一半报错或者跑完输出的反射率影像不是全黑就是全白直方图集中在一个值上。原因多数是 Flight Date / Time 填错或者 Scene Center Location 自动读取的值偏离研究区太远。时间填错会导致大气模型的水汽含量和气溶胶光学厚度计算完全偏离输出反射率不是负数就是溢出。解决回看下载影像的元数据文件把成像时间精确到小时分钟注意 UTC 和北京时间差 8 小时国产卫星元数据里一般写的是北京时间FLAASH 里要确认时区设置。Scene Center Location 如果自动读取的经纬度明显偏离手动改成影像中心点的实际坐标。5.4 Band Math 公式报错或者结果全为 0现象在 Band Math 里输入 (b2-b4)/(b2b4) 后提示变量未定义或者运行成功但结果全是 0。原因两个细节。第一不要在 ENVI 里把波段号写成 b1、b2 这样没错但如果你的影像波段顺序跟假设不同也会错第二整型数据直接做除法会截断小数0 到 255 的整型相减后结果是整型除法结果也是整型几乎都被截成 0。解决做波段运算前先用文件头信息确认波段顺序设置好 Data Ignore Value。公式里用 float() 显式转换数据类型# ENVI Band Math 表达式注意 float 强制转换避免整型截断 ndwi (float(b2) - float(b4)) / (float(b2) float(b4))如果公式还报错检查括号是不是全角字符从 PDF 或网页复制公式到 ENVI 时经常带入全角括号导致解析失败。5.5 掩膜后水域像元大面积缺失只剩零星几个点现象Apply Mask 之后 water.dat 里只有少数零散像元河道主体没了或者河岸线明显偏移。原因水系 shp 和影像坐标系不一致没有做投影转换就直接裁剪。另一种情况是 shp 范围比影像小很多或者矢量边界精度不够16 米分辨率的影像上河流这种几十米宽的线状地物本来就只有几列像元宽。解决裁剪前在 ArcGIS 中检查 shp 的坐标系统一转换成影像所在投影坐标系。如果河流太窄只有 1 到 2 个像元宽反演结果的意义不大建议换用更高分辨率影像或者对 WFV 影像做相邻像元合并用「水域占比」而非「单个像元值」来分析。6. 反演与 ArcGIS 出图把指数变成别人看得懂的图6.1 Band Math 里的 NDWI 公式水域裁剪完成后反演的核心就是把 NDWI 算出来。NDWI 全称是归一化差异水体指数公式是 (绿波段 - 近红外波段) / (绿波段 近红外波段)。水体在绿波段反射强、近红外波段吸收强所以正常水体的 NDWI 是正值陆地植被和建筑多为负值。高分一号 WFV 的波段顺序通常是 B1 蓝、B2 绿、B3 红、B4 近红外所以公式写作# ENVI Band Math 表达式 ndwi (float(b2) - float(b4)) / (float(b2) float(b4))在 Band Math 对话框里输入表达式后点 Map Variable to Input File选中水域裁剪结果 water.dat运行即可。结果文件里水体部分 NDWI 大于 0越接近 1 表示水体信号越强。需要提醒的是MNDWI 需要短波红外波段而 GF1 WFV 只有 4 个波段没有短波红外直接套模板写 MNDWI 公式会算不出来这是这个传感器最典型的边界。6.2 ArcGIS 符号化与黑臭水体初判反演结果要在 ArcGIS 里打开才像样。把 NDWI 结果和 water.dat 一起加载进 ArcMap 或 ArcGIS Pro先对 NDWI 做符号化选择拉伸类型为「分类」或「分位数」把数值范围映射到蓝到绿的色带。正常水体是蓝色黑臭水体因为浑浊度高、绿光反射弱NDWI 通常偏低会显示成深色或暗色调。水华区域因为蓝藻在近红外波段反射较强在假彩色合成影像上呈亮红色或橙色斑块。出图时我习惯做一张标准假彩色图叠加 NDWI 半透明图层假彩色合成用近红外、红、绿波段分别赋红、绿、蓝色通道水体呈暗色植被呈红色黑臭水体呈黑色或深褐色水华呈亮红色。把这张图加上经纬网、比例尺、图例导出成 300dpi 的 JPG 或 PDF反演成果就能拿出去汇报了。做完这个流程我给自己立了个规矩任何反演结果在出图之前必须把原始影像、掩膜文件、NDWI 结果的 Quick Stats 对一遍确认数值范围和黑边都干净再谈图。这个习惯后来帮我挡掉了好几次误判也希望帮到你。本文还有配套的精品资源点击获取