v0.1.0
First release.
NOAA CO-OPS tidal-current station data — the extractor, the schema, the validation
method, and a write-up of how the API actually behaves.
currents.json (attached) is the prebuilt US bundle: 856 harmonic + 1,705
subordinate stations, 0 unresolved references. Vendor it, or extract your own subset
with the CLI.
npm install @sailingnaturali/current-stations
npx current-stations extract mine.json --stations PUG1717,PUG1701What's in here
- Extractor for NOAA's station list, harmonic constituents, and subordinate offsets
- Live predictions client (
currents_predictions) current-stations check— one request, fails when NOAA's station list drifts from
the pinned lock (runs weekly here)current-stations golden— captures constituents plus NOAA's own predictions into
one fixture, so a prediction engine can be validated offline- JSON Schema for the bundle, and TypeScript types
The parts that cost us days
Documented in docs/noaa-api.md:
harcon.jsonreturns an empty list at any bin except the station'scurrbin—
which reads as "NOAA doesn't publish current constituents." It does, for 856 stations.- Z₀ (
majorMeanSpeed) is a DC offset on the velocity curve, and slack is where that
curve crosses zero. Omitting it measured 15.6 min mean error; including it, 7.4. - A reference is a (station, bin) pair, not a station — 14 subordinates in US waters
reduce against a non-primary bin. - A
type: Sstation is not necessarily offset-reduced; 1 of 1,706 carries its own
harcon, and predicting it the other way is 89 minutes wrong.
Zero dependencies. Code MIT; NOAA data is public domain. Derived predictions are
unofficial — not for navigation.