ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ENVI+SARscape实战:哨兵一号Sentinel-1数据InSAR处理全流程与避坑指南

ENVI+SARscape实战:哨兵一号Sentinel-1数据InSAR处理全流程与避坑指南 做哨兵一号数据处理的这几个月我最大的感受是数据好拿处理却坑不少。尤其是用ENVI主打的SARscape插件每一步都像在试错但一旦流程通了后面的结果会非常稳定。这篇文章不打算写成教科书我想把这段时间踩过的坑、验证过的参数、以及那些文档里没写明白的细节全部摊开来说清楚。如果你正打算用ENVI处理哨兵一号Sentinel-1数据或者已经在为某个步骤疯狂报错这篇文章应该能帮你省下不少时间。哨兵一号是欧空局哥白尼计划里的SAR卫星C波段最常用的就是干涉宽幅IW模式。ENVI里的SARscape模块是目前做Sentinel-1 InSAR处理最主流的方案之一从数据导入、多视、滤波、配准、干涉到形变提取、DEM生成都能在一套流程里完成。相比直接用Python写InSAR处理代码SARscape的上手门槛低很多对做地质形变监测、地表沉降、冰川运动、基础测绘的工程师和研究生来说是性价比很高的选择。下面我按自己实际跑通的处理链路把整件事从设计思路到坑点排查完整拆一遍。1. 项目整体设计与处理思路1.1 哨兵一号数据到底有什么特别之处很多人第一次接触哨兵一号容易把它当作普通的光学遥感数据来处理。这是个根本性误区。哨兵一号是合成孔径雷达SAR卫星它记录的不是地表反射的阳光而是雷达波的后向散射强度信息和相位信息。这意味着它不受云雨影响白天黑夜都能成像而且它记录的数据里藏着地表毫米级形变的信息。哨兵一号最常用的数据产品是IW模式的SLC单视复数数据空间分辨率大约是5米×20米幅宽250公里。SLC数据的每个像素都包含一个复数实部虚部组合起来既保留了强度信息又保留了相位信息。只有靠这个相位信息才能做干涉测量。另外哨兵一号有严格的轨道控制重复观测的轨道间距能保持在几百米内这让同一地区前后两景影像具备很好的干涉条件。再加上12天的重访周期双星系统可以做到6天非常适合做时序形变分析。这一系列特性决定了处理思路必须和光学数据完全不同。SAR数据处理第一步就是把轨道信息、时间信息、校准参数这些东西整理好这也是为什么不能直接把下载的压缩包拖进ENVI就完事的原因。1.2 为什么用ENVISARscape做主处理环境有人问我为什么不用开源的SNAP或者完全是代码的ISCE来处理我承认SNAP免费且流程完整ISCE灵活性更强但在实际项目里我最终还是选了ENVISARscape原因有三个。第一是流程化程度高。SARscape把完整InSAR流程封装成了十几个工具每个工具界面上都有明确的参数项不需要你把处理逻辑从头到尾写一遍代码。这对做工程应用的人特别友好能快速看到每一阶段的结果。第二是可视化交互方便。ENVI本身的波段组合、图层叠加、剖面分析、点要素提取功能很成熟处理完的干涉图、相干性图、形变图可以在同一个环境里完成查看、统计和出图。第三是批处理能力。SARscape的Batch Processing功能可以把整个流程模板化时序数据一跑就是几十景手动挨个点工具会疯掉的批处理能把整个处理链路的效率提升一个量级。有一点我必须提前说明不是装了ENVI就有SARscapeSARscape是独立授权的插件模块需要单独安装和激活。安装的时候一定要确认软件版本和系统架构匹配我见过很多人栽在这一步——ENVI 5.7对应SARscape 5.7.x64位系统别装成32位模块否则加载工具时直接报错。2. 处理前的数据准备与工程搭建2.1 数据获取与关键参数选择哨兵一号数据的下载渠道最常用的就是欧空局的Copernicus Open Access Hub和ASF Data Search。ASF对国内用户友好一些支持按画框、按轨道号、按日期检索下载速度快而且默认可选SLC产品。选数据的时候要重点盯几个参数模式必须选IW模式除非你做的是海面或特定目标监测。Strip Map模式的幅宽和分辨率特性不太适合大范围地表形变。产品级别选SLC不要选GRD。GRD是已经被处理成强度图的没有相位信息没法做干涉。极化方式地表形变监测一般选VV植被地区有时VV穿透性更好VH多用于地物分类或生物量估算。轨道方向同一区域可能需要升轨和降轨分开处理不要混在一起。混合使用方向不一致的影像做干涉会带来很大的几何误差。还有一个经常被忽略的是时间基线配置。如果你做的是时序形变建议选择同一轨道号、相隔6天或12天的一系列数据。时间间隔太长相干性会快速下降相位解缠会非常困难。下载完的数据通常是ZIP压缩包里面包含.safe文件夹和.zip元数据文件命名里包含卫星编号、模式、采集日期、极化和轨道号等信息。拿到数据后先解压然后到ENVI里做下一步。2.2 数据导入与工程环境设置SARscape的处理第一步是用SARscape - Import Data - ERS/ENVISAT/.../Sentinel-1工具把原始SLC数据转换成SARscape标准的格式。这一步看起来是无脑操作但有几个细节直接影响后面成败轨道文件的配置SARscape做干涉处理需要精确轨道信息。下载的原始数据里自带的轨道只是预报轨道中精度更精确的POD精密轨道星历文件需要在处理前手动下载更新。你可以在工具参数里指定存放轨道文件的文件夹SARscape会自动匹配对应时间段的轨道文件。如果缺失精密轨道处理结果会存在系统性误差尤其是在形变量级只有厘米级的小形变监测任务里这一步绝对不能跳过。辅助文件的设置在SARscape - Preferences - Parameters里需要设置DEM路径、轨道路径等。DEM方面建议单独准备一份覆盖研究区的SRTM或AW3D30数据SARscape默认会调用全球SRTM但有些地区无法自动获取最好自己本地准备好。图像导入参数导入工具的参数里有个“Output”项默认会生成幅度图Intensity和SLC数据。这里千万注意不要勾选可能被重采样成其他投影的选项SAR数据处理的投影要保持雷达几何坐标任何提前的地理编码都只会增加误差。保持默认的Radar Geometry即可。数据导入完成后会生成若干个文件.sml元数据文件、_slc数据文件、轨道状态矢量文件等。这个时候在ENVI里打开看你会看到一幅灰蒙蒙的强度图像这很正常因为SAR数据是侧视成像有叠掩、阴影等几何特性不能像光学影像那样直观理解。3. 核心处理链路实操3.1 多视与滤波让干涉图更干净哨兵一号SLC数据的距离向分辨率比方位向差不少为了后续干涉和滤波的方便第一步通常是多视处理Multilooking。多视处理其实就是在距离向做降采样使两个方向的像素尺寸尽量接近。在SARscape - Basic - Intensity Processing - Multilooking里需要填距离向视数Range Looks和方位向视数Azimuth Looks。对于Sentinel-1 IW模式经验值是距离向4、方位向2或者距离向8、方位向2。具体视数需要根据实际分辨率和研究需求来调多视数越大图像分辨率越低但斑点噪声会减少。多视之后是滤波Filtering。SAR天然带有斑点噪声不滤波直接做干涉相位噪声会淹没有效信号。SARscape提供的滤波算法有不少工程上最常用的是Boxcar和Refined Lee。Refined Lee这个滤波器我比较推荐它能在降噪的同时保留边缘细节。滤波窗口大小一般设5×5或7×7。窗口太小噪声还在窗口太大干涉条纹细节会被磨平形变信息会被模糊化。如果你研究的区域形变梯度大比如滑坡边界、断层附近窗口选小一点更稳妥。实际处理中滤波参数不是一次确定的。我会先做一版干涉图看条纹的清晰程度和噪声水平再返回调整滤波参数。干涉图的条纹质量是整个InSAR处理成败的核心指标这一关没过好后面解缠全是错。3.2 配准与干涉InSAR的核心步骤得到多视和滤波后的图像接下来就是配准Coregistration和干涉Interferogram Generation。配准是怎么做的SARscape通过轨道信息计算主影像和辅影像之间的初匹配再用一系列算法做亚像元级精细配准最后生成配准偏移图。重点要说一下配准的两个评价指标相干系数Coherence在配准和干涉生成结果中SARscape会输出一个相干性图值在0到1之间。大于0.3的区域可以做可靠的相位解缠低于0.2的区域基本是噪声。配准精度Coregistration RMSSARscape界面里显示了方位向和距离向的配准误差通常要求低于0.01像素。如果RMS偏高说明这对影像的轨道基线或者地表状态不适合做干涉需要更换影像对。配准完成后直接做干涉生成。干涉图本质上是主辅影像的共轭相乘结果就是相位差图。相位差包含地形相位、形变相位、大气延迟和轨道误差等几个分量后续步骤就是把它们逐一剥离。干涉生成工具的输出是一对文件干涉图Interferogram和相干性图Coherence。在ENVI里把干涉图用色带渲染你会看到彩色条纹状分布那就说明干涉有效。3.3 轨道精炼与重去平这一步是很多新手最容易迷茫的地方因为SARscape里的工具名称不那么直观而且参数设置完全依赖经验。相位解缠之前通常需要做轨道精炼Refinement。这个过程用地面控制点GCP拟合和去除轨道相位误差以及残余的平地形相位。SARscape提供一个交互式工具SARscape - Interferometry - Interferogram Processing - Refinement它会打开相位图和相干性图的联动视图你需要在图上选择控制点。控制点怎么选这是关键之中的关键选在相干性高的地区比如裸露地表、裸岩、城市硬质地面。选在相位条纹干净的区域避开连续条纹太多的地方。远离形变区不要选在沉降漏斗内部或滑坡体上。控制点数量一般覆盖全图每个象限至少2-3个点。点选完之后工具会显示残差残差值很小的点说明轨道模型拟合得好残差大的点果断删除。轨道精炼完成后进行重去平Re-flattening。操作上是直接用工具对原始的干涉图做去平地相位和地形相位处理输出的是主要是形变相位信息的残余相位图。到这一步你就已经能隐约在一些区域看到形变条纹的轮廓了比如城市沉降区会呈现环形条纹状。平时处理时我会在重去平后的干涉图上做个Quick Look检查条纹是不是集中在预期的形变区域。如果条纹杂乱无章就说明前面参数可能有问题需要回溯返工。千万不要图省事直接往下跑错误会被一步步放大。3.4 相位解缠与地理编码相位解缠Phase Unwrapping是InSAR中最核心也最容易出错的一步。干涉图的相位差被包裹在-π到π之间要恢复真实的相位整周数才能计算地表形变或高程。SARscape的相位解缠工具叫Phase Unwrapping使用的是最小费用流MCF算法。参数里最关键是“Unwrapping Method”和“Coherence Threshold”。日常使用默认的MCF和0.20-0.25的相干性阈值就可以如果地区的相干性整体偏低阈值就调低但解缠结果会更噪。相位解缠做完后结果图里会有一个解缠相位文件颜色过度平滑连续没有了跳变的条纹边界。这一步最怕出现的问题是“解缠错误”——由于噪声或相干性低某些区域的相位跳变没有被正确恢复导致结果出现孤立的面状斑块或梯度异常。解缠之后是轨道精炼Refinement 2和重去平Re-flatten 2这套流程在相位解缠前和相位解缠后各做一次目的是用解缠后的相位对轨道误差和残余相位做二次修正。注意有些人会跳过第二次但实际上第二次处理能显著提升最终形变图的精度。最后把雷达坐标下的形变信息转换到地理坐标下用的是Geocoding工具。这一步需要用到外部DEM可以选择SRTM或本地的DEM数据。地理编码完成后输出的是GeoTIFF格式可以直接在ArcGIS或者QGIS里加载成图。4. 常见问题与排查技巧实录4.1 GACOS缺失时的替代处理方案很多人在做大气延迟校正时发现SARscape自带的工具包里没有GACOS模块。GACOS是用于大气延迟校正的通用大气校正服务如果要做高精度的形变监测尤其是在大气水汽变化剧烈的区域大气延迟相位是个大头误差不处理不行。SARscape没有集成GACOS但有几种替代方案。第一种是在流程上做规避选择时间段内大气水汽相对稳定的数据对或者在时间序列里参考那些已知没有形变的稳定点来做大气相位估计。这要求研究区必须有足够多的稳定点不太适合均匀沉降的大平原地区。第二种是外部校正法从GACOS官网generic-mapping-tools.org下载对应的GACOS/ZTD数据这是一张覆盖全球的天顶延迟图把它转换成相位并配准到SAR图像上在干涉处理之外单独对结果做一次“大气相位校正”。具体做法是先用SARscape的Geocoding工具把GACOS数据模拟成SAR几何再做相位换算和校正。第三种是时序方法自带校正如果你用的是SBAS或PS工具做时序InSAR大气延迟被当作时间和空间上的信号进行分离不再需要单独做GACOS校正。这就是为什么我在做时序监测时更推荐直接走SBAS流程而不是单干涉对流程。用我亲测的结果来说对时序形变项目走SBAS流程比纠结GACOS缺失更实际。4.2 数据量巨大内存溢出怎么破处理哨兵一号数据一个常见的硬伤就是数据量巨大。一景IW SLC数据解压后通常好几个GB处理过程中的中间文件翻倍都很正常。如果你电脑内存只有8GB跑配准或干涉时很容易出现内存溢出或者进程卡死的现象。这里有几个实测有效的办法分区裁剪在处理前用SARscape - Basic - Subset对SLC数据做裁剪只保留研究区附近的范围。哨兵一号一景幅宽250公里多半用不上。裁剪后数据量能省掉三分之二。64位系统和足够大的可用磁盘空间SARscape的中间文件占用是惊人的C盘至少保留50GB以上空闲空间。很多人报错“Cannot create file”实际上是磁盘满了。设置Swap文件夹在SARscape Preferences里指定一个大容量的临时目录并且不要放在系统盘。分段处理特别大的区域比如整景做SBAS建议分块处理完再拼接结果。ENVI的Mosaicking功能可以做最终结果拼接。4.3 相干性过低导致解缠失败这是整个处理流程里最打击人的问题。你参数设置得很认真数据源也正常但相干性图一片花白低于0.2的区域太多解缠出来的结果完全没法看。相干性低的原因通常有两个层面。一是地表本身在雷达观测期间发生了变化比如植被生长、农田翻耕、水面波动。这个没办法只能换时间段或改用长波长的数据比如L波段的ALOS。二是处理参数不好配准精度不高、滤波不够、主辅影像的Doppler Centroid频率差异过大。排查时先在ENVI里打开配准后的偏移量文件如果发现偏移分布有规律性的大梯度说明配准失效了。再检查主辅影像的Multilook参数是否一致。还有一个我常犯的错是用了不同极化的数据做干涉这类干涉是完全无效的正确做法是坚持同一极化如VV配对处理。当相干性低发生在部分区域而另一个区域完全正常时可以先对相干性图做平滑再设置一个合理的解缠掩膜把这些低相干区域排除在外。解缠时Coherence Threshold升高一些比如从0.2升到0.25这样就不会为了凑一块低相干区域导致周围大片区域的解缠结果也跟着崩掉。4.4 数据命名与轨道处理的那些坑还有个小问题尤其是在批量处理时很常见。哨兵一号的ZIP文件解压出来的.SAFE文件夹里包含内容很多如果你在解压过程中改变了目录结构SARscape导入工具就会报“Invalid path”错误。建议的解压习惯是保持.SAFE文件夹的完整结构不要单独把里面某个文件拖出来。同一个轨道号的影像放在同一个父目录下这样在处理时序数据时能相对便捷地管理轨道文件匹配。轨道文件更新也是个高频坑点。SARscape处理时如果找不到精密轨道文件会弹出一个对话框告诉你“Precise Orbit files not found, use restituted orbit”。这时候可以点击工具内部提供的下载入口或者在Preferences里指定你手动下载的AUX_POEORB目录。注意轨道文件必须和图像时间是精确匹配的版本号也不能混用更新轨道的AUX_POEORB覆盖的日期是前一天的你选择研究区间内的数据做处理没问题但日期范围的边界要给你自己多留出半天的缓冲。5. 时序InSAR的进阶玩法5.1 从单干涉对到SBAS时序分析做单体形变监测比如一次地震同震形变或矿区单独某段时间的沉降单干涉对就足够了。但要揭示一段连续时间内的地表形变演变规律单干涉对就不行了——时间基线太长会引入严重的失相干形变信号也容易淹没在大气相位里。这时我会把项目升级到SBAS小基线集技术。在SARscape里是SARscape - Interferometry - SBAS整套流程。SBAS的核心思路是选取一系列时间相邻且空间基线较小的影像对生成大量干涉图然后对这些干涉图做最小二乘或奇异值分解反演得到每个时间段内的形变速率。实际操作上SBAS需要输入一组时间序列的SLC文件按时间顺序排列。工具会自动计算每个影像对之间的空间基线和时间基线你可以设置阈值比如空间基线小于200米、时间基线小于48天来筛选合格的影像对组合。这里你别怕组合数量太多只要干涉质量有保证涉对越多反演结果越稳。反演输出的结果包括每期形变量、平均形变速度场、残余地形误差等。生成形变速度场之后同样要Geocoding转为地理坐标方便和地面水准数据对比验证。5.2 交叉验证不要只信软件输出这里想特别讲一点在做项目时自己形成的习惯。任何InSAR处理结果在正式出报告或做结论之前我都会做两个校验步骤画一条剖面线在形变图上从沉降中心向外画剖面检查形变梯度是否符合物理常识。如果出现“尖峰”式的形变突变多半是解缠错误或残余大气要标记可疑区域返工。和外部数据对比有机会就找GPS连续站或水准点数据把位置上的InSAR形变速率和地面实测数据放在同一张图里对比。系统性偏差可以接受但单个点差出几厘米就要查是不是点选在了失相干区域。这一步算是从业者的职业素养。很多教程不会教你但实际做项目甲方或者导师总会问一句“你的数据准不准”如果没有外部数据支撑很难回答这一句。5.3 地形复杂区域的特殊处理顺序如果你要处理的区域是山区、峡谷这类地形起伏剧烈的区域流程顺序和参数设置要做针对性调整。一是要把“地形相位去除”从后面的步骤提前到干涉生成后立刻做。在SARscape的干涉工具里可以指定一个外部DEM用于模拟地形相位。地形起伏大的地方地形相位在原始干涉图里占据主导条纹会密到眼睛发花完全无法判断有效信号。提前能用DEM将地形相位从干涉图中移除干涉图会变得清爽相位解缠的可靠性大幅提高。二是滤波参数要多试几次。地形陡峭区域形变信号的空间梯度大滤波窗口一定不要大。选择Refined Lee后如果滤波后仍然存在大量残差可以改选Goldstein滤波它对条纹保护更友好。具体选哪个滤波最好先在裁剪出的小范围内做实验对比选效果最好的再在全图范围内应用。在山区做SAR处理还要特别注意叠掩与阴影区。在阴影区雷达波照不到完全没有信号这些区域的相干性图会直接是0或NaN。建议在处理流程中加入一个掩膜步骤把阴影和叠掩区单独标记出来不参与解缠和反演避免它们拖累周边正常区域的计算。结尾干这行的时间越久越觉得ENVI处理哨兵一号数据这事儿真正的门槛不在软件操作而在于你理解每一步为什么这么做。参数背下来没用换个数据、换块地形所有经验都要重新调整。我自己的习惯是每做一个新区域先在研究区里找一个小范围子集快速试跑全流程把所有参数先在小范围上验证一遍再铺开到全区域。这样做看似多花了一个小时试跑但避免了在全图上跑完后发现问题再回头返工的痛苦。最后再分享一个小技巧当你对处理的结果没有把握时把相干性图在ENVI里放大用红绿蓝配色逐步观察——低相干区域永远是你最先要怀疑的地方几乎所有离奇的形变点都落在低相干区。把掩膜做好、把低相干区排除干净你的结果就已经比很多人强一截了。希望这篇文章能帮你少走点弯路早日跑通属于自己的哨兵一号处理链路。
返回列表