GMTSAR 处理 NISAR 数据:以 Erta Ale 火山为例(附代码)
最近 GMTSAR(master)已经可以处理 NISAR RSLC 数据了。我这里用 NISAR 官方示例的 Erta Ale 火山干涉对跑了一遍,从下载、配准、干涉、(局部)解缠到地理编码都走通,并把脚本/结果打包放在 Zenodo,方便大家复现:https://zenodo.org/records/18398842
本文主要目的:给一份能跑通的最小流程 + 代码,不展开地球物理解释。
0. 环境与依赖
GMTSAR:master 版本 (不是6.6版本)
1.NISAR数据下载
本示例数据通过 ASF(Alaska Satellite Facility)ASF数据地址获取,选取 Erta Ale 火山区域的 NISAR L 波段 RSLC 影像,时间跨度为 2025-11-22 至 2025-12-04。

2. 目录结构
我用两个目录分别跑 LA/LB,输入数据用软链接共享,避免重复占空间:
LA/
raw/ (RSLC .h5)
topo/ (DEM)
LB/
raw/ (link -> LA/raw)
topo/ (link -> LA/topo)

3. 处理流程
整体步骤:预处理 → 配准 → 干涉生成与滤波 →(局部)解缠 → 地理编码
几个容易踩坑的点先说:
p2p_processing_nsr.csh 里输入文件名 不要带 .h5 后缀
-
解缠建议先做火山口附近 局部窗口,更快也更稳
-
LA/LB 用相同参数跑,最后对比结果一致性
用以下README.sh即可跑通
#!/usr/bin/env bash
# ============================================================
# P2P processing of NISAR LA/LB RSLC pairs with GMTSAR
#
# Author: Xin Wang (xinw) USTC
# Date : 2026-01
#
# Notes:
# - NISAR example includes two outputs (LA/LB; channel/sub-band products).
# - We process LA and LB in separate working directories to keep outputs clean.
# - Optionally, you can apply region_cut early (for quick tests on a small ROI).
# - This workflow follows the standard GMTSAR P2P style used for other satellites.
#
# Example pair (edit as needed):
# - Master: NISAR_L1_PR_RSLC_..._20251122...
# - Slave : NISAR_L1_PR_RSLC_..._20251204...
# ============================================================
set -euo pipefail
# -----------------------------
# 0) User settings (edit these)
# -----------------------------
PAIR_A_1="NISAR_L1_PR_RSLC_005_172_A_008_2005_DHDH_A_20251122T024618_20251122T024652_X05007_N_F_J_001"
PAIR_A_2="NISAR_L1_PR_RSLC_006_172_A_008_2005_DHDH_A_20251204T024618_20251204T024653_X05007_N_F_J_001"
# DEM region (lon_min lon_max lat_min lat_max) and DEM resolution flag
DEM_REGION="40 43.2 11.3 14.3"
DEM_RES="1"
# snaphu unwrap window (edit to your ROI)
# Format: xmin/xmax/ymin/ymax (in radar coordinates used by GMTSAR outputs)
UNW_WIN="18000/23000/49000/53200"
# -----------------------------
# 1) Create working directories
# -----------------------------
mkdir -p LA LB
# -----------------------------
# 2) Generate configs (LA/LB)
# -----------------------------
cd LB
pop_config.csh NSR_B > config_NSR_B.txt
cd ..
cd LA
pop_config.csh NSR_A > config_NSR_A.txt
# -----------------------------
# 3) Prepare input data in LA
# -----------------------------
mkdir -p raw
# Download RSLCs (example: ASF Vertex/HyP3 script output)
# NOTE: please ensure the script downloads .h5 into ./LA/raw/
python3 download-all-2026-01-26_12-35-01.py
# -----------------------------
# 4) Build DEM (shared by LA/LB)
# -----------------------------
mkdir -p topo
cd topo
make_dem.csh ${DEM_REGION} ${DEM_RES}
cd ..
# -----------------------------
# 5) Share inputs from LA to LB (soft links)
# (Avoid duplicating big files)
# -----------------------------
cd ../LB
mkdir -p topo raw
cd topo
ln -sf ../LA/topo/dem.grd .
cd ..
cd raw
ln -sf ../LA/raw/NISAR*h5 .
cd ..
# -----------------------------
# 6) Run P2P processing for LA
# IMPORTANT: do NOT include ".h5" suffix in filenames
# -----------------------------
cd ../LA
p2p_processing_nsr.csh NSR_A \
"${PAIR_A_1}" \
"${PAIR_A_2}" \
config_NSR_A.txt
# Unwrap (local window) + geocode
# NOTE: adjust UNW_WIN for your ROI; keep it small for faster tests
snaphu.csh 0.1 0 "${UNW_WIN}"
geocode.csh 0.1
# Tip: you may want to archive / publish the "intf" directory after this step
# e.g., tar -czf LA_intf.tgz intf
# -----------------------------
# 7) Run P2P processing for LB
# -----------------------------
cd ../LB
p2p_processing_nsr.csh NSR_B \
"${PAIR_A_1}" \
"${PAIR_A_2}" \
config_NSR_B.txt
snaphu.csh 0.1 0 "${UNW_WIN}"
geocode.csh 0.1
# -----------------------------
# 8) Next step (TODO)
# -----------------------------
# Ionosphere correction is recommended for challenging cases,
# especially for L-band and disturbed ionospheric conditions.
# Next: add a script for ionosphere estimation/correction (e.g., split-spectrum approach).
4. 结果
主要看每个目录下的 intf/:
-
correlation / coherence
-
wrapped phase
-
unwrapped / LOS displacement
-
phase gradient(xphase/yphase)
-
png/pdf/kml/grd 等可视化与网格产品

5. 结果与说明
Erta Ale 火山口附近条纹很清楚,LA/LB 两套结果空间形态一致,说明这套 NISAR 示例数据已经能顺利接入 GMTSAR 的干涉处理链路。复杂环境下 L 波段可能需要额外做电离层处理。

NISAR Erta Ale 干涉对处理结果。上:correlation(相干性/相关系数);下:wrapped phase(缠绕相位)。黄框标出火山口附近异常区;LA/LB 两套输出在异常区形态一致。

图3. Erta ALe火山喷发InSAR形变场。左:wrapped phase;右:LOS 位移。LA/LB 两套结果在空间形态与位移量级上保持一致

Erta ALe火山相位梯度图。
6. 资料与下载
处理结果与脚本已上传 Zenodo:
https://zenodo.org/records/18398842
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)