ARTICLE DETAIL

资讯详情

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

ENVI+SARscape哨兵一号InSAR全流程:从数据导入到形变图生成

ENVI+SARscape哨兵一号InSAR全流程:从数据导入到形变图生成 先交代一下背景这篇文章写的是我在实际项目中折腾出来的东西。项目标题是“ENVI 5.6 Sarscape 5.2 保姆级教程哨兵一号数据处理全流程含DEM自动下载”如果你刚接触InSAR手里拿到哨兵一号Sentinel-1数据但不知道怎么从零开始做干涉处理或者卡在软件安装、DEM下载、报错排查这些环节那这篇就是给你准备的。我会把从软件版本匹配、数据导入、DEM获取到干涉图生成、解缠、地理编码的完整流程拆开讲顺便把“SARscape process unexpectedly terminated”“gacos模块缺失”“archydro dem reconditioning 报错”这些我实际撞过的坑一并写清楚。适合刚入门的遥感/测绘研究生也想给准备做形变监测项目的工程师当操作手册用。先说个结论ENVI SARscape这个组合是目前桌面端处理哨兵一号数据最顺手的方案。它不像GAMMA那样需要写一堆命令行也不像SNAP那样每个步骤都要手动连图处理流程中每一步都有图形化参数面板数据量不大时效率非常高。但正因为它界面友好很多人对它背后的处理逻辑并不清楚遇到参数不敢动出了报错不知道怎么查——正好这篇文章就是来解决这些问题的。1. 环境准备ENVI 5.6 Sarscape 5.2 安装步骤与常见报错1.1 版本匹配与安装顺序为什么不能乱装先说说版本。ENVI 5.6对应的是2021年左右的版本而Sarscape 5.2在5.6.x上表现非常稳定。你如果手里是ENVI 5.3或者5.4硬装Sarscape 5.2也能跑但部分工具面板显示会有问题尤其是新版的功能模块比如GACOS相关工具在旧版ENVI上可能直接不显示。反过来ENVI 5.7虽然也能装Sarscape 5.2但我在实测中遇到过菜单加载不完整的情况所以如果你不是必须用5.7的新特性保险起见还是按5.6 5.2这个组合来。安装顺序要注意先装ENVI本体把license配置好确认ENVI能正常打开再装Sarscape插件。Sarscape装完之后它在ENVI的Toolbox里会新增一个SARscape菜单所有工具按功能分成数据导入、聚焦/干涉处理、扫描式SAR处理等几个模块。装完第一次打开时建议先去SARscape → Preferences里检查一下默认文件路径尤其是日志目录和临时目录不要放在系统盘C盘根目录更不要放在带中文的路径下。后面很多“莫名奇妙”的报错追到底都是路径问题。提示安装包尽量用完整版离线安装包。不要为了省事去下载那种“绿色版”“免安装版”Sarscape是带独立许可服务的插件绿色版很容易出现模块加载不全、许可占用无法释放的问题。1.2 SARscape装了但工具菜单里找不到GACOS模块怎么办很多人装完Sarscape 5.2后兴冲冲去找GACOS大气改正工具结果发现工具列表里根本没有。首先解释一下GACOS是什么GACOS全称是Generic Atmospheric Correction Online Service提供了基于对流层延迟模型的大气改正数据处理长条带、大范围InSAR时用来削弱大气相位。它不是一个本地计算功能而是一个在线数据服务Sarscape里做了一个对接入口。如果你在菜单里找不到GACOS常见原因有两个一是你安装的是基础版或某些精简版没有包含GACOS模块二是因为这个功能需要联网认证国内网络环境下模块初始化失败入口就被隐藏了。处理方法如果处理范围不大或者不做高精度形变监测直接忽略GACOS也能得到可用的结果如果必须要做大气改正可以绕开Sarscape内置模块从GACOS官网单独下载对应时间、对应地区的对流层延迟数据再用Sarscape里的“External GACOS Correction”或者通过Band Math自己把大气相位从干涉图中扣除。这个路子比纠结模块缺失更实际。1.3 安装与启动阶段的高频报错SARscape process unexpectedly terminated“SARscape process unexpectedly terminated”这个报错我至少帮人排查过几十次这里先给一个快速定位。这个报错出现的位置通常是在你点某个工具开始运算后Sarscape的后台进程直接崩了ENVI弹出这个提示。常见原因按概率排序磁盘空间不足。干涉处理过程中会产生大量中间文件一个标准景的哨兵数据全流程跑下来中间文件轻松超过50GB。很多人在数据盘只剩几个G的情况下硬跑进程一写文件就崩溃。路径或者文件名含中文、空格、特殊符号。SARscape底层调用的GAMMA模块对路径编码很敏感路径里一旦出现中文进程直接终止。这个坑非常隐蔽因为ENVI菜单都是中文汉化但底层进程不认。设置的多视/滤波参数导致内存溢出。尤其是32位系统或者物理内存小于8GB的机器全分辨率处理哨兵数据基本必崩。如果是刚启动阶段就报这个错大概率是许可服务没起来。SARscape安装后会在服务列表里注册一个许可服务检查一下服务状态是否为“正在运行”把它手动启动一次就好。我遇到过一台机器每次重启后这个服务都不自动启动需要去服务管理器里手动拉起后来直接把它改成延迟自动启动才解决。2. 哨兵一号数据下载与导入先把SAFE格式弄明白2.1 数据源与产品类型选择SLC还是GRD哨兵一号的原始数据从各种平台下载下来都是一个SAFE格式的文件夹里面包含manifest.safe文件、annotation文件夹、measurement文件夹等。你要做InSAR必须下载SLC产品Single Look Complex单视复数数据它保留了相位信息GRDGround Range Detected是地距检波产品已经丢掉了相位只能用来做后向散射分析、水体提取、土地利用分类这些强度信息应用。下载平台选哪个欧空局Copernicus Data Space Ecosystem、美国ASF Search、国内的一些镜像节点都可以。ASF的界面最友好支持框选研究区、设定时间范围直接筛选SLC和IW模式。哨兵一号的成像模式也有讲究。默认选IWInterferometric Wide swath幅宽250公里分辨率5×20米是InSAR形变监测的主力模式。SMStripe Map条带模式分辨率更高但幅宽窄、数据量少。EWExtra Wide swath主要用于海洋和极地。处理哨兵数据时SARscape对IW模式支持最好导入后自动分三个子条带IW1、IW2、IW3你可以选择处理单个子条带也可以全处理但研究区不大时建议只处理覆盖研究区的条带省时间省空间效果还好一点。2.2 SARscape数据导入的详细操作与参数设置数据下载回来后不要直接在ENVI里用File → Open打开那会把SAFE当成普通栅格打开什么信息都读不出来。标准操作是SARscape → Import Data → SAR Spaceborne → Sentinel-1在弹窗里选择你要处理的SAFE文件夹然后设置参数。这里面有两个路径参数特别重要。第一个是Orbit文件路径用来做轨道精炼第二个是参考DEM路径用来做地形相位模拟。SARscape在下单数据时建议同时下载对应的精密轨道文件POD Precise Orbit Ephemerides如果没下也可以先设一个文件夹路径后面在流程中单独更新。参考DEM路径这里可以先留空后面梳理DEM下载时会专门说明。导入参数面板里的“Product Selection”要选SLC“Polarization”选VVVH或VV具体看你有什么极化数据以及你要做什么。干涉处理一般只用VV单极化也能跑双极化导入会把数据量翻倍处理时间也更长。其余参数基本保持默认即可。点OK之后SARscape会在输出目录里生成以景命名的文件夹里面包含每景数据的参数文件——这些以.sml结尾的文件就是后面所有处理步骤直接调用的对象。注意import之后生成的文件名里不要带“。”等中文标点。我自己就吃过一次亏一个研究区文件名里有“”和“”全过程能跑但结果文件名的编码全乱了后面地理编码输出时直接报错找不到文件。2.3 顺手说清楚DEM、DSM、DOM到底有什么区别搜索结果里“dem、dsm、dom”这几个热词放在一起估计不少人对它们还是有些模糊这里用最直白的方式解释。DEM是数字高程模型表示地表裸地的高程DSM是数字表面模型表示包含建筑物、树木等地表物体的高程。你可以这样理解同一座小山上DEM量的是山体本身的高度DSM量到的是树顶。对于做形变监测来说我们关心的是地表本身的形变所以理论上用DEM更合适但SAR技术反演出来的高程信息其实是DSM因为雷达信号先反射的是树顶、房顶。在SARscape里干涉处理流程中“地形相位去除”用的DEM既可以是外部的SRTM、ALOS DEM也可以是干涉图通过“相位转高程”得到的DSM。当你用两景数据生成干涉图时如果相位完全来自地形那么通过相位反演就能得到高精度的DSM再通过“DSM生成DEM”工具把地物高度削弱这就是热词里“dsm生成dem”的来龙去脉。DOM则是正射影像就是经过几何校正、投影到地图坐标系的影像SAR数据处理完成后你输出的形变图叠加到光学背景上那张背景图通常就是DOM。这样一理就会发现这几个概念在SARscape流程里并不是孤立的DEM是处理流程的输入DSM是干涉测量的潜在输出DOM是最终成果叠加的底图。3. DEM自动下载与地形相位处理别让高程数据拖后腿3.1 SARscape里的DEM自动下载逻辑与实操SARscape自带一个DEM下载功能在“SARscape → Tools → DEM Extraction”里但很多人用的最多的其实是干涉处理流程中的参考DEM生成环节。我的建议是在干涉处理开始之前单独把DEM准备好不要在跑流程时临时让它下。SARscape的DEM自动下载数据源默认是SRTM航天飞机雷达地形测绘任务可以选90米分辨率的3弧秒也可以选30米分辨率的1弧秒。如果你研究区在国内30米SRTM基本够用如果做的是矿山、大坝这类小范围精细形变想要更高精度可以手动下载ALOS PALSAR 12.5米DEMJAXA提供或者TanDEM-X 12米DEM。SARscape自动下载的DEM在“参考DEM”选择时输出格式和坐标系已经帮你配好了非常省事。我实际用下来的经验是SARscape自动下载依赖外部网络服务在国内偶尔会超时或者服务地址失效导致“DEM下载失败”的报错。遇到这种情况不要死磕直接去USGS Earth Explorer或者ASF平台手动下载SRTM GeoTIFF再用ENVI的Mosaic工具拼接、Subset工具裁剪到研究区范围保存成ENVI标准格式.dat或.tif后备用。手动准备DEM有一个额外好处你可以把DEM投影坐标系先统一到UTM后面处理时少一步坐标系转换的麻烦。3.2 DEM拼接、裁剪与“DEM reconditioning”报错的解码手动下载的SRTM数据通常是按经纬度分块的每一块覆盖1度×1度研究区跨了两三块就需要拼接。ENVI里最常用的拼接工具是Mosaic打开Mosaic → Georeferenced把分块DEM全部加进去设置好输出路径后运行。拼接完成后再用Resize Data或Subset Data from ROIs裁剪到你的研究区范围注意要给DEM预留一些外扩范围一般外扩10到20公里给干涉图边缘的缓冲区留足余量。这里纠正一个误区网上很多人搜“archydro dem reconditioning 报错”这个报错其实不是SARscape流程里的而是ArcGIS里用Archydro工具做DEM预处理时出现的。我为什么会提它因为你在做InSAR时如果需要用水文分析来辅助判断形变区域可能会去ArcGIS里处理DEM然后就会踩到这个坑。Archydro的DEM Reconditioning工具报错绝大多数情况是输入DEM里存在无效值区域NoData空洞工具在处理时不识别或者是你输入的河网矢量跟DEM不在同一个坐标系。解决办法先用Fill工具填平DEM的空洞和洼地把河网图层投影到DEM相同坐标系再重新运行就行了。这件事也提醒我们跨软件处理数据时80%的报错都是数据本身“不干净”造成的先查数据完整性再查参数设置效率最高。3.3 DEM与SAR影像的配准检查处理前必须做的一步DEM准备好后不要急着跑干涉流程。在SARscape里有一个很实用的检查动作用“Synthetic Aperture Radar → Interferometry → Processing → Baseline Estimation”前的“DEM/Orbit”检查或者直接先跑一次“Interferogram Generation”在生成的干涉图里看一下条纹是否清晰干净。如果DEM和研究区对不上干涉图里会出现非自然的环形条纹或者地形相位残留特别重。实际项目中我通常会在准备好DEM后先做一个简单操作在ENVI里同时打开DEM和哨兵数据的强度影像目视检查地物边界是否吻合比如山脊线、河流走向。如果DEM坐标系是WGS84地理坐标而SAR数据在后续处理中用的是UTM投影SARscape会自动帮你重投影但重投影后DEM可能会产生边缘锯齿这时可以用ENVI的“Reproject”工具手动重投影一次配合“Smoothing”对DEM做一个轻度平滑效果会更好。4. 核心干涉处理流程实操从基线估算到地理编码4.1 基线估算判断干涉对是否可用进入正式流程之前先要对你的数据做一个“可干涉性”评估这个动作叫基线估算Baseline Estimation。SARscape菜单路径SARscape → Interferometry → Tools → Baseline Estimation选择你导入好的两景SML文件一个设为主影像Master一个设为辅影像Slave运行后输出一个基线和相干性的文本报告。基线估算的结果主要看两个数空间基线Spatial Baseline和时间基线Temporal Baseline。空间基线是两颗卫星过境时的轨道间距单位是米哨兵一号的设计基线比较小一般几百米内都没问题时间基线是两景数据的间隔天数哨兵一号重访周期是12天现在部分区域是6天间隔越短地表去相干越小干涉图质量越高。报告里还会给出一个理论相干性估值一般来说大于0.5就能做。如果空间基线超过临界基线哨兵一般在数百公里级别实际很少触发或者时间跨度过大导致相干性低于0.2这组数据基本可以放弃换一对时间更近的影像重新组合。讲一句经验不要只看报告的数字还要打开干涉图看条纹。有些基线参数很好但干涉图一团糟的情况多半是大气影响太严重或者地表发生了快速变化比如农田翻耕、积雪覆盖这种数据再怎么精炼也救不回来。4.2 干涉图生成与去平地效应参数怎么选基线合格后进入第一个重量级步骤干涉图生成Interferogram Generation。SARscape菜单SARscape → Interferometry → Processing → Interferogram Generation。这一步会把主辅影像做配准、重采样、共轭相乘得到干涉相位同时用轨道信息模拟并去除平地效应。参数面板里最值得关注的是“Number of Looks”和“Filter”相关设置。多视Looks的本意是用空间平均换取相位稳定性设置2×2相当于把分辨率从5×20米降到约10×40米噪声被平掉了相干性会提升但小尺度形变信号也会被平滑掉。我处理大范围地壳形变时常用4×4或6×6处理矿区、大坝这种局部形变用2×2更合适。另外SARscape会在生成干涉图的同时做一次初步滤波这部分可以先用默认值后面再用单独滤波工具做精细化处理。去平地效应后生成的干涉图如果一切顺利你会看到与研究区地形起伏对应的规则条纹——这些条纹里面同时包含地形相位和形变相位。至于怎么把两者分离靠的就是后面用DEM“做减法”的操作。注意干涉图生成这一步是全程最耗时的一步两景标准IW SLC数据全分辨率处理在普通工作站16GB内存上可能要跑20到40分钟。跑之前务必定好输出文件名和目录避免中途终止后发现文件名不合法前面时间全部白费。4.3 自适应滤波与相位解缠是决定结果质量的分水岭干涉图生成之后你手里的相位是模棱两可的每一个像素的相位值都落在-π到π之间差了整数倍个2π完全看不出来。要把真实形变还原出来必须先做滤波降噪再做相位解缠Phase Unwrapping。SARscape里滤波工具是“Adaptive Filter”常用的是Goldstein滤波方法参数里有一个滤波器窗口大小和“Alpha”系数。Alpha控制滤波强度数值越大平滑越强但也越容易把真实信号一并抹掉。我一般用默认Alpha窗口选3×3或者5×5如果干涉条纹太碎、噪声太大才把窗口调到7×7。滤波完成后就是解缠。SARscape默认用区域增长法Region Growing解缠时它会自动识别相干性低的区域并避让。你需要在面板里设置“Coherence Threshold”相干性阈值默认是0.18到0.2左右低于这个阈值的像素不参与解缠。阈值太高会丢掉有效区域太低会把噪声区域里的错误相位解出来结果图上出现飞点。在实际操作中我会先打开相干性图看看整体水平如果研究区大部分相干性只有0.3到0.4阈值就设0.15到0.18如果相干性很高可以设0.25这样能滤掉更多不可靠区域后面形变图更干净。解缠完成后要目视检查解缠图是不是平滑连续的如果出现明显的阶梯状跳变说明解缠在那些地方失误了需要回去调整阈值或者滤波参数重做。4.4 地形相位去除与地理编码得到最终形变图解缠完成的相位还是“相位”要把它们变成“形变量”需要做两件事第一步用DEM模拟出地形相位从干涉相位里扣除这一步在SARscape里叫“地形相位去除与形变计算”Phase to Displacement或D-InSAR处理第二步把雷达坐标系下的结果转换到地理坐标系下叫“地理编码”Geocoding。先说地形相位去除。这一步原理上很简单相位地形相位形变相位大气相位噪声。你用DEM和轨道数据可以算出每个像元的地形相位贡献有多大把它从总相位里减掉剩下的就是形变加误差。SARscape里有专门的“Synthetic Phase”工具可以生成模拟相位但它通常被整合在干涉处理流程里你用“Interferometry → Processing → Phase to Displacement”时它会自动调用前面准备好的参考DEM来算地形相位。如果你的DEM覆盖不全、坐标系不对这一步报错最常见。地理编码则涉及到影像坐标到地图坐标的映射。SARscape里路径是“SARscape → Geocoding → Geocoding”输入解缠后的相位文件和之前处理中生成的几何文件Geometry文件设置输出分辨率一般设为10米或者20米和你的多视参数匹配就会输出一个带有地理参考的形变栅格。地理编码后的结果里每个像元的值就是雷达视线方向上的形变单位是米。你可以用ENVI里Color Slice或者Density Slice轻易看出哪些区域沉降、哪些区域抬升。提醒地理编码输出的形变是LOS视线向形变不是垂直向形变。做地质解释时需要结合卫星轨道方向和入射角做投影分解或者用升降轨数据联合反演三维形变。这个话题比较大这篇先点到为止。5. 常见问题与排查技巧实录5.1 SARscape Process Unexpectedly Terminated 完整排查路径这个报错我在1.3节提了一部分这里给一个完整的排查顺序表下次再遇到照着查就行。排查顺序检查项处理方法1磁盘剩余空间是否充足中间文件保留量按原始数据量的5到10倍估算不足则清理或换盘2文件路径和文件名是否含中文/空格重建全英文路径重命名所有输入文件3SARscape许可服务状态打开服务管理器重启SARscape License服务4物理内存是否过小关闭其他占用内存的程序把多视参数调大降低数据处理规模5输入数据是否完整检查SAFE文件夹内measurement下的tiff文件是否存在大小是否异常6是否存在其他进程占用文件数据处理时关闭360、杀毒软件等可能锁定文件的程序这个表解决了我遇到的90%以上崩溃问题。剩下一部分崩溃是数据本身的问题比如下载的哨兵数据缺失了某个子条带、或者有的测量文件损坏这种只能重新下载。5.2 DEM相关报错与处理从sarscape下载失败到archydro报错DEM引起的报错五花八门最经典的就是“参考DEM文件不可用”或者“DEM覆盖范围不足”。我这边的实际建议SARscape自动下载如果失败三次以上不要再重复尝试直接切到手动模式。手动下载SRTM时注意选GeoTIFF格式不要选DTED或者BIL格式因为ENVI对GeoTIFF的兼容性最好而且SRTM GeoTIFF打开后自带地理参考省掉很多坐标系的烦恼。至于“archydro dem reconditioning 报错”前面2.3已经详细说过这里再补充一个很多人的盲区Archydro报错的另一个高频诱因是路径包含中文或者长文件名。ArcGIS和ENVI在这点上非常像对路径编码极其敏感。你在ArcGIS里用所有工具时都尽量把工程和数据放在全英文短路径下能省掉一堆看起来很玄学的错误。另外Archydro提示找不到Spatial Analyst许可的时候去自定义菜单里勾选“Spatial Analyst”模块确保它是可用状态即可。5.3 处理开始前的一分钟检查清单每次新项目开始处理哨兵数据我都会先花一分钟过一遍下面这个清单到目前为止这个习惯帮我避免了很多个通宵数据命名所有景数据的文件夹名、文件名改成英文短名字不带空格不用下划线开头目录规划工程目录建在数据盘不建议C盘目录结构类似“D:\InSAR_Project\01_Data\02_Process\03_Result”各步骤输出目录提前建好时区和网络如果要用GACOS或者自动下载DEM先确认电脑能正常联网磁盘估算对照原始SAFE数据的体积确认剩余磁盘空间至少有它的10倍参考坐标系研究区的经纬度范围、UTM带号提前确认方便后续统一坐标系软件状态ENVI和SARscape能正常打开许可服务没被占用尤其是多用户共用一个许可的情况提前确认没人在跑批量任务。这套检查清单看起来琐碎但每一条背后都是我踩过的坑。特别是“许可服务被占用”这件事多人共用一套正版许可时经常出现别人正挂着SARscape批量处理任务你这边点任何工具都报错“process unexpectedly terminated”——不是你的操作问题是许可被挤占了等对方跑完再试就好了。5.4 延伸ENVI在SARscape之外的几个高频能力既然装的是ENVI只拿它跑SARscape其实有点浪费。最近搜索热词里“envi提取纹理特征”“envi做土地利用分类转移矩阵”也都是ENVI的经典场景。纹理特征提取用的是“Co-occurrence Measures”工具可以基于灰度共生矩阵输出均值、方差、对比度、熵等纹理波段常用于面向对象分类土地利用分类转移矩阵则是先用监督或非监督分类得到两个时相的分类图再用“Change Detection Statistics”做转移统计输出一个类别转移矩阵方便分析地类变化规律。这些功能和SARscape互相独立但可以形成互补。比如你在做InSAR形变监测时通常也想了解形变区域的土地利用类型变化这时候一个工作流就能同时跑干涉处理和分类分析最后的成果叠加在一起解释比单纯堆数据有说服力得多。我自己在项目里最常用的一套组合是先用SARscape做形变监测再把研究区的哨兵一号强度影像导入ENVI做纹理特征提取最后结合光学影像做地物分类把形变高值区对应到具体的地物类型上报告写出来特别有料。如果你正在做类似的项目可以参考这个思路。最后再说句实在话做InSAR别把希望全押在工具的自动化上。SARscape确实把很多复杂流程封装成了按钮但每个按钮背后的参数怎么选、结果怎么判断才是真正需要花时间琢磨的部分。第一次跑全流程难免遇到报错、结果异常、条纹和地形对不上这些问题——这都很正常。DEM尽量准备得细致一点参数从保守开始试每一个中间产物都打开看一眼跑完两三个研究区之后你就会发现那些看起来吓人的报错来来回回就是那几个原因排查起来也越来越快。
返回列表