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

11 KiB
Raw Blame History

Sentinel-1 系统增强总纲

日期:2026-05-10

本文作为 Sentinel-1 增强工作的主维护文档。后续如果继续推进 Sentinel-1 数据管理、D-InSAR 配对、Gamma/PyINT 生产和结果归档,优先维护本文;更细的调研材料保留为参考:

1. 总体目标

让当前系统能够管理 Sentinel-1 数据,并把 Sentinel-1 D-InSAR 生产纳入现有生产管理和结果管理体系。

推荐边界是:

  • 系统负责数据管理、元数据解析、精轨匹配、配对、任务分发、生产调度、日志、结果归档和前端展示。
  • Gamma + PyINT 负责 Sentinel-1 D-InSAR 的处理内核,包括 SLC 导入、burst 裁剪、TOPS 配准、差分干涉、解缠和地理编码。
  • ISCE2 Sentinel-1 TOPS 作为后续可选 profile,不作为第一阶段主线。

第一阶段不要求系统自己实现 SAR 核心算法,也不要求配对阶段计算真实垂直基线。

2. 总体架构

建议新增一条独立 Sentinel-1 Gamma 生产链:

Sentinel-1 数据池
  -> 数据扫描与元数据入库
  -> EOF 精轨管理与匹配
  -> D-InSAR 轻量配对
  -> 任务批次保存
  -> Task 目录分发
  -> s1_gamma_dinsar profile
  -> PyINT + Gamma 处理
  -> 结果扫描与 catalog 发布
  -> 生产管理 / 结果管理前端展示

关键原则:

  • Sentinel-1 不混进 LT-1 专用的 lt1_gamma_dinsarlt1_stripmap
  • 新增 s1_gamma_dinsar profile 作为第一阶段生产入口。
  • 真实 perpendicular_baseline_meters 由 Gamma/PyINT 在生成 SLC/RSLC 后计算或回填。
  • footprint 质心距离只能叫 centroid_distance_meters,不能再叫空间基线。

3. 数据管理

3.1 支持的数据形态

第一阶段建议以 Sentinel-1 SLC ZIP 为生产标准输入。

系统可以管理两类形态:

  • .SAFE 目录:适合浏览、入库、解析元数据。
  • .zip 原始产品:适合 PyINT/Gamma 生产分发。

如果数据池只有 .SAFE 目录,也可以入库和配对;但进入 PyINT/Gamma 生产时,建议要求关联原始 ZIP。原因是 D:\Code\PyINT 的 Sentinel-1 脚本默认从 DOWNLOAD/S1*.zip 发现和导入数据。

3.2 元数据解析

文件名可以提供粗信息:

  • S1A / S1B
  • IW / EW / SM
  • SLC
  • 极化组合,例如 DVDHSVSH
  • 起止时间
  • absolute orbit
  • datatake id / product id

可靠配对还需要从 manifest.safe 或 annotation XML 中解析:

  • relative orbit
  • 升降轨方向
  • footprint
  • swath / burst 相关信息
  • 更完整的极化和产品结构

建议采用“关键列 + JSON 扩展”的模型。关键列服务检索、筛选和配对;JSON 保存 Sentinel-1 专有细节,避免一开始改出大量窄字段。

3.3 精轨管理

Sentinel-1 EOF 不走 LT-1 的精轨转换链路。

建议新增 Sentinel-1 EOF 管理逻辑:

  • 扫描 .EOF 文件。
  • 解析 mission、validity start、validity stop、generation time。
  • 按影像 acquisition time 匹配覆盖该时段的 EOF。
  • 允许把匹配到的 EOF 复制到 Task 目录。
  • PyINT runner 将 EOF 目录作为 OPOD_DIR 暴露给 PyINT/GAMMA。

这样可以避免生产时临时联网下载精轨,也便于任务复现。

4. D-InSAR 配对

Sentinel-1 配对适合嵌入现有 D-InSAR 配对体系,但应使用独立策略:

sentinel1_dinsar_pairing

第一阶段配对只做轻量预筛选:

  • 同一卫星族:S1A / S1B 可以互配,不按字面同卫星硬卡死。
  • 同一成像模式:优先只支持 IW
  • 同一产品类型:优先只支持 SLC
  • 同一升降轨方向。
  • 同一 relative orbit。
  • 极化兼容,例如 VVVV
  • footprint 重叠率达到阈值。
  • 时间基线不超过阈值。
  • master/slave 都能匹配 EOF。

不在配对阶段强制完成:

  • 真实垂直基线计算。
  • burst 级精确公共覆盖计算。
  • TOPS 配准质量判断。
  • 解缠可行性判断。

这些应交给 Gamma/PyINT 的处理链路完成。配对阶段只负责筛出大概率可跑的候选对。

5. 任务分发

Sentinel-1 D-InSAR 任务分发需要输出一个可复现的 Task 目录。

建议包含:

Task/
  manifest.json
  pair.json
  input/
    master/
      <S1 master zip or SAFE>
    slave/
      <S1 slave zip or SAFE>
    orbit/
      <matched EOF files>
    dem/
      <optional dem reference or config>
  pyint/
    <project>.template

分发开关建议:

  • 是否复制 EOF 到 Task 目录。
  • 是否输出 ZIP 压缩包。
  • 是否保留中间 SLC/RSLC 产物。
  • 是否只发布核心结果。

如果生产目标是 PyINT/GammaTask 到 PyINT scratch 目录之间可以由 runner 再做一次结构化投放,把 master/slave ZIP 放入:

$SCRATCHDIR/<project>/DOWNLOAD/

6. Gamma/PyINT 生产

第一阶段新增 profile

s1_gamma_dinsar

它应独立于当前 lt1_gamma_dinsar

推荐 runner 行为:

  1. 读取 Task manifest 和 pair 信息。
  2. 创建 PyINT project 目录。
  3. 复制或链接 master/slave Sentinel-1 ZIP 到 DOWNLOAD/
  4. 准备 EOF / OPOD 目录。
  5. 写入 PyINT template。
  6. 调用 Sentinel-1 PyINT 脚本链。
  7. 收集每一步日志和退出码。
  8. 扫描输出产物并发布到系统结果 catalog。

可复用的 D:\Code\PyINT Sentinel-1 脚本包括:

  • pyint/down2slc_sen.py
  • pyint/down2slc_sen_all.py
  • pyint/extract_s1_bursts.py
  • pyint/coreg_s1_gamma.py
  • pyint/raw2ifg_s1.py
  • pyint/select_pairs.py

生产系统不建议直接无控制地调用完整 app,而应显式控制步骤、日志、失败原因和产物发布。

7. 结果管理

PyINT/Gamma 生产结束后,系统负责结果归档。

第一阶段建议发布:

  • pair manifest
  • PyINT template
  • 全量日志
  • preflight 报告
  • SLC/RSLC 生成状态
  • 共同 burst 检查结果
  • interferogram
  • coherence
  • unwrapped phase
  • geocoded result
  • quicklook
  • 真实 perpendicular_baseline_meters

结果管理应复用现有生产结果 catalog,不新建一套孤立页面。前端仍然从生产管理和结果管理入口查看,只是引擎 profile 显示为 s1_gamma_dinsar

8. 前端入口

前端需要在现有页面中增强,而不是新增一个割裂的 Sentinel-1 子系统。

建议改动范围:

  • 数据管理页面支持 Sentinel-1 过滤、详情和 EOF 匹配状态。
  • 配对页面新增 Sentinel-1 策略和参数。
  • 配对结果中显示 relative orbit、升降轨、极化、时间基线、重叠率和 EOF 状态。
  • 生产管理中支持 s1_gamma_dinsar profile。
  • 任务分发 UI 中增加 EOF 复制和 ZIP 导出开关。
  • 结果详情中显示 PyINT/Gamma 日志、核心产物和真实垂直基线。

第一阶段不需要让用户配置所有 PyINT template 字段。可以只暴露少量参数,其余使用系统默认值。

9. 数据库和自检

本系统有数据库自维护和系统自检机制,Sentinel-1 增强必须纳入这两部分。

需要评估的数据库变更:

  • Sentinel-1 关键元数据字段是否已有通用列可复用。
  • relative orbit、acquisition start/stop、source archive path、orbit match status 是否需要新增列。
  • Sentinel-1 专有元数据是否放入 JSON 扩展字段。
  • pairing cache 是否需要保存 centroid_distance_metersperpendicular_baseline_meters 的区分。
  • 生产结果 catalog 是否需要新增 engine profile 或产品类型枚举。

自检需要增加:

  • Sentinel-1 数据根目录是否存在。
  • EOF 根目录是否存在。
  • Sentinel-1 解析器是否可用。
  • s1_gamma_dinsar profile 是否启用。
  • PyINT 路径是否存在。
  • GAMMA 环境是否可用。
  • eof 工具是否可用。
  • 关键 GAMMA/PyINT 命令是否可调用。
  • DEM 配置是否完整。

任何 schema 改动都必须同步数据库自维护逻辑,避免启动时 schema check 报错。

10. 分阶段实施

阶段 1:数据管理和配对

目标:

  • Sentinel-1 SAFE / ZIP 可扫描入库。
  • 基础元数据和 footprint 可解析。
  • EOF 可扫描、匹配和显示。
  • Sentinel-1 配对可生成候选对。
  • 配对不进入生产也能保存批次。

验收:

  • 同一 relative orbit 的 S1 数据能被正确筛出。
  • 不同方向、不同 relative orbit、不同模式的数据不会误配。
  • footprint 重叠率和时间基线显示正确。
  • EOF 状态清晰可见。

阶段 2:任务分发

目标:

  • Sentinel-1 pair 可分发为 Task 目录。
  • 可选复制 EOF。
  • 可选导出 ZIP。
  • manifest 可复现输入数据和参数。

验收:

  • Task 目录包含 master/slave、EOF、pair manifest、profile 参数。
  • ZIP 导出可直接交给生产或转移归档。

阶段 3Gamma/PyINT 生产

目标:

  • 新增 s1_gamma_dinsar profile。
  • 托管调用 PyINT/Gamma 完成单对 Sentinel-1 D-InSAR。
  • 生产日志进入系统。

验收:

  • 至少一对 Sentinel-1 SLC ZIP 能跑通到 geocoded 结果。
  • 失败时能看到明确步骤和原因。
  • 真实垂直基线可以回填或记录。

阶段 4:结果管理

目标:

  • PyINT/Gamma 产物进入现有结果 catalog。
  • 前端可以查看日志、manifest、quicklook 和核心产物。

验收:

  • 用户不需要进入 PyINT 工作目录即可查看结果。
  • 结果与 pair、task、engine profile 可追踪。

阶段 5ISCE2 Sentinel-1 可选增强

目标:

  • 新增 s1_tops profile。
  • 使用 ISCE2 topsApp.py 或 topsStack。
  • 与 Gamma 路线共享数据管理和 EOF 管理。

验收:

  • 不污染现有 LT-1 lt1_stripmap runner。
  • Sentinel-1 TOPS 生产有独立健康检查、日志和结果发布。

11. 主要风险

  • 数据池只保留 .SAFE,没有原始 ZIP,会增加 PyINT/Gamma 接入复杂度。
  • EOF 匹配不稳定会导致生产不可复现。
  • Sentinel-1 annotation XML 解析不完整会影响 relative orbit、方向和 footprint。
  • 中间产物体积大,SLC/RSLC 保留策略要可配置。
  • PyINT 专家代码可用,但生产系统仍要做日志、失败分类和输出扫描。
  • ISCE2 Sentinel-1 虽然可行,但当前系统没有 tops profile,不能当作低成本改动。

12. 当前推荐决策

建议确认以下产品决策后再进入代码实现:

  1. Sentinel-1 生产第一阶段要求保留原始 SLC ZIP。
  2. 配对策略命名为 sentinel1_dinsar_pairing
  3. 生产 profile 命名为 s1_gamma_dinsar
  4. 第一阶段只支持 IW + SLC + 同 relative orbit + 同方向 + 兼容极化
  5. centroid_distance_metersperpendicular_baseline_meters 严格区分。
  6. 真实垂直基线由 Gamma/PyINT 处理后回填。
  7. ISCE2 Sentinel-1 TOPS 放到第二阶段。

这套边界可以把系统改造控制在数据管理、配对、分发、生产托管和结果管理范围内,把 SAR 处理精度交给 Gamma/PyINT,避免在配对阶段过度复杂化。