Skip to content

Snap distance measurements to detected storm cells #165

Description

@danielway

Scope

Extend measurement mode to support one finalized tracked storm endpoint and one fixed map endpoint. Use tracked motion to display closest-approach timing.

Interaction

  • While measuring, a click within the visible hit radius of a finalized tracked storm snaps the storm endpoint to its ground-footprint centroid; otherwise it sets the fixed endpoint.
  • Provisional volume cells are visible but are not snap targets.
  • The storm endpoint follows its track. If that track ends, remove the entire measurement.
  • Existing fixed-to-fixed manual measurement remains available as its current mode.

Timing

Project the tracked storm’s motion relative to the fixed endpoint and show estimated time and distance at closest approach, including track confidence. Show an explicit unavailable state when motion history/confidence is insufficient or closest approach lies in the past.

Non-goals

  • Storm-to-storm measurement or automatic reassociation to another track.
  • Snapping to provisional cells or arbitrary radar features.

Acceptance criteria

  • Users can create fixed-to-fixed or tracked-storm-to-fixed measurements with clear snap feedback.
  • The snapped endpoint follows the stable track identity through updates and explicit lineage according to Track storm cells across radar volumes #179’s contract.
  • Closest-approach ETA, distance, and confidence update from the accepted motion vector.
  • Ended tracks remove their associated measurement; unrelated track changes do not.
  • Manual distance measurements continue to work unchanged.
  • Pure tests cover hit selection, endpoint lifecycle, timing math, unavailable states, and track termination.

Depends on #179. Parent: #33.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status
    Ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions