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

164 lines
6.8 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.
# 综合统计界面设计说明
## 定位
综合统计页定位为 **InSAR 数据与生产统计**,不是营销式展示大屏,也不再使用“生产态势驾驶舱”命名。
页面面向系统运维、生产管理和汇报前复核,核心目标是用可追溯统计口径回答:
- 当前 LT-1、Sentinel-1、GF3 源数据底座是否齐备。
- 元数据解析、几何画像、预览缓存和精轨保障是否支撑生产。
- D-InSAR / SBAS 任务规划、生产运行和成果登记是否稳定。
- 当前是否存在需要处理的资产、生产或成果问题。
综合统计必须以后端聚合口径为准,不能复用影像检索页的分页结果。影像检索或资产列表中的“一键显示”只代表当前检索结果或当前页可见数据,不代表全库统计。
## 当前实现
前端页面:`frontend/src/StatisticsDashboard.jsx`
前端样式:`frontend/src/App.css`
后端接口:`GET /api/statistics/dashboard`
页面不自动轮询,只提供手动刷新,避免统计聚合影响生产服务。
## 页面结构
1. 顶部 KPI:源数据、几何画像、精轨绑定、生产任务、成果和问题的核心计数。
2. 市级覆盖热力:分为源数据覆盖和成果覆盖两个视图,按场景或成果中心点落入的市级行政区统计数量。
3. 数据底座与生产链路:展示源资产登记、元数据、几何画像、可生产画像、预览缓存等链路状态。
4. 时间分布与精轨保障:展示源数据月份分布、精轨资产和精轨绑定覆盖率。
5. 生产与成果:展示 D-InSAR / SBAS 运行状态、成果趋势、开放问题和最近任务状态。
## 统计口径
### 源数据资产
主口径使用 `source_product_assets`
当前系统约定:
- LT-1 管理源压缩包,扫描时从压缩包内提取 XML、预览和几何信息,参与生产时再按需解包到 `Task_Pool`
- Sentinel-1 管理源压缩包,扫描时从 SAFE zip 内提取 manifest、annotation、preview 和几何信息,参与生产时再按需解包。
- GF3 管理外部服务器生产后的 `native_geo` 成果和快视图资产,本机负责登记、WebP 缓存和后续成果管理。
展示内容:
- 源数据资产总量。
- LT-1 / Sentinel-1 / GF3 分类数量。
- 元数据文档提取率。
- 几何画像可用率。
- 源资产按月份分布。
- 入库到可生产链路:源资产登记、元数据入库、几何画像、可生产画像、预览缓存。
### 市级覆盖热力
空间覆盖不能只统计三类源数据,也必须统计生产后的结果产品。两类对象分开展示,不混算。
#### 源数据覆盖
主口径使用 `sar_scene_geometry_profiles`
- 使用 `scene_center_lon` / `scene_center_lat` 落入市级行政区的数量。
- 统计对象包括 LT-1、Sentinel-1、GF3 三类源数据。
- tooltip 展示市级单位、源数据总数和数据源构成。
#### 成果覆盖
主口径使用 `result_products`
- 使用 `coverage_polygon` 或 bbox 中心点落入市级行政区的数量。
- 统计对象包括已登记的 D-InSAR、SBAS 等结果产品,按 `catalog_name` 区分。
- tooltip 展示市级单位、成果总数和成果类型构成。
当前实现不是经纬度散点图,也不是经纬度格网,而是后端按行政区聚合,前端用 ECharts Map 分级设色:
- 页面在“源数据市级覆盖热力”和“成果市级覆盖热力”之间切换。
- 不显示笛卡尔经纬度坐标轴。
- 每个市级行政区按源数据景数或成果项数确定填充颜色。
- 行政区边界来自系统现有全国行政区 GeoJSON/AOI 服务。
必须明确的限制:
- 当前热力图统计的是中心点落区数量,不等同于真实场景 footprint 覆盖面积。
- 结果产品当前按 coverage polygon 或 bbox 中心点落区,不等同于真实有效像元面积。
- 当前热力图用于工程态势判断,不能直接作为正式面积统计、行政区覆盖率或成果质量评价结论。
- 正式覆盖率需要进一步接入行政边界、AOI 或真实有效像元 mask。
### 精轨保障
主口径使用 `orbit_assets``scene_orbit_bindings`
展示内容:
- 精轨资产总数。
- LT-1 / Sentinel-1 精轨分类。
- 已选中精轨绑定数。
- 精轨绑定覆盖率。
生产约束:
- 统计页只展示精轨资产和绑定情况,不负责推断具体生产引擎如何取轨。
- 具体生产取轨逻辑以 `PRECISE_ORBIT_PRODUCTION_CONTRACT_20260617.md` 为准。
### 生产运行
主口径使用:
- `dinsar_task_batches`
- `dinsar_task_items`
- `dinsar_production_runs`
- `workflow_runs`
展示内容:
- D-InSAR 任务规划状态。
- D-InSAR 生产运行状态。
- 最近生产批次。
- 平均运行耗时。
### 成果与问题
主口径使用:
- `result_products`
- `result_assets`
- `result_issues`
- `asset_inventory_issues`
- `asset_inventory_states`
展示内容:
- D-InSAR / SBAS 成果数量。
- 成果按月份趋势。
- 成果预览和缺失资产统计。
- 开放问题按类型分布。
- 最近扫描状态。
## 视觉原则
- 使用工程统计页面语义,不使用“驾驶舱”作为默认标题。
- 页面保持浅色工程管理风格,避免深色大屏、装饰化背景和无法解释的数据可视化。
- 市级覆盖热力图可以作为首屏主要图表,但必须服务于生产判断:哪些市源数据集中、哪些市已有成果、哪些市缺数据或缺成果。
- 图表文案必须写清统计口径,避免把中心点落区数量误读为正式面积覆盖。
- 不引入 Three.js;统计页优先保证真实数据、稳定性能和可追溯口径。
## 后续增强
优先级从高到低:
1. 扫描阶段固化 `corner_pixel_mapping`、有序角点和 footprint 质量标识,保证覆盖边界可追溯。
2. 结果登记阶段固化成果有效像元范围,区分产品 bbox、footprint 和有效数据 mask。
3. 增加省份/项目区筛选,支持只看黑龙江省或指定业务区。
4. 增加按数据源、结果类型、时间窗口、产品可生产性、精轨绑定状态的筛选。
5. 增加图表 drill-down,点击统计单元可跳转到资产台账、影像检索或成果列表。
6. 如果后续需要汇报模式,只做布局适配,不改变统计口径。
## 变更记录
- 2026-06-23:覆盖图升级为市级行政区热力统计,按中心点落入市级单位计数,分离“源数据覆盖”和“成果覆盖”。
- 2026-06-23:覆盖图曾短暂使用后端格网热力统计,因展示效果不适合综合统计页,调整为市级行政区分级设色。
- 2026-06-23:页面命名调整为“InSAR 数据与生产统计”;覆盖图从经纬度散点调整为空间覆盖密度图;文档明确当前图不等同于正式面积统计。
- 2026-06-22:综合统计从影像检索弹窗提升为一级页面,统计口径独立于检索分页结果。