首页 / 资讯中心 / 文章详情

流域遥感数据处理全流程:从影像到可用数据产品的工程实践

流域遥感数据处理全流程:从影像到可用数据产品的工程实践 ★ FEATURED ARTICLE
遥感数据处理这件事外行看着像是把卫星图打开、调个色、导出来这么简单真上手做过一个流域尺度的项目才知道从原始影像到能拿去做分析的结果中间隔着一条相当宽的沟。伊洛河这个项目我前前后后折腾了大半年踩的坑比写过的代码行数还多今天把整套流程和背后的取舍逻辑摊开讲一遍给准备做类似流域遥感的朋友省点时间。伊洛河是黄河中游的一条重要支流干流穿过丘陵与河谷交错的地带两岸土地利用类型复杂既有连片的农用地也有城镇建设用地和河滩湿地。这种地形起伏地类破碎水系发达的组合对遥感数据处理提出了相当具体的要求影像要能覆盖完整流域、云量要压得住、地形校正要做得细、水体提取要分得清主河道和支流沟渠。我做的这套流程核心目标就是产出一套时间序列一致、空间配准准确、可直接用于土地利用变化和水体动态分析的基础数据集。适合谁看做过基础遥感操作、想往流域尺度项目推进的人以及需要把零散影像整理成规范数据产品的从业者。1. 先想清楚数据产品长什么样再动手下载很多人拿到项目第一反应是打开数据平台开始下影像这个顺序其实是反的。流域遥感项目最容易返工的地方不是算法写错了而是数据产品定义没想清楚做到一半发现分辨率不统一、投影不一致、时间对不上前面全白干。1.1 产品定义决定了后面每一个技术选择我在动手前先写了一份一页纸的数据产品说明内容很朴素空间范围是伊洛河流域完整汇水区不是行政边界这点很关键后面会讲、目标空间分辨率、时间覆盖范围、输出投影、输出格式、每个像元的波段构成。这份说明看起来像走流程实际上它直接约束了后面所有决策。举个具体的例子。如果产品定义里写的是30米分辨率、年际时间序列那影像源基本就锁定在中等分辨率的陆地观测卫星产品上单景幅宽要足够大以减少拼接次数重访周期要能保证每年有可用的无云影像。反过来如果目标是重点河段5米级精细监测那就得考虑更高分辨率的商业或专项数据成本和处理量完全不是一个量级。伊洛河项目我最终定的是30米级年际序列为主、重点河段补充更高分辨率影像做验证理由是流域尺度的变化分析用30米足够而河段精细验证只需要少量高分辨率数据这样成本和精度能兼顾。提示产品说明里一定要写清楚这个数据集将来要回答什么问题。是看土地利用转移矩阵还是看水体面积年际波动还是看植被覆盖度趋势问题不同对辐射一致性、时间连续性的要求差别很大。1.2 流域边界为什么不能用行政边界凑合这是我在项目早期差点犯的错。最开始图省事直接拿行政区划边界去裁影像结果做水文分析的时候发现上游来水区域被切掉了一块水量平衡完全对不上。流域是一个水文单元它的边界是分水岭跟行政边界没有必然关系。正确的做法是基于数字高程模型做汇水区提取。流程大致是填洼、计算流向、计算流量累积、设定出口点、提取上游汇水区、矢量化边界。这套流程在常见的地理信息软件里都有现成工具但有两个细节特别容易出问题。一是填洼阈值设得太大会把真实的洼地比如河滩湿地也填平导致边界偏移二是出口点选在干流上的位置要合理选得太靠下游会把不属于目标河段的范围也圈进来。我最后是把提取出来的流域边界和已知的河网水系做了叠加核对确认主河道走向和主要支流汇入点都对得上才定下来用这个边界。1.3 时间窗口的选择藏着不少门道年际序列听起来简单每年选一景就行但实际选的时候要考虑物候。伊洛河流域植被有明显的生长季和非生长季差异如果每年的影像有的取自春季有的取自秋季地表反射率差异会被误判成真实变化。我的处理原则是尽量把时间窗口锁定在同一物候区间内比如统一取每年植被生长旺盛期前后的影像实在凑不齐的年份单独标注在后续分析时区别对待。另外水文分析对时间的要求又不一样。看水体面积波动枯水期和丰水期的影像都有价值但必须明确标注每景影像对应的水文时段不能混在一起算平均值。这个标注工作看起来琐碎但它是后面所有时间序列分析可信度的基础。2. 影像预处理每一步都在为后面的分析埋雷或排雷预处理是整个流程里最枯燥、最耗时、也最不能偷懒的部分。我见过不少人直接拿看起来还行的影像往下做结果分类精度上不去回头排查发现是大气校正没做或者几何配准偏了几个像元。这一章把关键步骤和背后的原理讲透。2.1 辐射定标与大气校正为什么不能跳过原始影像记录的是传感器接收到的辐射亮度值这个值受大气散射、气溶胶、太阳高度角等一堆因素影响。同一块地在不同日期成像原始值可能差很多但这个差异大部分不是地表真实变化而是大气条件不同造成的。如果不做大气校正后面做时间序列分析基本等于在噪声里找信号。辐射定标是把数字量化值转成辐射亮度这一步用官方提供的定标系数就能完成属于确定性操作。大气校正则复杂得多需要输入大气参数或者用影像自身信息反演。我实际用的是基于暗像元假设的方法原理是假设影像里存在反射率很低的暗地物比如深水体、浓密植被阴影用它们的观测值反推大气程辐射再从整景里减掉。这个方法在伊洛河流域这种有大量水体和山体阴影的场景里效果不错但在大面积裸露农田的区域暗像元不好找校正结果会有偏差。注意大气校正后一定要做一次目视检查重点看水体是不是呈现合理的低反射率、植被在近红外波段是不是明显高于红光波段。如果校正后水体反而比植被还亮那基本可以判定参数出了问题。2.2 几何精校正配准误差是时间序列分析的头号杀手多时相分析要求不同日期的影像在空间上严格对齐否则同一个像元在不同年份对应的可能是不同地物变化检测结果全是假的。原始影像自带的地理定位精度通常不够必须做几何精校正。我的做法是选一景质量最好、云量最少的影像作为基准其余影像往基准上配准。控制点选取有讲究优先选道路交叉口、桥梁、水库大坝这类位置稳定、特征明显的地物控制点要均匀分布在全图不能全挤在一个角落。每景影像我一般选30到50个控制点配准后检查残差均方根误差控制在半个像元以内才认为合格。超过这个值就加控制点或者剔除明显偏的点重新配准。这里有个经验山区的配准难度明显高于平原。地形起伏会造成侧视成像的几何变形同一座山从不同角度拍位置会有系统性偏移。如果项目区山地占比大建议引入地形校正模型或者至少在配准时对山区单独加密控制点。2.3 云掩膜与阴影处理宁可少要数据不要脏数据伊洛河流域夏季多云完全无云的影像不好凑。云和云影对分析的影响是毁灭性的云覆盖区域反射率极高云影区域反射率极低两者都会被误判成极端地类。我的原则是宁可某一年数据缺失也不拿云污染严重的影像凑数。云检测我用的是多波段阈值组合的方法可见光波段反射率高、亮温低的像元判为云云影则结合云的位置和太阳几何关系推算。这个方法对厚云效果好对薄云和碎云容易漏检。实际处理时我会把检测结果叠加到影像上人工过一遍把明显漏掉的补上。处理完的影像用掩膜把云和云影区域标出来后续分析时这些像元不参与计算。2.4 地形校正山区项目的必修课伊洛河流域有相当比例的面积是丘陵山地地形对反射率的影响不能忽略。同一个植被类型阳坡和阴坡的观测反射率能差出一大截如果不做地形校正分类的时候阳坡和阴坡会被分成两个不同的类。地形校正的核心思路是利用数字高程模型计算每个像元的坡度和坡向再结合太阳入射角度把观测反射率归一化到水平地表条件下。常用的方法有基于朗伯体假设的余弦校正也有考虑非朗伯体特性的改进模型。我实际用的是余弦校正的改进版本在阴坡区域做了经验系数调整因为纯余弦校正在阴影区容易过度校正。校正效果怎么验证我的办法是选同一植被类型的阳坡和阴坡样本比较校正前后的反射率差异。校正前差异可能达到百分之二三十校正后应该收敛到百分之十以内。如果校正后差异反而变大说明校正模型或者参数有问题。3. 从反射率到可用信息分类与专题提取的实操细节预处理做完影像已经是干净的反射率数据了接下来要把它变成有意义的专题信息。这一步的难点不在于算法多复杂而在于怎么让算法适配伊洛河流域这种地类复杂、地块破碎的场景。3.1 土地利用分类样本质量比分类器选择更重要我试过好几种分类方法从传统的最大似然到机器学习方法都跑了一遍。结论可能有点反直觉在样本质量有保证的前提下不同分类器的精度差异其实没有想象中那么大真正拉开差距的是样本。样本采集我遵循几个原则。第一每类样本要覆盖该类别的光谱变异范围比如农用地要分别采小麦、玉米、林地要分阔叶和针叶不能只采一种。第二样本要空间分散不能全集中在一个乡镇否则分类器学到的只是局部特征。第三样本数量要均衡不能某一类采几千个另一类只有几十个类别不平衡会严重拉低少数类的精度。分类后处理同样重要。基于像元的分类结果会有大量椒盐噪声也就是孤立错分的像元。我用众数滤波做平滑窗口大小取3乘3既能去掉大部分噪声又不会过度模糊地块边界。另外对面积过小的图斑做合并处理设定最小图斑面积阈值低于阈值的并入相邻优势类。处理环节关键参数我的取值取值理由样本采集每类样本数不少于200个保证光谱统计稳定分类后平滑滤波窗口3×3去噪与保边的平衡点小图斑合并最小面积阈值约9个像元小于此面积可信度低精度验证验证样本比例总样本的30%独立于训练样本精度验证这一步必须做而且验证样本要和训练样本严格独立。我一般从总样本里随机抽30%作为验证集剩下的做训练。混淆矩阵算出来之后重点看两个指标总体精度和kappa系数。总体精度反映整体对的比例kappa系数反映分类结果比随机猜测好多少。流域尺度土地利用分类总体精度做到85%以上、kappa到0.8以上我认为是可以接受的水平。3.2 水体提取主河道、支流、滩涂湿地要分开对待水体提取是伊洛河项目的核心需求之一但水体这个概念在实际场景里需要拆细。主河道是常年有水的明水面支流沟渠在枯水期可能断流河滩湿地是季节性淹水的过渡地带这三类在影像上的光谱表现和提取策略都不一样。明水面提取我用的是归一化水体指数配合阈值分割。这个指数的构造思路是用绿波段和近红外波段的差异来突出水体因为水体在近红外波段吸收强烈反射率很低而植被和土壤在近红外波段反射率高。阈值怎么定我没有用固定值而是对每景影像单独分析指数直方图找水体和背景之间的谷底作为阈值。固定阈值在不同季节、不同大气条件下会失效这是很多人踩过的坑。支流沟渠的提取难度大得多因为宽度可能只有几个像元混合像元效应严重。我的处理办法是结合流域提取阶段得到的河网矢量在河网缓冲区范围内做针对性提取缩小搜索范围降低误提概率。对于宽度不足一个像元的沟渠老实说单靠30米影像很难可靠提取这部分我在成果说明里明确标注了局限性没有硬凑数据。河滩湿地的界定更微妙它既不是常年明水也不是典型陆地。我的做法是结合多时相信息如果一个区域在年内部分时段被判定为水体、部分时段判定为植被或裸土就归为季节性淹水区。这个逻辑需要至少两期不同水文时段的影像配合单期影像做不了。3.3 变化检测别被变化两个字骗了变化检测听起来很直接两期分类结果一减就出来了但实际做的时候会发现大量伪变化。伪变化的来源主要有几个物候差异、大气条件差异、分类误差累积、影像配准残差。如果不加控制检测出来的变化图斑里可能有一大半是假的。我的控制策略分三层。第一层是数据层控制前面做的辐射一致性处理、几何精配准、统一物候窗口都是在从源头减少伪变化。第二层是分类层控制对两期分类结果都做精度验证只保留置信度高的区域参与变化检测置信度低的区域标注为不确定。第三层是逻辑层控制设定变化图斑的最小面积和最小持续时间面积太小或者只出现一期的变化不纳入最终成果。变化类型的划分也要贴合实际需求。伊洛河项目里我重点关注的是几类转移农用地转建设用地、水体与滩涂之间的季节性转换、植被覆盖度的显著升降。每一类转移单独出图、单独统计面积而不是笼统给一个变化图层。这样成果拿出去才有人能用。4. 成果组织与质量控制的那些笨办法数据处理到最后技术难度其实下降了真正考验人的是组织能力和质量控制。我见过太多项目单景影像处理得漂漂亮亮但几十景数据堆在一起就乱了套元数据缺失、命名混乱、版本对不上别人根本没法用。4.1 命名规范和目录结构现在偷的懒以后都要还我定的命名规则是区域标识_传感器_成像日期_处理级别_版本号每一段都有明确含义看到文件名就知道是什么数据、什么时候的、处理到什么程度。目录结构按原始数据/中间产品/最终成果三级组织中间产品再按处理步骤分子目录。这套结构看起来死板但项目做到后期数据量上来之后找东西的效率完全不一样。元数据我单独维护一张表每景影像一行记录成像时间、传感器、云量、校正参数、配准残差、质量评级。这张表是后面做时间序列筛选和成果说明的依据比在文件夹里翻找靠谱得多。4.2 质量控制的抽样复核机制全量人工检查不现实我采用的是分层抽样复核。按影像质量评级分层高质量层抽10%中等质量层抽30%低质量层全查。复核内容包括几何配准残差、云掩膜完整性、分类结果合理性。发现系统性问题的回溯到对应处理步骤批量修正。还有一招是交叉验证让处理流程里不同步骤的结果互相印证。比如分类结果里的水体范围应该和独立提取的水体掩膜高度吻合地形校正后的阴坡阳坡差异应该收敛到合理范围。这种交叉检查能发现单一环节看不出来的问题。4.3 成果说明文档把局限性写清楚比吹精度更重要最后交付的数据产品附了一份说明文档除了常规的技术参数我专门用一节写已知局限性和适用边界。比如前面提到的窄沟渠提取不可靠、云污染年份数据缺失、山区配准精度略低于平原这些都白纸黑字写清楚。这么做一开始有人觉得是自曝其短但实际用起来使用者知道边界在哪里反而更信任这套数据也不会拿它去做超出能力范围的分析。5. 几个让我印象深刻的坑和对应的解法项目做完回头看技术上的难点大多有成熟方案真正耗时间的是那些想不到的问题。挑几个有代表性的说说。第一个坑是投影不一致导致的面积统计错误。中间有一批影像的投影参数和其他批次不同拼接的时候没注意结果算出来的面积偏差了将近百分之十。后来我加了一道强制检查所有影像入库前统一重投影到目标投影并且用已知面积的参照物比如一个规则的水库水面做面积校验对不上就拦下来。第二个坑是分类样本的时空代表性不足。早期采样本图省事集中在一个区域采完就用结果分类器在流域其他区域表现明显下降。后来改成按流域分区采样本每个分区都要有代表性样本精度才稳定下来。第三个坑是时间序列里的假突变。有一年的影像成像时间比常年早了近一个月植被还没长起来分类结果里大片农用地被误判成裸地变化检测直接报出一个巨大的农用地减少信号。这个问题的解法就是前面说的统一物候窗口实在统一不了的年份在分析时单独标注、区别对待。第四个坑说起来有点丢人早期没做云影处理只处理了云本身结果云影区域被当成水体提取出来河滩上凭空多出一片湖。云影的光谱特征确实和水体有相似之处都是低反射率单靠光谱阈值分不开必须结合云的位置和太阳几何关系来排除。6. 写在最后的几句实在话这套流程跑下来我最大的体会是遥感数据处理项目的成败八成取决于流程设计的严谨程度两成取决于算法选得巧不巧。那些看起来最不起眼的步骤——产品定义、样本采集、配准检查、元数据记录——恰恰是决定成果能不能用的关键。算法可以换、工具可以升级但一套严谨的流程框架是通用的。如果让我给准备做类似流域项目的朋友提建议我会说三件事。第一动手前把数据产品说明写出来哪怕只有一页纸它能帮你省掉后面无数次返工。第二质量控制要前置不要等成果出来了再检查每个处理步骤结束就做一次验证问题早发现早修正。第三把局限性和不确定性如实记录下来这不是示弱是专业性的体现。伊洛河这个项目让我对数据产品这四个字有了更实在的理解它不是一堆文件的集合而是一套有明确边界、有质量背书、有使用说明的信息资产。把这个标准立起来后面做任何流域、任何尺度的遥感项目套路都是相通的。
阅读完成 · 觉得有帮助?
咨询建站