9.8 KiB
三数据本机生产与结果管理约定
最后更新:2026-06-17
本文件是陆探一号、Sentinel-1、高分三在当前系统中的运行边界。2026-06-16 起,UNC 不再作为活动生产链路、源数据池、精轨池或 Task_Pool。网络共享只可作为人工搬运的外部介质,不进入后台生产任务。
1. 总原则
- 源数据和精轨都放在本机路径,UNC 不进入活动生产链路。
- LT-1 和 Sentinel-1 当前管理对象是本机压缩包源池,不管理旧解包目录。
- 管理阶段只从压缩包中抽取 XML/manifest、元数据和预览图,用于资产索引、日期/轨道绑定和检索。
- 生产任务需要真实文件树时,才按任务解包或复制到本机
Task_Pool,不从 UNC 拉取。 - D-InSAR 和 SBAS-InSAR 的运行材料、工作目录、结果发布目录必须是本机路径。
- 生产结果进入数据管理或结果 catalog,InSAR 形变分析只读取已登记结果,不直接扫描临时工作目录。
- 洪水检测模块本轮冻结,不纳入本次审计和改造。
2. 三类数据边界
| 数据 | 源数据位置 | 精轨位置 | 生产模块 | 结果管理 |
|---|---|---|---|---|
| 陆探一号 LT-1 | D:\LuTan1_Image_Pool_Zip,本机 LT-1 压缩包源池 |
D:\LT1_data_lsarorbit |
生产管理保留占位;D-InSAR 走 LandSAR、ENVI+SARscape、Gamma/PyINT;SBAS 走 Gamma/PyINT 主线 | D-InSAR/SBAS 结果 catalog |
| Sentinel-1 | D:\Sentinel1_Image_Pool_ZIP,本机 Sentinel-1 ZIP/SAFE 压缩包源池 |
D:\Sentinel1_EOF_Pool |
生产管理保留占位;D-InSAR 当前只走 Gamma/PyINT;SBAS 只做发现和规划,执行未启用 | D-InSAR 结果 catalog;SBAS 暂无执行产物 |
| 高分三 GF3 | 本机只管理已生产的 _geo 成品;原始归档仅追踪 |
无精轨链路 | 外部 SARscape 服务器生产 _geo;本机不启动 SARscape wrapper |
复制到 D:\GaoFen3_Pool\native_geo 后登记,WebP 从 _geo 主二进制生成 |
高分三外部结果命名约定:
D:\GaoFen3_Pool\native_geo\20260609_geo\
GF3_MDJ_FSI_051759_E130.2_N43.5_20260609_L1A_HHHV_L10007375467\
GF3_MDJ_FSI_051759_E130.2_N43.5_20260609_L1A_HHHV_L10007375467_hh_geo
GF3_MDJ_FSI_051759_E130.2_N43.5_20260609_L1A_HHHV_L10007375467_hh_geo.hdr
GF3_MDJ_FSI_051759_E130.2_N43.5_20260609_L1A_HHHV_L10007375467_hh_geo.sml
*_geo_ql.tif 可作为辅助材料,但不作为正式 WebP 预览源。正式预览从 SARscape _geo ENVI 二进制读取生成。
GF3 成品池扫描入库流程
- 外部 SARscape 服务器完成生产后,把整景目录复制到本机
D:\GaoFen3_Pool\native_geo\YYYYMMDD_geo\<GF3_SCENE>。 - 每个场景目录至少包含一个完整极化的
*_geo、*_geo.hdr、*_geo.sml;*_geo_ql.tif可以同时提供,作为范围读取兜底和人工核验材料。 - 在系统中点击
登记 _geo 结果,后端递归扫描所有*_geo场景目录,写入gf3_native_manifest.json和gf3_native_preview_manifest.json,并登记source_product_assets与radar_data。 - 登记时优先从
*_geoENVI 主数据读取 CRS、范围和中心点;如果主数据无法读取范围,再尝试对应的*_geo_ql.tif。 - 点击
生成 WebP后,系统从已登记的*_geo主数据生成本机 WebP 缓存,缓存路径仍使用backend\image_cache\radar_raw/radar_geo体系。 D:\GaoFen3_Pool\catalog只保存平台登记 manifest 和后续可选派生物;默认不复制完整影像、不把_geo转成全量 GeoTIFF。
3. 本机路径与按需解包
当前核心路径:
UNPACK_SOURCE_DIRS=
SOURCE_PRODUCT_DIRS=D:\LuTan1_Image_Pool_Zip;D:\Sentinel1_Image_Pool_ZIP
SENTINEL1_STORAGE_DIRS=
INSAR_STORAGE_DIRS=
MONITOR_RADAR_DIRS=
ORBIT_SOURCE_DIRS=D:\LT1_data_lsarorbit;D:\Sentinel1_EOF_Pool
ORBIT_POOL_ENVI=D:\orbit_pools\envi
PYINT_ORBIT_POOL_TXT=D:\orbit_pools\envi
GAMMA_SBAS_ORBIT_ROOTS=D:\orbit_pools\envi
ISCE2_ENABLED=false
ORBIT_POOL_ISCE2=
TASK_POOL_ROOT=D:\Task_Pool
DINSAR_TASK_POOL_ROOT=D:\Task_Pool\DInSAR
SBAS_TASK_POOL_ROOT=D:\Task_Pool\SBAS
DATA_DISTRIBUTION_ROOT=D:\Task_Pool\Data_Distribution
GF3_TASK_POOL_ROOT=D:\GaoFen3_Pool\task_pool
GF3_ARCHIVE_SOURCE_DIRS=D:\GaoFen3_Pool\archives
GF3_SARSCAPE_NATIVE_DIRS=D:\GaoFen3_Pool\native_geo
GF3_STORAGE_DIRS=D:\GaoFen3_Pool\catalog
GF3_SARSCAPE_RUNTIME_DIR=D:\GaoFen3_Pool\task_pool\sarscape_runtime
压缩包资产索引只建立资产索引、预览缓存和轨道绑定,不提供“全量入库/全量解包”按钮。当前 LT-1/Sentinel-1 主流程从本机压缩包源池扫描,只抽取 XML/manifest、元数据和预览图;参与计算时才按任务解包或复制到 Task_Pool 或具体任务目录。
生产准备和数据分发是两个归口。前端不让用户输入服务器绝对路径,只填写任务名;后端按 .env 中固定根目录创建子目录,避免远程浏览器把用户本机路径传给服务器。生产数据准备 以批次配对为输入,从 LT-1/Sentinel-1 源压缩包按需 materialize 到 DINSAR_TASK_POOL_ROOT\<任务名>,在其下生成 Task_YYYYMMDD_YYYYMMDD\master、slave、orbit 和 pair_metadata.json,供 D-InSAR 引擎直接运行;这是生产工作区,不是源池。数据分发 只用于外发或跨目录搬运源压缩包,导出到 DATA_DISTRIBUTION_ROOT\<任务名>,目录结构为 data/、orbit/、pairs.json、manifest.json。其中 data/ 只能保存 LT-1/Sentinel-1 源压缩包文件,不能保存旧解包目录。旧批次如果仍指向 D:\LuTan1_Image_Pool 或 D:\Sentinel1_Image_Pool 解包目录,应重新从压缩包资产重建批次后再执行生产准备或分发。
源池扫描采用增量解析语义:系统仍递归列出 SOURCE_PRODUCT_DIRS 下的候选压缩包文件名,用于发现新增和删除;数据库中已有且 file_path、size_bytes、mtime_epoch、parser_version、parse_status 均满足未变化条件的 S1_ZIP / LT1_ARCHIVE 资产会跳过包内 XML/manifest 读取,不再每次全量重读压缩包内容。新增、修改、曾经失效或解析器版本变化的压缩包会重新解析并更新资产索引。
LT-1 解析字段必须区分:规范文件名中的 SLC/SSC 是 product_type 和干涉源类型判断依据;XML 中 imageDataInfo/imageDataType=COMPLEX 只能写入 image_data_type,不能覆盖 product_type。前端“范围/可用性”依赖 coverage_polygon + imaging_date + imaging_mode + polarization + complex token,因此解析器变更必须同时验证 LT-1 coverage_polygon 和 insar_source_ready 计数。
LT-1/GF3 XML 的四个 sceneCornerCoord 不得直接按 XML 出现顺序连线。解析器必须把角点重排为非自交闭合四边形后再写入 coverage_polygon 和 PostGIS geom;验收时需检查 Shapely/PostGIS polygon valid,避免前端显示成沙漏形。
资产扫描入口支持三种语义:families=["LT1"] 只扫陆探源包/精轨,families=["S1"] 只扫哨兵源包/精轨,空 families 表示合扫。精密轨道扫描同样按 inventory_types=["orbit_asset"] + families 区分 LT-1、S1 或全部,前端不得再通过固定路径顺序猜测 root id。
精轨生产池按 PRECISE_ORBIT_PRODUCTION_CONTRACT_20260617.md 执行:ORBIT_SOURCE_DIRS 是原生资产层;LT-1 扫描后同步到 ORBIT_POOL_ENVI\LT1A|LT1B,供 ENVI/SARscape、Gamma/PyINT D-InSAR 和 Gamma SBAS 使用;Sentinel-1 使用 EOF 原生资产绑定;ISCE2 精轨 XML 池为 legacy,默认不启用。
UNPACK_SOURCE_DIRS 为空是当前设计状态;通用全量解包入口不进入前端主流程。压缩包源池由 SOURCE_PRODUCT_DIRS 管理。
已执行的代码约束:
validate_runtime_config()对源数据、精轨、Task_Pool、D-InSAR/SBAS 工作根、结果根、GF3_geo根执行 UNC 校验。- Sentinel-1 单个/批量解包和通用 materialize 拒绝 UNC 源路径与 UNC 目标路径。
/monitor/status返回按实际磁盘卷汇总的storage_roots,例如多个D:\...路径只展示一个D:\容量项,同时报告配置路径数量和缺失路径数量。
4. 生产管理界面
生产管理工作台现在承担三类数据的生产边界展示:
陆探生产占位:说明 LT-1 本机压缩包源池、精轨、按需解包、D-InSAR/SBAS 本机 Task_Pool。哨兵生产占位:说明 Sentinel-1 本机压缩包源池、EOF 精轨、按需解包、D-InSAR Gamma/PyINT、SBAS 规划态。高分三结果登记:说明外部 SARscape 生产、本机_geo登记和 WebP 生成。D-InSAR 运行、D-InSAR 产物、SBAS-InSAR Production、SBAS-InSAR 结果保留现有生产和结果 catalog 功能。
这些占位不是最终生产向导,但先把三类数据放进同一生产管理域,避免继续把数据扫描、生产运行、结果登记混在数据监控按钮里。
5. InSAR 形变分析审计
当前边界:
- D-InSAR 结果由 D-InSAR product catalog 管理,分析页不应直接读取 Task_Pool 临时目录。
- SBAS 结果由 SBAS product catalog 管理,速率图、质量指标和监测点曲线从发布包读取。
- Sentinel-1 SBAS 目前只是规划态,不能在形变分析中伪装成可执行生产链路。
- GF3
_geo登记到雷达资产和 WebP 缓存后,可作为数据管理资产;它不是 D-InSAR/SBAS 形变分析的生产输入。
后续如果要把分析页做成正式工作台,应先统一读取结果 catalog,再补地图叠加、剖面、时间序列和质量过滤,不应回退到扫描任意目录。
6. 本轮不改内容
- 洪水检测、GF3 水体检测和洪水 GeoTIFF 预处理暂不调整。
- D-InSAR 三引擎内部执行细节不在本轮重写,只强化本机路径边界。
- Sentinel-1 SBAS 不启用执行,只保留发现和规划。