Tidal harmonic analysis · reference & data registry Data access Sign in Contact
tidalcore water-level time-series analysis - documentation & datasets release 0.9.3 · MIT

Home › reconstructor

Curve reconstructor

This is the forward problem, the easy half of the library: given constituents with amplitudes and phase lags, add up their cosines and look at the water level they produce. It runs in your browser from /api/constituents.json and sends nothing anywhere.

How to read it

The curve is the sum over the chosen terms of amplitude times the cosine of speed times time minus the phase lag. The defaults are the eight fitted amplitudes from station-7, which is why the shape below is the same tidal curve the tutorial decomposes. Turn S2 off and watch the spring-neap swell collapse into a plain lunar beat; push M4 up from zero and watch the crests and troughs stop being symmetric.

+2.50−2.5 0h12h24h36h48h60h72h
The eight station-7 constituents summed over 72 hours (range −2.43 to 2.46 m). With JavaScript enabled this figure becomes interactive: a control appears for every constituent and the curve redraws as you change it. The numbers are the same either way, so the page is complete without scripts.

Default set

The eight terms enabled by default, taken from the station-7 fit. Each links to its catalogue entry.
ConstituentAmplitude, mPhase, °
M21.412211.6
S20.463238.2
N20.281190.8
K20.126235.9
K10.10977.3
O10.08254.0
P10.03674.9
Q10.01731.5

The arithmetic

There is no least-squares anywhere on this page. Speeds come from the catalogue, you supply amplitudes and phases, and the only operation is a sum of cosines evaluated at four hundred points across the window. The high- and low-water figures are simply the maximum and minimum of that sum, which is why they move the instant you change a term. To go the other way, from a measured record to these amplitudes, is the inverse problem, and that is what the tutorial and tc.analyse are for.

See also: the constituent table for speeds and origins, and reconstruct for the library call that does this on real timestamps.