一、使用 GAMMA 软件生成 DEM
GAMMA 是模块化的软件(主要在 Linux 下运行),流程需要一步步敲命令或写 Shell 脚本。
1. 数据预处理 (Modular/MSP/ISP)
读取数据: 将卫星原始数据(如 Sentinel-1, TerraSAR-X, ALOS)转换为 GAMMA 的 SLC 格式(par_S1_SLC 等命令)。
轨道状态向量提取: 获取精确的轨道信息,这对计算平地相位至关重要。
2. 影像配准 (Co-registration)
初始配准: 基于轨道信息进行粗配准 (rdc_trans)。
偏移量计算: 在影像上撒点计算相关性,确定精细偏移量 (create_offset, offset_pwr)。
重采样: 将辅像(Slave)重采样到主像(Master)的几何空间 (interp_ad)。
3. 干涉图生成 (Interferogram Generation)
生成干涉图: 主像与重采样后的辅像共轭相乘 (interf_SLC)。
去平地效应 (Flattening): 根据轨道信息和参考椭球体,去除“平地相位” (ph_slope_base)。如果有一个粗精度的参考 DEM (如 SRTM),建议利用参考 DEM 模拟相位并去除,生成“差分干涉图”,这样更有利于后续解缠。
4. 滤波与相干性计算 (Filtering & Coherence)
自适应滤波: 使用 Goldstein 或 adaptive filter 去除相位噪声 (adf, fspf)。
计算相干性图: 用于评估数据质量,相干性低的地方生成的 DEM 不可信 (cc_wave)。
5. 相位解缠 (Phase Unwrapping)
这是最关键的一步。将缠绕在 [−π,π] 之间的相位恢复为绝对相位。
算法: 常用最小费用流算法 (mcf) 或 分支切割法 (branch_cut)。
在此步骤中,通常会利用相干性图作为掩膜,只对高相干区域进行解缠。
6. 相位转高程 (Phase to Height)
绝对相位计算: 将解缠后的相对相位转换为绝对相位。如果使用了参考 DEM,需要把参考 DEM 的模拟相位加回去。
基线精炼 (Baseline Refinement): 利用地面控制点 (GCPs) 修正轨道基线参数,以减少系统性误差(如斜坡误差)。
高度计算: 利用相位与高度的几何关系计算每个像素的高程 (gc_map 或 hgt_map)。
7. 地理编码 (Geocoding)
将雷达坐标系(Range-Doppler)下的 DEM 转换到地图坐标系(如 UTM 或 Lat/Lon)。
生成最终的 .dem 或 .tif 文件 (geocode_back)。