# Sentinel-1 系统增强总纲 日期:2026-05-10 本文作为 Sentinel-1 增强工作的主维护文档。后续如果继续推进 Sentinel-1 数据管理、D-InSAR 配对、Gamma/PyINT 生产和结果归档,优先维护本文;更细的调研材料保留为参考: - [SENTINEL1_DATA_MANAGEMENT_ADAPTATION_PLAN_20260510.md](SENTINEL1_DATA_MANAGEMENT_ADAPTATION_PLAN_20260510.md) - [SENTINEL1_DINSAR_GAMMA_ISCE2_FEASIBILITY_20260510.md](SENTINEL1_DINSAR_GAMMA_ISCE2_FEASIBILITY_20260510.md) ## 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 生产链: ```text Sentinel-1 数据池 -> 数据扫描与元数据入库 -> EOF 精轨管理与匹配 -> D-InSAR 轻量配对 -> 任务批次保存 -> Task 目录分发 -> s1_gamma_dinsar profile -> PyINT + Gamma 处理 -> 结果扫描与 catalog 发布 -> 生产管理 / 结果管理前端展示 ``` 关键原则: - Sentinel-1 不混进 LT-1 专用的 `lt1_gamma_dinsar` 或 `lt1_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` - 极化组合,例如 `DV`、`DH`、`SV`、`SH` - 起止时间 - 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 配对体系,但应使用独立策略: ```text sentinel1_dinsar_pairing ``` 第一阶段配对只做轻量预筛选: - 同一卫星族:`S1A` / `S1B` 可以互配,不按字面同卫星硬卡死。 - 同一成像模式:优先只支持 `IW`。 - 同一产品类型:优先只支持 `SLC`。 - 同一升降轨方向。 - 同一 relative orbit。 - 极化兼容,例如 `VV` 对 `VV`。 - footprint 重叠率达到阈值。 - 时间基线不超过阈值。 - master/slave 都能匹配 EOF。 不在配对阶段强制完成: - 真实垂直基线计算。 - burst 级精确公共覆盖计算。 - TOPS 配准质量判断。 - 解缠可行性判断。 这些应交给 Gamma/PyINT 的处理链路完成。配对阶段只负责筛出大概率可跑的候选对。 ## 5. 任务分发 Sentinel-1 D-InSAR 任务分发需要输出一个可复现的 Task 目录。 建议包含: ```text Task/ manifest.json pair.json input/ master/ slave/ orbit/ dem/ pyint/ .template ``` 分发开关建议: - 是否复制 EOF 到 Task 目录。 - 是否输出 ZIP 压缩包。 - 是否保留中间 SLC/RSLC 产物。 - 是否只发布核心结果。 如果生产目标是 PyINT/Gamma,Task 到 PyINT scratch 目录之间可以由 runner 再做一次结构化投放,把 master/slave ZIP 放入: ```text $SCRATCHDIR//DOWNLOAD/ ``` ## 6. Gamma/PyINT 生产 第一阶段新增 profile: ```text 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_meters` 与 `perpendicular_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 导出可直接交给生产或转移归档。 ### 阶段 3:Gamma/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 可追踪。 ### 阶段 5:ISCE2 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_meters` 与 `perpendicular_baseline_meters` 严格区分。 6. 真实垂直基线由 Gamma/PyINT 处理后回填。 7. ISCE2 Sentinel-1 TOPS 放到第二阶段。 这套边界可以把系统改造控制在数据管理、配对、分发、生产托管和结果管理范围内,把 SAR 处理精度交给 Gamma/PyINT,避免在配对阶段过度复杂化。