The core logic of this is a TypeScript implementation of the timeless Manual of Harmonic Analysis and Prediction of Tides, authored by Paul Schureman for the U.S. Department of Commerce as part of their Coast and Geodetic Survey, first published in 1924 and last modified in 1958. The full work is included here for reference (Schureman1958.pdf
), or can be obtained directly from NOAA. All equations and other material derived from this manual are cited with the source page number as measured from the PDF for ease of reference (note: not the internal page numberings).
The work Computer Applications to Tides in the National Ocean Survey provides helpful extensions of core tables from Schureman into the modern era, which were consulted for verification of the code. This work can also be obtained from NOAA at the link above, or in this repository (Zetler1982.pdf
).
Data for the Harmonic Constituents of all 1232 capable stations was obtained from the NOAA Tides and Currents CO-OPS Metadata API, and is included in the data
directory for reference, along with the data/scripts.hdnb
Handy Dandy Notebook used for processing the data.
In short: Thanks NOAA!
The UI is based (with varying degrees of roughness) on the F-15 Eagle's cockpit. Reference photos are kept in the mood
directory, and were consulted during development. Thanks McDonnell Douglas!
Additional reference photos come from Will Wright’s "Antique Soviet Space Junk" collection, as discovered on Don Hopkin's blog Thanks Will & Don!
Do you have Harmonic Constituents? I'd love to hear about them! Please feel free to drop a line on this issue.
For other development, bun
is recommended, but npm
will work fine. Just run bun i
, then bun run bundle-dev
and bun run serve-dev
for development, or bun run bundle
for building the static assets.
In VSCode, just F5
to build watch and run after dependencies have been installed.