InSAR时序分析的第一步是数据预处理,ISCE(InSAR Scientific Computing Environment)作为开源雷达干涉处理工具链,能够高效完成从原始数据到干涉图的转换。对于Sentinel-1数据,预处理流程主要包括数据下载、轨道校正、主影像选择、配准和干涉图生成等关键步骤。
以城市沉降监测为例,假设我们获取了覆盖成都平原区域的30景Sentinel-1数据。首先需要准备DEM数据,推荐使用SRTM 1弧秒或Copernicus 30米DEM。实际操作中,我习惯将DEM文件命名为包含经纬度信息的形式,比如demLat_N30_N31_Lon_E102_E103.dem.wgs84,这样后续处理时不容易混淆区域范围。
运行stackSentinel.py命令时,有几个参数需要特别注意:
-b参数指定处理范围时,建议比研究区域扩大5%左右的缓冲范围,避免边缘效应影响结果-c参数控制并行核数,实测在32核服务器上设置为8-12时效率最佳-m参数)推荐使用质量报告中最优的那一景,或者时间序列中间时相的影像预处理完成后,ISCE会生成config文件夹和run_files目录。这里有个实用技巧:可以先用--start=setup参数只生成运行文件而不立即执行,检查run_01_unpack_slc等文件中的参数是否正确。我在处理青藏高原数据时就曾发现,默认的多普勒中心频率计算在高海拔地区需要调整。
MintPy的威力在于其灵活的配置系统,通过参数文件可以精细控制时序分析的每个环节。根据我的项目经验,建议将配置分为基础参数、质量控制参数和高级参数三类。
在load_data部分,几何文件的正确关联至关重要。特别是当处理大区域时,要注意:
python复制mintpy.load.demFile = ../isceOutEx3/merged/geom_master/hgt.rdr
mintpy.load.lookupYFile = ../isceOutEx3/merged/geom_master/lat.rdr
mintpy.load.lookupXFile = ../isceOutEx3/merged/geom_master/lon.rdr
这三个文件必须来自同一处理批次,否则会导致地理编码错误。对于多子区处理,我通常会先测试mintpy.subset.lalo参数,确定最佳研究区域后再进行全流程处理。
参考点选择是影响结果可靠性的关键步骤:
python复制mintpy.reference.minCoherence = 0.5
这个阈值需要根据区域特性调整。在植被茂密区可以降到0.3,而城市区域建议保持0.5以上。有个实用技巧:先用view.py查看temporalCoherence.h5,选择稳定区域作为参考点。
解缠误差校正也是质量控制的重点:
python复制mintpy.unwrapError.method = bridging+phase_closure
对于存在河流或断裂带的区域,这种组合方法效果最好。去年处理三峡库区数据时,仅用bridging会残留约15%的误差,加入phase_closure后降到3%以下。
大气延迟校正是提升精度的关键步骤,MintPy提供三种主要方法:
python复制mintpy.troposphericDelay.method = height_correlation
mintpy.troposphericDelay.looks = 16
这种方法适合地形起伏明显的区域。在黄土高原项目中,设置looks=16能有效保留地形信号的同时去除大气影响。要注意的是,当区域高差小于200米时效果会打折扣。
对于平原地区,建议使用外部大气数据:
python复制mintpy.troposphericDelay.method = gacos
需要提前下载对应时相的GACOS数据。实测表明,这种方法能将RMS降低40-60%,特别是在雨季效果显著。
最后的速率估计阶段,有几个实用技巧:
python复制mintpy.velocity.excludeDate = 20200612,20210705
可以通过查看temporalCoherence值,排除质量较差的干涉对。对于长期监测项目,建议使用bootstrap方法评估不确定性:
python复制mintpy.velocity.bootstrap = yes
mintpy.velocity.bootstrapCount = 500
去年在怒江峡谷的滑坡监测项目中,我们通过参数调优将监测精度提升到了毫米级。这里分享几个关键经验:
首先在预处理阶段,由于地形陡峭,我们将DEM采样间隔从默认的30米调整为15米,并启用terrain_correction选项。在MintPy配置中,特别调整了以下参数:
python复制mintpy.load.ystep = 2
mintpy.load.xstep = 2
mintpy.networkInversion.shadowMask = yes
多视处理可以平衡分辨率和信噪比,而阴影掩膜在峡谷区域尤为重要。
对于滑坡这类非线性形变,建议在速度估计后,额外进行周期信号检测:
bash复制timeseries2velocity.py timeseries.h5 -o velocity.h5 --seasonal
这个命令可以识别出季节性形变分量,我们在怒江项目中就发现了降雨诱发的周期性滑移。
参数调优是个迭代过程,我的习惯是:
建立参数-效果对照表很有帮助,比如记录不同minCoherence值对应的有效点数变化。经过3-5轮调整,通常就能得到理想结果。