110 lines
4.3 KiB
Markdown
110 lines
4.3 KiB
Markdown
# InSAR Management System v2
|
|
|
|
面向内网运行环境的 InSAR 数据管理、生产调度、结果发布与运维自检系统。
|
|
|
|
当前项目已经从“以 D-InSAR 结果扫描为中心”的旧形态,收口为“地图主界面 + 生产管理工作台 + 统一结果目录 + 数据库自维护”的架构。
|
|
|
|
## 当前状态
|
|
|
|
- 顶级生产入口已经统一为“生产管理”。
|
|
- “生产管理”同时承载 D-InSAR 运行、时序 InSAR 运行、D-InSAR 产物、时序 InSAR 产物。
|
|
- 前端显示名已经统一为“时序 InSAR”;当前默认接入的是 SBAS 流程,后续可继续扩展 PS-InSAR、SBAS-InSAR 等子类型。
|
|
- D-InSAR 当前支持 `sarscape` 与 `isce2` 两类引擎;`gamma / pyint` 已按共享 WSL 运行时模型预留接口。
|
|
- 结果目录已经统一发布到 `RESULT_PUBLISH_ROOT`,默认根目录为 `D:\production_results`。
|
|
|
|
## 当前有效目录约定
|
|
|
|
- D-InSAR 发布根目录:`D:\production_results\dinsar`
|
|
- 时序 InSAR 发布根目录:`D:\production_results\timeseries`
|
|
- 隔离目录:`D:\production_results\_quarantine`
|
|
- WSL Broker 作业目录:`backend\runtime\wsl_jobs`
|
|
|
|
说明:
|
|
|
|
- 现在的文件系统事实来源是 `RESULT_PUBLISH_ROOT` 及其下属目录,不再是历史性的 `backend\result_products` 目录。
|
|
- 数据库里的 `result_products / result_assets / result_issues` 表仍然保留,并继续作为结果登记与检索的核心表结构。
|
|
|
|
## 启动时自维护链路
|
|
|
|
后端启动时会按固定顺序做自维护:
|
|
|
|
1. `ensure_database_ready(...)`
|
|
2. `database.init_db()`
|
|
3. `root_registry_service.sync_from_settings()`
|
|
4. `manifest_inventory_service.sync_manifest_roots()`
|
|
5. `result_catalog_service.bootstrap_catalog_on_startup_clean()`
|
|
6. `psinsar_catalog_service.bootstrap_catalog_on_startup_clean()`
|
|
7. `pairing_state_service.bootstrap_pairing_cache_state()`
|
|
8. `get_health_status(include_external=False)`
|
|
|
|
这意味着系统启动后会自动完成数据库结构校验、根目录登记、结果 catalog 自举、配对缓存状态恢复和一次启动健康检查。
|
|
|
|
## 数据库自维护边界
|
|
|
|
当前数据库自维护是“增量自愈”模型,不是完整迁移框架。
|
|
|
|
- 会自动创建缺失表。
|
|
- 会自动补齐缺失列。
|
|
- 会自动执行 `backend/migrations/001` 到 `006` 的 SQL 文件。
|
|
- 只有同时设置 `DB_SCHEMA_RESET_ON_MISMATCH=true` 和 `DB_SCHEMA_RESET_CONFIRM=true`,才允许破坏性重建。
|
|
|
|
不会自动处理的情况:
|
|
|
|
- 字段改名
|
|
- 字段类型变更
|
|
- 可空性收紧
|
|
- 索引或约束漂移
|
|
- 删除列 / 删除表
|
|
|
|
## 快速启动
|
|
|
|
1. 复制 `.env.example` 为 `.env`,按现场路径修改数据库、源数据目录、结果目录、IDL/ENVI、WSL 运行时配置。
|
|
2. 准备 PostgreSQL + PostGIS。
|
|
3. 准备 Windows Python 运行环境。
|
|
4. 如需 ISCE2 / Gamma / 时序 InSAR,准备 WSL2 Ubuntu 运行时与共享 conda 环境。
|
|
5. 启动后端与 Worker。
|
|
|
|
常用启动方式:
|
|
|
|
```powershell
|
|
start_system.bat
|
|
```
|
|
|
|
或分别启动:
|
|
|
|
```powershell
|
|
python run_backend.py
|
|
python run_worker.py
|
|
```
|
|
|
|
说明:
|
|
|
|
- Worker 必须常驻,否则生产任务、扫描任务、解包任务不会执行。
|
|
- 当前扫描模式默认是 manual-only,不会自动开启后台定时扫描。
|
|
|
|
## 文档导航
|
|
|
|
- [当前状态快照](docs/CURRENT_STATUS_20260425.md)
|
|
- [部署与运行说明](docs/DEPLOYMENT.md)
|
|
- [数据库自维护审计](docs/DATABASE_SELF_MAINTENANCE_AUDIT_20260425.md)
|
|
- [文档索引](docs/INDEX.md)
|
|
|
|
当前仍在生效的专题设计文档:
|
|
|
|
- [多引擎结果目录设计](docs/PRODUCTION_RESULTS_MULTI_ENGINE_DESIGN_20260423.md)
|
|
- [WSL 共享运行时重构](docs/WSL_RUNTIME_REFACTOR_DESIGN_20260422.md)
|
|
- [ISCE2 托管 D-InSAR 实施说明](docs/ISCE2_MANAGED_DINSAR_IMPLEMENTATION_20260424.md)
|
|
- [ISCE2 生产可靠性加固设计](docs/ISCE2_PRODUCTION_RELIABILITY_HARDENING_DESIGN_20260424.md)
|
|
|
|
## 2026-04-25 运行态摘要
|
|
|
|
基于当前代码和现场数据库检查结果:
|
|
|
|
- 数据库 schema 与 ORM 一致,无缺表、缺列、类型漂移、可空性漂移。
|
|
- D-InSAR catalog 已登记 19 个产品。
|
|
- 时序 InSAR catalog 当前为 0 个产品。
|
|
- 产品包 schema 已统一为 `insar.product-package/v1`。
|
|
- WSL 共享运行时健康,当前共享环境为 `insar_wsl_v1`。
|
|
|
|
详细结果见 [docs/DATABASE_SELF_MAINTENANCE_AUDIT_20260425.md](docs/DATABASE_SELF_MAINTENANCE_AUDIT_20260425.md)。
|