geopro/.superpowers/sdd/task-9b-report.md

4.0 KiB
Raw Blame History

Task 9b 报告gpr_poc CLI + 真实数据 headless 度量

状态:PARTIAL / BLOCKED

  • CLI 编译链接通过;selftest PASS合成数据端到端跑通整条地基
  • 真实明星路数据 BLOCKED:前置 IO 层 readIprbtraces=lastTrace+1 严格校验 与真实文件「道数=lastTrace」系统性不符装配阶段即抛异常无法实测建体指标。 未擅自修改前置/其单测(被现有测试钉死的契约 + 跨任务边界),故真实指标暂缺,如实记录。

1. 交付物(均为本会话自有文件)

  • tools/gpr_poc/main.cpp —— CLIbuild / load / selftest 三子命令。
  • tools/gpr_poc/Probe.hpp —— header-only 计时steady_clock+ 峰值内存Psapi PeakWorkingSetSize)。 含 NOMINMAX/WIN32_LEAN_AND_MEAN<windows.h> 宏污染 std::numeric_limits::min/max
  • tools/gpr_poc/CMakeLists.txt —— 可执行 gpr_poc,链 geopro_io_gpr/geopro_core/geopro_store/geopro_render
    • Windows Psapivtk_module_autoinit 注册 VTK 工厂。
  • 顶层 CMakeLists.txt —— 加 add_subdirectory(tools/gpr_poc)(在 add_subdirectory(src) 之后)。
  • docs/superpowers/plans/poc-results-B.md —— 实测结果selftest PASS + 真实数据 BLOCKED 根因表)。

注:库目标实际名为 geopro_storebrief 写作 geopro_store/已对齐)与 geopro_data 本工具链 geopro_store(分块存储),正确。

2. 构建

  • 配置:cmd /c "build.bat configure"preset msvc-releasebuild/release成功 cmd 被环境劫持但真实命令仍执行;以 build.ninja 出现 gpr_poc target 确认)。
  • 编译PowerShell + vcvars64 直驱 cmake --build build/release --target gpr_poc。 首次失败:<windows.h> min/max 宏污染 → 加 NOMINMAX 修复 → 二次链接成功。
  • 运行需 PATH 带 Qt6/VTK/vcpkg binheadless 工具仍依赖这些 DLL

3. selftest 结果

gpr_poc selftest
[selftest] GridSpec 2x2x8 dz=0.714286
[selftest] PASS   (exit 0)

覆盖assembleGprSurvey → buildGprVolume → write(brick=4) → buildPyramid(1) → WholeVolumeSource断言维度/层数/体素非 blank 全通过。

4. 真实数据指标

未实测BLOCKED。根因:readIprbsrc/io/gpr/IprbReader.cpp:16 traces=lastTrace+1 严格字节校验;真实明星路 14 通道每个恰含 lastTrace 道(少 1 道), 逐通道实测一致(详见 poc-results-B.md §2 表)。非 OOM/超时——装配前读入即失败, 调 --cellXY 无法绕过。现有 tests/io/gpr/test_iprb_reader.cpp:30-31 锁定该抛异常契约。

用的参数:--line 001 --cellXY 0.2 --cellZ 0.05 --levels 2(建体未到达)。 预估几何非实测供核对nx≈11118, ny≈8, nz≈1深度尺度因土速单位为微米级 cellZ=0.05 压成单层——需 POC owner 复核土速/时窗单位与 cellZ

5. 提交前自检

  • git add 自有文件:tools/gpr_poc/*、顶层 CMakeLists.txtdocs/superpowers/plans/poc-results-B.md、本报告 .superpowers/sdd/task-9b-report.md
  • git diff --cached --stat 确认无 chart/scatter/quill/rangeslider 等并行会话行。
  • 顶层 CMakeLists 的暂存 diff 应仅含新增的 add_subdirectory(tools/gpr_poc) 一行块。

6. Concerns / 需 owner 决策

  1. 真实数据 BLOCKERreadIprb 道数契约与真实数据不符。建议放宽为 「道数 = 文件字节 / (samples·2)」(容忍 ±N 道),或确认 LAST TRACE 语义后去 +1 并同步改单测。落地后重跑两条命令即可补齐 §4 真实指标。
  2. 深度尺度(中)SOIL VELOCITY=100 m/s头单位 m/µs ×1e6→ 深度跨度微米级, cellZ=0.05 会把 Z 压成 1 层。影响真实体维度与 9c 渲染基准,需确认单位约定。
  3. 顶层 CMakeLists 当前 working tree 已有他会话的修改(视觉设计/chart 等);本会话只新增 add_subdirectory 一行,暂存时务必只 stage 该文件并核对 diff,勿带入其他未暂存改动。