Listening for events…

Scope freeze — tide_gauge Locationdex kind

Frozen 2026-06-19. Second kind of the Locationdex family (docs/locationdex-framework.md), after the neutron_monitor pilot. The slot is a place: one fixed NOAA CO-OPS tide-gauge station. This is the noaa_tides admin URL (https://api.tidesandcurrents.noaa.gov/api/prod/datagetter), organized — not a new ingestion.

The slot

  • One slot = one NOAA CO-OPS water-level station. Slot ID = the 7-digit CO-OPS station id (e.g. 8518750 The Battery, NY; 9414290 San Francisco, CA).
  • Full-roster deep pull (no-spiking rule). The live noaa_tides fetcher hard-codes 10 representative stations; the dex registers the full published water-level network: 301 stations across 34 US states/territories, pulled from the CO-OPS metadata API (mdapi/prod/webapi/stations.json?type=waterlevels), 100% with coordinates.
  • A station IS a place, so each slot carries lat/lon + a PostGIS point (unlike a Yeardex year-slot, whose geo stays null). A spatial sweep is therefore buildable later; the pilot stays catalog-first.

Slot contents

  • Identity: station id, name, state, SHEF code, NWLON/affiliation, time zone.
  • Place: latitude, longitude, PostGIS point.
  • Station character: tidal (subject to tides) vs greatlakes (lake gauge), the permanent attributes that classify the gauge.
  • Measured-series summary joined from the live noaa_tides feed (water_level metric): observation count, coverage span, mean/min/max water level, unit — cited to noaa_tides per the universal multi-source rule. Stations not yet streaming are real registry places (has_series=false) and are kept, not dropped.

Measured reality

  • IN: water_level = the measured sensor reading at the gauge (what the water physically did). Clean per feedback_measured_reality_only.
  • OUT (held out, never pulled into the dex): the CO-OPS predictions product is harmonic-model output (a computed tide forecast), and the htf/outlook products are projections. The dex draws only the measured water_level series. The live fetcher already pulls water_level only.

Storage

  • Spine source noaa_tide_stations (registry, active=False — refreshed by re-running the reload, not by a 60s feed).
  • Slots in the third sibling storehouse data/location_storehouse/ (shared with neutron_monitor), reusing the event_storehouse write + disk-rebuilt-index machinery via its base_dir argument.

Frozen vs deferred-v2

  • Frozen (this brick): full 301-station roster as place-slots; measured water-level series summary cited; catalog index.
  • Deferred-v2: spatial sweep (a tide-gauge slot CAN anchor a radius read-across of other phenomena, like a neutron-monitor slot); full time-series streaming of every station (the live feed covers 10); Great-Lakes vs tidal stratified reads; datum/flood -level enrichment from the per-station mdapi detail endpoints.
Live Feed