cc22b9ac2d0173b773a63bc4ec1493ff0b955a15
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表仍然保留,并继续作为结果登记与检索的核心表结构。
启动时自维护链路
后端启动时会按固定顺序做自维护:
ensure_database_ready(...)database.init_db()root_registry_service.sync_from_settings()manifest_inventory_service.sync_manifest_roots()result_catalog_service.bootstrap_catalog_on_startup_clean()psinsar_catalog_service.bootstrap_catalog_on_startup_clean()pairing_state_service.bootstrap_pairing_cache_state()get_health_status(include_external=False)
这意味着系统启动后会自动完成数据库结构校验、根目录登记、结果 catalog 自举、配对缓存状态恢复和一次启动健康检查。
数据库自维护边界
当前数据库自维护是“增量自愈”模型,不是完整迁移框架。
- 会自动创建缺失表。
- 会自动补齐缺失列。
- 会自动执行
backend/migrations/001到007的 SQL 文件。 - 只有同时设置
DB_SCHEMA_RESET_ON_MISMATCH=true和DB_SCHEMA_RESET_CONFIRM=true,才允许破坏性重建。
不会自动处理的情况:
- 字段改名
- 字段类型变更
- 可空性收紧
- 索引或约束漂移
- 删除列 / 删除表
快速启动
- 复制
.env.example为.env,按现场路径修改数据库、源数据目录、结果目录、IDL/ENVI、WSL 运行时配置。 - 准备 PostgreSQL + PostGIS。
- 准备 Windows Python 运行环境。
- 如需 ISCE2 / Gamma / 时序 InSAR,准备 WSL2 Ubuntu 运行时与共享 conda 环境。
- 启动后端与 Worker。
常用启动方式:
start_system.bat
或分别启动:
python run_backend.py
python run_worker.py
Git Clone Deployment
This repository is intended to stay deployable after a clean git clone on a new
Windows host.
Recommended bootstrap path:
git clone <repo-url>
cd Insar_management_system_v2
Copy-Item .env.example .env
notepad .env
powershell -ExecutionPolicy Bypass -File .\scripts\bootstrap_clone.ps1 -InitFrontend -BuildFrontend
start_system.bat
Optional runtime bootstrap commands:
powershell -ExecutionPolicy Bypass -File .\scripts\bootstrap_clone.ps1 -InitWindowsConda
powershell -ExecutionPolicy Bypass -File .\scripts\bootstrap_clone.ps1 -InitWslConda
powershell -ExecutionPolicy Bypass -File .\scripts\bootstrap_clone.ps1 -All
The clone bootstrap script keeps the existing startup, database self-maintenance, and health-check chain unchanged. See docs/DEPLOYMENT.md for the current deployment model and switch details.
说明:
- Worker 必须常驻,否则生产任务、扫描任务、解包任务不会执行。
- 当前扫描模式默认是 manual-only,不会自动开启后台定时扫描。
文档导航
建议阅读顺序:
说明:
docs/INDEX.md是当前有效文档与历史参考文档的总入口。INIT.md是工作笔记,不应替代正式文档。- 历史材料可从
docs/archive/INDEX.md进入。
当前仍在生效的专题设计文档:
2026-04-25 运行态摘要
基于当前代码和现场数据库检查结果:
- 数据库 schema 与 ORM 一致,无缺表、缺列、类型漂移、可空性漂移。
- D-InSAR catalog 已登记 19 个产品。
- 时序 InSAR catalog 当前为 0 个产品。
- 产品包 schema 已统一为
insar.product-package/v1。 - WSL 共享运行时健康,当前共享环境为
insar_wsl_v1。
Languages
Python
72.2%
JavaScript
23.1%
CSS
2.5%
PowerShell
1%
IDL
0.8%
Other
0.3%