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.
8518750The Battery, NY;9414290San Francisco, CA). - Full-roster deep pull (no-spiking rule). The live
noaa_tidesfetcher 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) vsgreatlakes(lake gauge), the permanent attributes that classify the gauge. - Measured-series summary joined from the live
noaa_tidesfeed (water_levelmetric): observation count, coverage span, mean/min/max water level, unit — cited tonoaa_tidesper 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 perfeedback_measured_reality_only. - OUT (held out, never pulled into the dex): the CO-OPS
predictionsproduct is harmonic-model output (a computed tide forecast), and thehtf/outlook products are projections. The dex draws only the measuredwater_levelseries. The live fetcher already pullswater_levelonly.
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 withneutron_monitor), reusing theevent_storehousewrite + disk-rebuilt-index machinery via itsbase_dirargument.
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
mdapidetail endpoints.