You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tracking follow-up from #53 (closed with Option A: keep shapely LineString in plan_read unconditionally for now).
When mortie v1 ships (#57), revisit whether plan_read's within-granule segment->AOI crossing check should branch on grid type and call into mortie's linestring coverage for HEALPix grids — for end-to-end S2 consistency with mortie-driven shard dispatch.
Euclidean error is negligible at ATL03 photon spacing. ~10 m per 100 km of segment, well inside any usable HEALPix cell — the within-granule check is a crossing filter, not a precision geometry op.
After #57 (mortie v1 integration) resolves and the v1 linestring API surface is stable. At that point evaluate:
mortie v1 linestring coverage signature — what does the call look like; does it match plan_read's segment-rep-point input shape ((lat, lon) pairs)?
Grid-type branch in plan_read — is the right seam at plan_read(...) (passing a grid handle), or in _planned_read_group (computing the crossing mask before calling plan_read)?
Measurable benefit on a real region — does the S2 path actually change which segments match the AOI for a 10 km × 10 km HEALPix shard, vs the current Euclidean path? If parity is byte-identical at ATL03 cell scales, the consistency argument alone may not justify the dependency.
Summary
Tracking follow-up from #53 (closed with Option A: keep shapely
LineStringinplan_readunconditionally for now).When
mortiev1 ships (#57), revisit whetherplan_read's within-granule segment->AOI crossing check should branch on grid type and call into mortie's linestring coverage for HEALPix grids — for end-to-end S2 consistency with mortie-driven shard dispatch.Why deferred (per #53 analysis)
mortieis mid-redesign for v1 (morton_indexdatatype per Major Feature / Enhancement — Full resolution Morton MOC datatype espg/mortie#35, etc.); the linestring coverage interface may shift. Bindingplan_readnow risks rewriting it once v1 lands.When to revisit
After #57 (mortie v1 integration) resolves and the v1 linestring API surface is stable. At that point evaluate:
plan_read's segment-rep-point input shape ((lat, lon)pairs)?plan_read— is the right seam atplan_read(...)(passing a grid handle), or in_planned_read_group(computing the crossing mask before callingplan_read)?Refs
plan_readimplementation: Generic hierarchical filtering & targeted reads (#43) #49 (and PR ATL03 template + region benchmark + hierarchical-read wiring (Refs #30, #43) #47's phase 5 wiring it into_read_group)plan_readsource:src/zagg/read_plan.py