ISCE参数
在遥感和地理信息领域,合成孔径雷达干涉测量(InSAR) 是研究地表形变、地震活动、冰川运动以及城市沉降的重要技术。Sentinel-1 卫星 提供了高质量的 TOPS SAR 数据,但其处理流程较为复杂。为了解决这一问题,ISCE的stackSentinel.py 提供了一个自动化的处理工具,使得研究人员可以高效地完成数据预处理、影像配准、干涉图计算、相位解缠等工作。
本篇文章将深入解析 stackSentinel.py 的用法,帮助你掌握 Sentinel-1 InSAR 数据处理的核心步骤。
1. stackSentinel.py 是什么?
stackSentinel.py 是一个 Python 脚本,用于准备Sentinel-1 时序堆栈(stack) 处理的目录结构和配置文件。它支持:
影像预处理(SLC 影像、轨道数据、DEM)
影像配准(几何配准/NESD 配准)
干涉图计算(相干性、多视处理、滤波)
相位解缠(ICU/Snaphu 方法)
电离层校正
GPU 加速 & 并行计算
2. stackSentinel.py 关键参数解析
📌 输入数据
为了运行 stackSentinel.py,你需要准备: ✅ SLC 影像数据(-s 参数)
✅ 轨道数据(精轨)(-o 参数)
✅ 辅助文件(-a 参数)
✅ DEM(数字高程模型)(-d 参数)
工作流 作用
slc 处理原始 SLC 影像
correlation 计算影像相关性
interferogram 生成干涉图(默认)
offset 计算偏移量
研究区域
可以通过 -b 设置研究区域的边界
时间筛选
可以设定要处理的时间范围:
stackSentinel.py --start_date 2015-01-23 --stop_date 2017-02-26
如果只想处理特定日期,可以:
stackSentinel.py -i "20141007,20141031"
或排除某些日期:
stackSentinel.py -x "20141007,20141031"
影像配准
影像配准(coregistration)是 InSAR 处理的关键步骤,stackSentinel.py 提供 两种配准方式:
geometry(几何配准)
NESD(基于噪声等效信号延迟计算,更精确,默认)
干涉图计算
多视处理(Multi-looking)
方位向(Azimuth)多视因子:-z
距离向(Range)多视因子:-r
默认 3x9,可减少噪声,提高信号质量
stackSentinel.py -z 3 -r 9
干涉图滤波(Filtering)
-f 控制滤波强度,默认 0.5
相位解缠
相位解缠是从干涉图获取高精度形变信息的关键步骤。stackSentinel.py 提供两种解缠方法:
方法 适用场景
icu 适用于高相干区域
snaphu(默认) 适用于低相干区域
电离层校正
电离层对 SAR 信号的影响不可忽视,stackSentinel.py 允许进行电离层误差估计:
GPU 加速 & 并行计算
如果你想让 stackSentinel.py 更快,可以启用 GPU 加速 和 多进程:
stackSentinel.py -useGPU --num_proc 4
其中:
-useGPU:开启 GPU 加速
--num_proc:设置并行进程数(推荐 4~8)
--num_proc4topo:用于地形计算的并行进程
完整命令示例如下:
stackSentinel.py \
-s /data/SLCs \
-o /data/orbits \
-a /data/aux \
-d /data/DEM \
-b "19 20 -99.5 -98.5" \
--start_date 2015-01-01 --stop_date 2020-12-31 \
-W interferogram \
-C NESD \
-z 3 -r 9 -f 0.7 \
-u snaphu -rmFilter \
--num_proc 4 -useGPU
这条命令的作用: ✅ 处理 SLC 影像
✅ 选取 2015-2020 年数据,限制处理范围
✅ 采用 NESD 配准
✅ 生成 干涉图 并应用滤波
✅ 进行 相位解缠
✅ 开启 GPU 并行计算 🚀