Listening for events…

Scope freeze — precipitation_station Locationdex (11th Locationdex kind)

Frozen 2026-07-01. Source pasted by Mike as a retired per-state URL (https://www.ncei.noaa.gov/pub/data/hourly_precip-3240/12/, where 12 is a state code) with the note that "there are a number of these url links from this one specific source, so whatever judgement you make on this will apply to all of those as well." Shape call (roster-based, not a deep-pull): Mike 2026-07-01.

What it is

NOAA NCEI's Cooperative Hourly Precipitation Data (COOP-HPD) is the US cooperative-observer rain-gauge network: fixed gauges, each reporting sub-daily precipitation depth over a long record. The paste was the retired DSI-3240 tree, laid out one directory per state code (.../hourly_precip-3240/<state>/); the whole tree now 404s. The current product is COOP-HPD v2 (https://www.ncei.noaa.gov/data/coop-hourly-precipitation/v2/), which supersedes both the hourly DSI-3240 and the 15-minute DSI-3260 into one 15-minute-resolution dataset.

One source, not many

The "number of URLs from this one specific source" are the per-state slices of a single dataset. They collapse into one Locationdex kind; the roster is pulled once from the v2 station-inventory, not state by state. No further per-state URLs need triaging.

Slot = a rain gauge (Locationdex)

A COOP gauge is a fixed place with a stable ID, so it is a Locationdex slot, exactly like the tide gauge / streamgauge / radiosonde-site kinds before it. It passes all three legs of the Locationdex gate cleanly (stable ID + coordinates + roster mass), unlike the coordinate-less stormwater-pond study parked the same day.

  • Slot ID: StnID, the GHCN-Daily-style cooperative station identifier (e.g. USC00010008).
  • The place: name, state/province, latitude, longitude, elevation, WMO id, sample interval, UTC offset.
  • Measured-record summary: period of record (first/last observation date + year) and the fraction of that record flagged good, at three horizons (full POR, last half, last quarter).

Roster-based, not a deep-pull

Mike's call 2026-07-01, matching the radiosonde_station precedent. The v2 station-inventory already carries each gauge's measured-record summary (period of record + %-good), which IS the place's measured footprint. Downloading 2,093 multi-decade hourly files to recompute it is a deferred deep-pull / live-edge decision, not needed to catalog the places (feedback_organize_not_process). Each slot flags has_hourly_series and carries its access URL (.../v2/access/<StnID>.csv) so the catalog references the series rather than duplicating it.

Measured reality (bright line)

feedback_measured_reality_only. A COOP gauge is a physical rain gauge; the hourly values are measured depths and the roster's %-good is a tally of real, QC-passed observations. All IN, no model output anywhere. When the hourly series is later deep-pulled, the bright line runs per value: measured depths IN, the -9999 missing sentinel nulled, and any accumulation/redistribution QC flags (where a multi-hour total is apportioned across hours) handled then — a QC redistribution of measured water, not a model estimate.

Coverage

  • 2,093 gauges, all geolocated, across 54 states/territories (incl. AK, HI, PR, GU, MP, AS).
  • Records back to 1940; latest observations run to 2026. 1,506 gauges are active (last observation in 2025 or later).
  • Global-for-the-network scope ("data is data", feedback_data_is_data_partial_coverage): the full published roster, short and long records alike; a gauge's shorter record is not a rejection reason.

Multi-source cited slot

Universal rule: the slot cites ncei_coop_hpd (registered in provenance.py KNOWN_SOURCES + KIND_SOURCES). A second network's metadata for the same gauge would enrich the one slot, cited, never duplicate it.

Storage

Locationdex sibling storehouse data/location_storehouse/precipitation_station/<StnID>.json, file-per-slot, via the event_storehouse write + disk-rebuilt index machinery (base_dir=location_storehouse). The build clears the kind dir before rebuild so removed slots never linger.

Deferred

  • Hourly-series deep-pull. The per-gauge measured series (.../access/<StnID>.csv, HR00Val..HR23Val + daily sum, with measurement/quality/source flags). A follow-up if a paper needs per-gauge rainfall, or as a live edge (the v2 product updates operationally).
  • Spatial sweep / cross-match (deferred for every Locationdex kind until one needs it).
Live Feed