Files
insar-management-system-v2/docs/PYINT_LT1_DEM_GEOMETRY_CHAIN_EXPERIMENT_20260420.md
T

7.9 KiB
Raw Blame History

PyINT LT-1 DEM 几何链定位实验

日期: 2026-04-20
状态: 实验设计
目标问题: 验证 LT-1 在 PyINT/Gamma 中 coreg/init_offsetm 失败,是否由 DEM 本体问题引起,还是由 DEM 参与的几何映射链条引起

1. 结论先行

这轮实验不再直接回答“轨道是不是问题”,而是专门回答下面这个问题:

init_offsetm 报错里的大量 zero values in MLI1 image patch,究竟是 DEM 文件本身有问题,还是 DEM -> rdc_trans -> geocode -> mli0 这一条几何映射链条有问题。

当前更值得优先验证的是:

  1. HGTSIM 是否本身就存在异常空洞或覆盖错误
  2. lt0 是否把参考图映射到了错误位置
  3. mli0 的中心 512 x 512 patch 是否天然就是大面积 0
  4. mli0Samp 的有效重叠区是否根本不在图像中心

2. 已知事实

当前 coreg_gamma.py 的关键顺序是:

  • rdc_trans
  • geocode
  • create_diff_par
  • init_offsetm mli0 Samp diff0 1 1

也就是说,init_offsetm 当前比较的是:

  • MLI1 = mli0
  • MLI2 = Samp

而不是直接比较 DEM。

已完成的 A/C/D 轨道实验说明:

  1. 只改 state vectorinit_offsetm 的 zero-count 会下降
  2. 但下降后仍然失败
  3. ORB_filt_spline.py 已经基本认可重写后的轨道

这说明:

  • 轨道确实影响几何
  • 但当前失败不太像“只有轨道问题”
  • DEM 相关的几何映射链条值得单独定位

3. 三类假设

H1: DEM 本体问题

DEM 文件本身有问题,例如:

  • 覆盖范围不对
  • 裁剪窗口不对
  • sidecar / 投影信息不对
  • 高程值大面积异常或空洞

若 H1 成立,则更换 DEM 源后应显著改变 HGTSIMmli0 的空洞模式。

H2: DEM 几何链问题

DEM 文件本身可用,但 LT-1 导入几何、轨道或 generate_rdc_dem 中间步骤有问题,导致:

  • rdc_trans 查找表偏移
  • geocode 后的 mli0 被映射到错误位置
  • mli0 中心 patch 与 Samp 根本不重叠

若 H2 成立,则即使更换 DEM,本质失败形态也可能不变;但改变轨道或几何参数时,mli0 的零值分布会跟着变化。

H3: patch 选取问题

mli0Samp 不是完全不重叠,而是图像中心不是有效重叠区。

若 H3 成立,则:

  • 全图并非都坏
  • rpos/azpos 后,init_offsetm 可能在其他 patch 上能工作

4. 实验原则

这轮实验尽量不跑整条生产链,只盯 init_offsetm 之前的中间产物。

固定不变:

  • 同一批 3 景 LT-1 数据
  • 同一个 master: 20230726
  • 同一套 looks 参数
  • 同一份 PyINT/Gamma 环境

允许变化:

  • DEM 来源
  • 是否启用精轨重写
  • init_offsetm 的 patch 位置

优先观测对象:

  • HGTSIM
  • lt0
  • mli0
  • Samp
  • diff0

5. 分层实验设计

Layer 1: 不改 DEM,先看中间产物

目的: 判断当前 DEM 链条到底在哪一步开始“空掉”。

组 L1-A: 基线组

使用当前已经失败的 case,导出并统计:

  • HGTSIM
  • lt0
  • mli0
  • Samp

对每个文件都做:

  1. 全图零值比例
  2. 中心 512 x 512 patch 零值比例
  3. 中心 patch 的最小值、最大值、均值
  4. 快速可视化图

判定意义:

  • 如果 HGTSIM 自身就明显异常,优先怀疑 DEM 或 generate_rdc_dem
  • 如果 HGTSIM 正常而 mli0 异常,优先怀疑 lt0/geocode
  • 如果 mli0 正常但中心 patch 不在有效重叠区,优先怀疑 patch 选取

组 L1-B: 精轨重写对照组

复用已经跑过的精轨重写 case,只比较:

  • HGTSIM
  • mli0
  • Samp

判定意义:

  • 如果只改轨道,mli0 的零值分布就跟着变,说明问题不在 DEM 文件本体
  • 如果 HGTSIM 也明显变化,说明 DEM 映射结果强依赖 .slc.par 几何

Layer 2: 改 DEM 源,固定几何

目的: 判断 DEM 文件本身是否是主因。

组 L2-A: 当前 DEM

使用当前 prepared_dem_source,作为基线。

组 L2-B: 替代 DEM

推荐优先选一个同区域、同分辨率级别、不同来源的 DEM,例如:

  • 已有的另一份系统 DEM
  • 或成功 ENVI/IDL 任务中使用过的 DEM

要求:

  • 不改 .slc.par
  • 不改轨道
  • 只重跑 makedem_pyint -> generate_rdc_dem

判定意义:

  • 如果换 DEM 后 HGTSIM/mli0 明显改善,DEM 本体有嫌疑
  • 如果几乎不变,DEM 本体不是主因

组 L2-C: 合成平坦 DEM

用一个覆盖相同区域、常数高程的测试 DEM。

这组不是为了出正确结果,而是为了测试:

  • 失败是否强依赖真实地形起伏
  • 还是只要进入几何映射链就已经错位

判定意义:

  • 如果平坦 DEM 仍在同一位置失败,说明不是高程细节导致
  • 如果平坦 DEM 反而明显改善,则真实 DEM 参与的映射可能存在投影或裁剪问题

Layer 3: 不改 DEM,扫描 patch 位置

目的: 判断中心 patch 是否只是选错了地方。

方法:

  • 保持 mli0Sampdiff0 不变
  • 只改变 init_offsetm 的:
    • rpos
    • azpos
  • 在图像中心周围做稀疏网格扫描

推荐:

  • 先做 5 x 57 x 7 网格
  • patch 大小仍保持默认 512

每个点记录:

  • 是否报 zero-patch 错误
  • zero-count
  • 是否能进入下一步

判定意义:

  • 如果某些位置能通过,说明不是整幅图都坏,而是中心 patch 选取不对
  • 如果所有位置都报大面积 0,更像几何链整体错位

6. 关键观测指标

DEM 相关

  1. HGTSIM 是否生成成功
  2. HGTSIM 的全图与中心 patch 零值比例
  3. HGTSIM 是否存在明显空洞、条带或边界错切

几何映射相关

  1. lt0 是否可用
  2. mli0 的全图与中心 patch 零值比例
  3. mli0Samp 的有效像元重叠比例
  4. mli0Samp 是否在中心 patch 上具有相似纹理

init_offsetm 相关

  1. 是否仍失败在同一位置
  2. zero-count 是否显著下降
  3. 换 patch 位置后是否存在可工作区域

7. 推荐输出物

每轮实验至少产出:

  • 中间产物清单
  • 每个文件的统计 JSON
  • 快速可视化 PNG/TIF
  • 一张对照表

推荐的统计字段:

{
  "case": "L1-A_baseline",
  "file": "mli0",
  "width": 0,
  "lines": 0,
  "global_zero_ratio": 0.0,
  "center_patch_zero_ratio": 0.0,
  "center_patch_size": 512,
  "nonzero_overlap_with_samp": 0.0
}

8. 判定标准

支持“DEM 本体问题”的证据

  1. 更换 DEM 后,HGTSIMmli0 的空洞模式大幅变化
  2. 同一套几何下,只有某一份 DEM 会触发大面积零值
  3. 合成平坦 DEM 能显著改善中心 patch

支持“DEM 几何链问题”的证据

  1. HGTSIM 看起来基本正常,但 mli0 大面积为 0
  2. 只改轨道或 .slc.parmli0 零值分布就发生变化
  3. 换 DEM 后失败模式基本不变

支持“patch 选取问题”的证据

  1. 中心 patch 失败,但偏移后的 patch 可以工作
  2. mli0Samp 在全图上存在局部重叠区,只是中心不对

9. 推荐的最小闭环

不建议一上来就换很多 DEM。最小闭环应按这个顺序:

  1. 先做 Layer 1
    • 对现有基线 case 和精轨重写 case 提取 HGTSIM/lt0/mli0/Samp 统计和快视图
  2. 再做 Layer 3
    • 扫描 init_offsetmrpos/azpos
  3. 只有在 Layer 1/3 仍无法判断时,再做 Layer 2 换 DEM

原因:

  • 这能先区分“DEM 文件坏了”与“中心 patch 选错了”
  • 也能避免过早把问题全部甩给 DEM

10. 推荐下一步

推荐直接执行两个子实验:

  1. 中间产物审计实验
    • 把 A 组和 C 组的 HGTSIM/lt0/mli0/Samp 取出来做零值统计和快视图
  2. init_offsetm patch 扫描实验
    • 在同一 case 上只扫描 rpos/azpos

如果这两步做完后发现:

  • mli0 全图都坏,再优先查 generate_rdc_dem 和 LT-1 导入几何
  • 只有中心 patch 坏,再优先查 patch 选取
  • 换 DEM 才有明显改善,再回到 DEM 本体问题

这轮实验的目的不是立刻修好 coreg,而是把“DEM 文件问题”和“DEM 几何链问题”从概念判断变成可测的证据链。