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

129 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 洪涝模块整改进展记录
## 2026-05-15 第二轮:水体提取表切换
本轮目标是把洪涝工作台里的水体提取正式从旧 `water_detections`
迁到新 `water_extractions`,同时保留旧 `/water/*` 兼容窗口。
### 已完成
```text
1. 新增 backend/app/services/water_extraction_service.py。
- run_otsu_water_extraction 复用旧 Otsu 实现。
- 对外使用 extraction/processor/threshold_value 命名。
- run_envi_water_extraction 暂留占位,后续接 ENVI/SARscape。
2. /flood/water-extractions 新提交任务开始写 water_extractions。
- 任务 payload 使用 extraction_id。
- WaterExtractionORM.processor 默认 otsu。
- task_id、threshold_value、metadata_json 随任务更新。
3. WATER_DETECT job handler 支持双轨兼容。
- 新 payload: extraction_id -> 写 water_extractions。
- 旧 payload: detection_id -> 继续写 water_detections。
- 如果旧 detection_id 已经被 alembic 0003 回填到 water_extractions
handler 会同步更新同 ID 的新表记录,避免迁移期状态卡住。
4. /flood/water-extractions 列表改读 water_extractions。
- 旧数据依赖 alembic 0003 从 water_detections 回填。
- preview 优先读 WaterExtractionORM,找不到时回退 WaterDetectionORM。
```
### 仍保留
```text
1. 旧 /water/detect 仍创建 water_detections。
这是兼容窗口内的刻意保留,不再作为洪涝工作台主链路。
2. ENVI/SARscape 精密水体提取还没有接入任务队列。
3. 如果部署环境已有旧 PENDING water_detections 任务,
需要先执行 alembic 0003,再启动 worker。
```
### 下一步
```text
1. 给候选洪涝配对增加灾前/灾后 footprint 地图预览。
2. 把 flood_vector_path 作为矢量图层上图。
3. 套合分析补行政区受影响面积统计。
4. 结果与任务页接 flood_products。
```
## 2026-05-15 第三轮:地图闭环与产品页
### 已完成
```text
1. 候选洪涝配对支持地图预览。
- 灾前 footprint 蓝色。
- 灾后 footprint 绿色。
- 配对行增加“预览覆盖”。
2. 套合结果支持洪涝矢量上图。
- GET /flood/detections/{id}/impact 返回 overlay_id、flood_vector_path、flood_vector_geojson。
- 前端套合分析页增加“加载洪涝矢量”。
3. 套合分析补行政区影响统计。
- overlay 运行时读取 AOI 行政区边界索引。
- 返回 affected_aois,包含 tree_id、name、level、flood_area_km2。
- 前端展示影响行政区数量和前 5 个行政区。
4. 结果与任务页接 flood_products。
- 洪涝结果行增加“生成产品”。
- 结果页增加“产品”tab。
- 产品行展示 product_id、洪涝面积、影响面积、生成时间。
- Manifest 按钮读取 /flood/products/{id}/manifest。
```
### 当前可集中测试的链路
```text
1. 水体提取:
入库影像查询 -> 行政区筛选 -> 源影像上图 -> 提交预处理 -> 提交水体提取 -> 水体结果上图。
2. 洪涝检测:
输入灾害时间 + 灾害位置 -> 推荐配对 -> 预览覆盖 -> 提交洪涝检测 -> 分类图上图。
3. 套合分析:
选择 DONE 洪涝结果 -> 运行套合分析 -> 加载洪涝矢量 -> 查看灾害点、DInSAR、行政区统计。
4. 产品:
DONE 洪涝结果 -> 生成产品 -> 产品 tab 查看 -> 读取 manifest。
```
## 2026-05-15 第四轮:GeoTIFF 化技术决策
本轮根据新的产品判断调整洪涝模块技术路线:不再把 ENVI/SARscape
作为洪涝算法主线,后续水体提取、洪涝检测、套合分析全部运行在标准
GeoTIFF 层。原始 SAR 到 GeoTIFF 的部分做成可插拔前处理器,优先评估
GAMMAGAMMA 覆盖不了的传感器使用 GF3_GDAL、SNAP、ISCE 或 external
处理器兜底。
### 已完成
```text
1. 新增 docs/FLOOD_GEOTIFF_GAMMA_PREPROCESS_DESIGN_20260515.md。
- 总结当前洪涝模块仍绑定 ENVI/SARscape 的真实状态。
- 梳理当前 GAMMA/PyINT 在项目中的能力和边界。
- 明确 GAMMA 适合作为 TIF 前处理候选,但不能把 D-InSAR pair profile
直接复用为洪涝单景预处理。
- 定义 analysis_ready.tif / SarAnalysisScene 数据契约。
- 给出 Python GeoTIFF 洪涝检测和 GAMMA 单景前处理分阶段方案。
2. 更新 docs/INDEX.md。
- 将 GeoTIFF 化设计列入当前执行中的核心设计。
- 标明 2026-05-14 旧洪涝设计中的 ENVI/SARscape 主线表述已被新设计取代。
```
### 当前判断
```text
1. 洪涝算法应先从 SARscape 黑盒迁出,改成 pre/post GeoTIFF 上的 Python 算法。
2. GAMMA 适合优先做 LT-1/Sentinel-1 的 analysis_ready.tif 生产器。
3. 当前 GAMMA 接入已有 geocode/data2geotiff 能力,但缺少独立单景预处理服务。
4. GF3 已有 Python/GDAL L1A->L2 路线,不应强行改走 GAMMA。
5. 另一台服务器部署时,Git 能提供平台代码和算法;GAMMA 本体、DEM、轨道池、
conda/WSL 运行时仍是外部部署前提。
```