最近 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 后缀

  1. 解缠建议先做火山口附近 局部窗口,更快也更稳

  2. 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

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐