Summary
Tracking issue (from the #30 comparison against Calder's original CUBE). Calder's
predicted-surface / spatial-guide subsystem was not ported. The current port
runs pure data-driven CUBE. This is fine today but is a known gap to port when
a prior/predicted surface becomes available.
Part of #30. Feeds / fed by the chart-prior importer #44 and the bathymetric data
store epic rolker/unh_marine_autonomy#86.
What's missing
The port has a predicted_depth_ member (node.h:198) initialized to
INVALID_DATA and no setter — it is read in three guards but never assigned a
real value. Consequently:
- Prior-depth propagation offset (
node.cpp:116-124, commented out) is moot —
its precondition predicted_depth_ != no_data_value can never be true. In Calder
the node's pred_depth is set from a predicted/prior surface
(cube_node.c:1091) and used to refer a sounding to that surface
(offset = pred_depth - range) and to bound blunders / capture.
- Guided disambiguation — Calder's
CUBE_PRIOR (closest-to-guide) and
CUBE_POSTERIOR (guide-weighted log-posterior) hypothesis selectors
(cube_node.c:2037, :2136) are not ported; only the data-driven most-samples
selector + nomination override exist. The unused DEFAULT_EXTRACTOR = CUBE_LHOOD
constant reflects this gap.
These are one subsystem: both need an external predicted/prior surface.
Scope when picked up
- A mechanism to supply a per-node predicted depth + variance (from a chart prior
/ GGGS bathy store / previous-epoch surface).
- Wire the propagation offset and predicted-surface blunder/capture bounds.
- Port
CUBE_PRIOR / CUBE_POSTERIOR extractors and make the disambiguation
method selectable.
- Tests covering guided init, propagation, and prior/posterior selection (the
comparison agents drafted a canonical guided-vs-most-samples regression case).
Not in scope now
No code changes in the near term — the current pure data-driven behavior is
documented as an intentional divergence (#30 doc). This issue exists so the gap is
on the roadmap rather than buried.
Authored-By: Claude Code Agent
Model: Claude Opus 4.8 (1M context)
Summary
Tracking issue (from the #30 comparison against Calder's original CUBE). Calder's
predicted-surface / spatial-guide subsystem was not ported. The current port
runs pure data-driven CUBE. This is fine today but is a known gap to port when
a prior/predicted surface becomes available.
Part of #30. Feeds / fed by the chart-prior importer #44 and the bathymetric data
store epic rolker/unh_marine_autonomy#86.
What's missing
The port has a
predicted_depth_member (node.h:198) initialized toINVALID_DATAand no setter — it is read in three guards but never assigned areal value. Consequently:
node.cpp:116-124, commented out) is moot —its precondition
predicted_depth_ != no_data_valuecan never be true. In Calderthe node's
pred_depthis set from a predicted/prior surface(
cube_node.c:1091) and used to refer a sounding to that surface(
offset = pred_depth - range) and to bound blunders / capture.CUBE_PRIOR(closest-to-guide) andCUBE_POSTERIOR(guide-weighted log-posterior) hypothesis selectors(
cube_node.c:2037,:2136) are not ported; only the data-driven most-samplesselector + nomination override exist. The unused
DEFAULT_EXTRACTOR = CUBE_LHOODconstant reflects this gap.
These are one subsystem: both need an external predicted/prior surface.
Scope when picked up
/ GGGS bathy store / previous-epoch surface).
CUBE_PRIOR/CUBE_POSTERIORextractors and make the disambiguationmethod selectable.
comparison agents drafted a canonical guided-vs-most-samples regression case).
Not in scope now
No code changes in the near term — the current pure data-driven behavior is
documented as an intentional divergence (#30 doc). This issue exists so the gap is
on the roadmap rather than buried.
Authored-By:
Claude Code AgentModel:
Claude Opus 4.8 (1M context)