11 KiB
11 KiB
D-InSAR 增强 Task 文档
更新日期:2026-03-13
1. 文档目的
这份文档用于统一管理本轮 D-InSAR 系统重构任务,覆盖以下两大方向:
- D-InSAR 多引擎生产系统增强
- D-InSAR 结果管理系统增强
文档定位是“任务总表 + 实施边界 + 验收口径”,用于后续分阶段实施、联调和运维验收。
2. 背景
当前系统的 D-InSAR 生产能力主要绑定在 ENVI + SARscape 链路上,前端、后端任务模型、运行监控和结果入库都默认只有一个处理引擎。这会带来两个直接问题:
- 客户如果没有 ENVI/SARscape license,D-InSAR 核心生产能力会直接失效。
- 后续接入 ISCE2、LANDSAR 时,只能继续堆在现有 IDL/ENVI 语义上,导致架构持续恶化。
同时,当前 D-InSAR 结果管理能力偏轻,更多是“结果浏览 + 缓存管理”,还不足以支撑多引擎、多版本、多产物、多轮生产的正式管理需求。
3. 本轮目标
3.1 生产系统目标
- 将 D-InSAR 生产系统升级为“多引擎生产中心”
- 正式支持两类可执行引擎:
sarscape:ENVI + SARscapeisce2:WSL 内部署的 ISCE2
- 预留第三类引擎:
landsar:仅保留接口和前端占位,不实现算法
- 将运维自检升级为“系统级 + D-InSAR 专项级”双层检查
3.2 结果管理目标
- 将 D-InSAR 结果从“单文件记录”升级为“可追踪、可治理、可比对”的结果资产
- 支持来源追踪、版本管理、多产物管理、审核状态和运维治理
- 让结果管理适配多引擎场景,而不是继续依赖单一文件命名和单一路径假设
4. 范围与非范围
4.1 本轮范围
- 多引擎 D-InSAR 后端抽象层
- 新 D-InSAR 生产中心前端架构
- ENVI/SARscape 的兼容接入
- ISCE2 的 WSL 环境校验与运行接口
- 运维自检与 D-InSAR 专项健康检查
- D-InSAR 结果管理增强
4.2 明确不在本轮范围
- LANDSAR 算法实现
- 对现有配对算法本身做大幅重写
- 对 AI 诊断能力做独立重构
- 一次性替换全部旧接口
5. 现状要点
5.1 ENVI 现有处理模式
当前 ENVI 侧应明确建模为 sarscape 引擎下的两种 profile:
metataskcustom6
其中 custom6 的 6 步链路为:
- Interferogram Generation
- Filtering and Coherence
- Orbital Trend Removal
- Phase Unwrapping
- GCP Generation + Refinement
- Phase to Displacement + Geocoding
5.2 ISCE2 的特殊约束
ISCE2 不走本机 Windows 直接执行链路,默认按 WSL 方式部署与运行,因此必须把 WSL 环境校验设计成正式能力,而不是上线前人工检查事项。
5.3 当前结果管理主要短板
- 结果记录字段偏少,缺少引擎来源、运行来源、版本、产物类型等核心字段
- 结果入库逻辑仍偏向单文件扫描,不适合多引擎多版本
- 前端结果面板偏重展示,缺少治理、比对、版本和来源追踪能力
- 运维自检尚未覆盖结果资产层面的异常
6. Task 总览
| Task ID | 主题 | 目标 |
|---|---|---|
| T1 | 多引擎生产基座 | 建立统一的 D-InSAR 引擎抽象、调度和兼容层 |
| T2 | 前端生产中心 | 将现有 IDL 自动化面板升级为多引擎生产中心 |
| T3 | SARSCAPE 兼容接入 | 将现有 ENVI 链路适配到新抽象层 |
| T4 | ISCE2 + WSL 接入 | 建立 ISCE2 的 WSL 检查、运行和日志链路 |
| T5 | 运维自检增强 | 增加多引擎专项健康检查和自愈入口 |
| T6 | 结果管理增强 | 将 D-InSAR 结果升级为正式结果资产管理体系 |
7. 任务拆分
T1. 多引擎生产基座
目标
- 将 D-InSAR 生产从
IDL/ENVI 单引擎假设中抽离 - 为
sarscape、isce2、landsar建立统一抽象
关键任务
- 定义统一引擎接口
- 建立引擎注册表
- 建立统一运行记录模型
- 建立统一产物收集与入库接口
- 保留旧
/idl/...路由兼容转发能力
目标结构
dinsar_engines/base.pydinsar_engines/registry.pydinsar_engines/sarscape_engine.pydinsar_engines/isce2_engine.pydinsar_engines/landsar_engine.pydinsar_orchestrator.py
验收标准
- 新生产调度层可按
engine_code分发 sarscape、isce2、landsar均可在注册表中查询到- 旧 ENVI 生产功能不回归
T2. 前端生产中心
目标
- 用统一生产中心替代当前单引擎
IDLAutomationPanel - 支持多引擎选择、运行监控、日志查看和结果入库操作
前端信息架构
- 引擎状态区
- SARSCAPE
- ISCE2
- LANDSAR
- 生产提交区
- 批次选择
- 引擎选择
- profile 选择
- 输入/输出目录
- 参数模板
- 运行监控区
- 当前任务
- 步骤进度
- 运行日志
- 历史记录
- 产物处理区
- 提取
- 入库
- 重扫
- 缓存重建
关键任务
- 新建
DinsarProductionPanel - 废弃前端对
/idl/...语义的直接依赖 - 增加引擎状态卡和 WSL 状态卡
- 运行记录中展示
engine、profile、run_id
验收标准
- 前端可以清晰区分三类引擎状态
landsar显示为预留,不可执行- 当 ENVI 不可用但 ISCE2 可用时,页面仍可提交 ISCE2 任务
T3. SARSCAPE 兼容接入
目标
- 将现有 ENVI 链路正式纳入新生产体系
- 明确
metatask与custom6是同一引擎下的两个 profile
关键任务
- 封装现有 ENVI 运行逻辑为
sarscape_engine - 将
metatask和custom6暴露为 profile - 保留进度文件、日志、超时监控和历史运行能力
验收标准
- 旧 ENVI 作业仍可执行
- 新系统中可选择
sarscape/metatask与sarscape/custom6 - 原有任务状态、日志和结果提取行为保持兼容
T4. ISCE2 + WSL 接入
目标
- 建立 ISCE2 运行的正式环境检查、任务执行和输出接入能力
WSL 环境校验任务
- 检查 WSL 是否安装
- 检查是否支持 WSL2
- 检查目标 distro 是否存在
- 检查目标 distro 是否可启动
- 检查
bash -lc是否可执行 - 检查 Python 是否可执行
- 检查 ISCE2 是否可 import
- 检查目标入口命令是否可执行
- 检查 DEM 路径在 WSL 内是否可读
- 检查轨道目录在 WSL 内是否可读
- 检查输出目录在 WSL 内是否可写
- 检查 Windows 路径到 WSL 路径转换是否正确
- 增加可选 smoke test
建议配置项
ISCE2_ENABLEDISCE2_WSL_DISTROISCE2_PYTHONISCE2_PROFILEISCE2_DEM_PATHISCE2_ORBIT_DIRISCE2_WORK_ROOTISCE2_OUTPUT_ROOTISCE2_SMOKE_TEST_ENABLED
关键任务
- 新建
wsl_service.py - 新建
isce2_engine.py - 建立 WSL 执行和日志封装
- 将 ISCE2 输出纳入统一结果收集和入库流程
验收标准
- 前端可见 ISCE2 环境状态
- WSL 校验结果可解释、可定位故障点
- ISCE2 至少有一个正式 profile 可提交并跑通
T5. 运维自检增强
目标
- 将当前“系统健康检查”升级为“系统级 + D-InSAR 专项级”双层运维自检
关键任务
- 保留现有
/health简版接口 - 增加管理员详细健康接口
- 增加多引擎专项检查
- 增加 WSL 专项检查
- 增加 D-InSAR 队列、存储、结果一致性检查
- 增加自愈动作入口
专项健康检查项
- 核心服务状态
- 数据库
- schema
- worker
- queue
- 引擎状态
sarscapeisce2landsar
- WSL 状态
- DEM/轨道/输出目录可用性
- D-InSAR 运行任务积压
- stale run 检测
- 输出未入库检测
- 入库但源文件缺失检测
- 缓存一致性检测
自愈入口建议
- 重扫结果目录
- 重建缓存
- 重试入库
- 重置 stale run
- 标记失效结果
验收标准
- 运维面板能区分系统级故障与引擎级故障
- 当 ENVI 不可用但 ISCE2 可用时,总体 D-InSAR 服务状态应为
degraded或ok,不能直接判全系统失败 - WSL 故障能定位到具体检查项
T6. 结果管理增强
目标
- 将 D-InSAR 结果从“扫描到的一条文件记录”升级为“正式结果资产”
核心设计
Run- 一次真实生产执行
Artifact- 一次运行产出的具体文件
Managed Result- 面向前端与业务的主结果对象
关键任务
- 扩充结果模型字段
- 增加结果来源追踪
- 增加版本管理
- 增加多产物管理
- 增加结果生命周期状态
- 增加批量治理能力
- 增加多引擎结果对比能力
结果管理能力清单
- 来源追踪
- engine
- profile
- batch
- pair
- run
- 版本管理
- 当前版本
- 历史版本
- 最新成功版本
- 多产物管理
- disp
- coherence
- unwrapped phase
- geotiff
- browse
- log
- 生命周期管理
NEWINGESTEDQC_PENDINGQC_PASSEDQC_REJECTEDPUBLISHEDARCHIVED
- 批量操作
- 发布
- 归档
- 重扫
- 重建缓存
- 重绑定来源
- 导出
- 检索增强
- 按引擎
- 按批次
- 按任务名
- 按状态
- 按 AOI
- 按版本
前端结果管理架构建议
- 结果列表视图
- 结果详情视图
- 来源与版本视图
- 治理与运维视图
运维治理项
- 入库记录存在但源文件缺失
- run 存在但 artifact 缺失
- 当前版本指针异常
- 同名结果冲突
- 缓存与主文件不一致
- 已发布结果未完成审核
验收标准
- 同一对影像允许保留多引擎结果
- 同一任务允许保留多版本
- 结果详情页能追踪到来源 run 和主产物列表
- 运维面板可识别结果资产层异常
8. 实施顺序
Phase 1
- 完成多引擎与结果管理设计冻结
- 完成接口契约
- 完成数据模型草案
Phase 2
- 实现后端抽象层
- 完成 SARSCAPE 兼容接入
- 保持旧接口兼容
Phase 3
- 实现新前端生产中心
- 实现引擎状态、运行监控和运维自检增强
Phase 4
- 接入 ISCE2 + WSL
- 打通首条正式生产链
Phase 5
- 实现结果管理增强
- 补齐版本、来源、治理与自愈
9. 交付顺序建议
建议按照以下顺序落地:
- 先重构生产抽象层,不先碰最终结果治理细节
- 先让
sarscape在新体系下跑通 - 再接入
isce2 - 最后再把结果管理全面升级
这样可以避免在“生产链尚未稳定”时提前锁死结果模型细节。
10. 当前结论
本轮不应被理解为“给当前 ENVI 面板再加一个 ISCE2 按钮”,而应被理解为:
- D-InSAR 生产系统平台化
- D-InSAR 结果资产化
- 运维自检从系统健康升级为多引擎专项健康
后续所有开发任务、联调任务和运维验收,均以本 Task 文档为总入口。