Harmonic Development and the Doodson Classification#
The positions of the Moon and Sun vary quasi-periodically in time, causing the tide-generating potential to oscillate with a rich spectrum of discrete frequencies. The harmonic development consists of expanding this potential into a sum of cosine terms — the tidal constituents — each characterised by a unique frequency derived from the rates of change of six astronomical angles. This section presents the derivation of the Doodson classification system that systematically encodes these frequencies.
The Six Fundamental Variables#
All tidal frequencies can be expressed as integer linear combinations of the rates of change of six independent astronomical angles, ranked by decreasing angular velocity:
Symbol |
Physical meaning |
Angular velocity (°/h) |
Period |
|---|---|---|---|
\(\tau\) |
Local mean lunar time (hour angle of the mean Moon) |
14.492052 |
1.035 days |
\(s\) |
Mean longitude of the Moon |
0.549017 |
27.322 days |
\(h\) |
Mean longitude of the Sun |
0.041069 |
365.242 days |
\(p\) |
Mean longitude of the lunar perigee |
0.004642 |
8.847 years |
\(N'\) |
Negative longitude of the Moon’s ascending node (\(-N\)) |
0.002206 |
18.613 years |
\(p_1\) |
Mean longitude of the solar perihelion |
0.000002 |
20,940 years |
The local mean lunar time \(\tau\) is related to the civil time \(T\) (in hours) and the mean longitudes by:
This relation arises because the hour angle of the mean Moon equals the hour angle of the mean Sun (\(15° \cdot T\)) plus the difference in mean longitudes (\(h - s\)). These six variables are mutually independent — no exact rational relationship exists between any pair of their periods — which is why the tide is technically not periodic but merely quasi-periodic.
General Form of a Tidal Argument#
Each tidal constituent \(k\) has an astronomical argument of the form:
where the \(n_i\) are small integers (typically in the range \(-5\) to \(+6\) for potential-derived constituents). The constituent’s angular frequency is:
where the dots denote the constant angular velocities listed in the table above.
The coefficient \(n_1\) determines the tidal species: constituents with \(n_1 = 0\) are long-period, \(n_1 = 1\) diurnal, \(n_1 = 2\) semidiurnal, and so on.
Doodson Number Encoding#
To obtain a compact notation avoiding negative digits, Doodson (1921) proposed adding 5 to each coefficient \(n_i\) (for \(i \geq 2\)), while leaving the species coefficient \(n_1\) unchanged. The resulting six-digit integer is the Doodson number:
where a dot conventionally separates the first three digits from the last
three. For digits exceeding 9, special symbols are used: X for 10,
E for 11, T for 12.
Example — M₂ (principal lunar semidiurnal):
The \(M_2\) constituent has the argument \(\theta = 2\tau\), meaning \((n_1, n_2, n_3, n_4, n_5, n_6) = (2, 0, 0, 0, 0, 0)\). Adding 5 to each coefficient except the first:
Example — S₂ (principal solar semidiurnal):
The \(S_2\) argument is \(\theta = 2\tau + 2s - 2h = 2T\) (since \(\tau = T + h - s\) in hourly notation), giving \((n_1, n_2, n_3, n_4, n_5, n_6) = (2, 2, -2, 0, 0, 0)\):
Example — K₁ (lunisolar diurnal):
\((n_1, n_2, n_3, n_4, n_5, n_6) = (1, 1, 1, 0, 0, 0)\):
Example — O₁ (principal lunar diurnal):
\((n_1, n_2, n_3, n_4, n_5, n_6) = (1, -1, 0, 0, 0, 0)\):
Extended Doodson Number#
In practice, an additional seventh digit is appended to encode a phase quadrant offset \(n_7 \times 90°\) that ensures all potential terms appear as positive cosines. The coefficient \(n_7\) is 0 or 1 for cosine terms and \(\pm 1\) for sine terms. With the same offset convention, the seventh digit is \(n_7 + 5\).
Species, Groups, and Subgroups#
The Doodson classification introduces a natural hierarchy:
Species: constituents sharing the same \(n_1\) (number of cycles per lunar day).
Group: constituents within a species sharing the same \(n_2\) (same \(n_1\) and \(n_2\)).
Subgroup: constituents within a group sharing the same \(n_3\).
Since constituents are sorted by ascending Doodson number, they are automatically ordered by increasing frequency within each species.
XDO Notation#
Because compound waves arising from non-linear hydrodynamic interactions can have coefficients outside the \([-5, +6]\) range of the original Doodson encoding, an extended alphabetical notation was developed. In this XDO (Extended Doodson Ordering) system, each coefficient \(n_i\) (including \(n_1\)) is mapped to a letter:
Coefficient value |
Letter |
|---|---|
\(\ldots, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, \ldots\) |
\(\ldots,\) W, X, Y, Z, A, B, C, D, E, F, G, \(\ldots\) |
The mapping uses the sequence R S T U V W X Y Z A B C D E F G H I J ...
with Z at coefficient 0. For example:
\(M_2\) with coefficients (2, 0, 0, 0, 0, 0, 0) becomes
BZZZZZ\(S_2\) with coefficients (2, 2, -2, 0, 0, 0, 0) becomes
BCXZZZZ
In PyFES, the xdo_numerical() and xdo_alphabetical() methods on
WaveInterface return these representations.
Darwin versus Doodson Notation#
The two notation systems are mathematically equivalent but differ in philosophy:
Darwin notation assigns mnemonic names to individual constituents (\(M_2\), \(S_2\), \(K_1\), etc.) and defines each constituent’s argument, speed, and nodal corrections explicitly. This is the approach used by the FES/Darwin engine (
engine: darwin).Doodson notation uses the systematic six-digit code to identify constituents by their astronomical argument coefficients, enabling mechanical enumeration of all possible tidal frequencies. This is the approach used by the PERTH/Doodson engine (
engine: perth).
PyFES supports both via its dual-engine architecture: the darwin.WaveTable
stores constituents with their Darwin-style argument definitions, while the
perth.WaveTable uses the Doodson coefficient representation internally.
The Harmonic Prediction Equation#
Combining the potential development with the ocean’s response at a given location yields the harmonic tidal equation. The tidal height at a point with longitude \(G\) at universal time \(t_0\) is:
where:
\(H_0\) is the mean water level above the datum,
\(H_k\) and \(G_k\) are the amplitude and phase lag (harmonic constants) of constituent \(k\) at the given location,
\(V_{k,0}(t_0)\) is the astronomical argument at the Greenwich meridian at time \(t_0 = 0\),
\(\omega_k\) is the angular speed of constituent \(k\),
\(f_k\) and \(u_k\) are the nodal corrections (see Nodal Corrections: Amplitude and Phase Modulations).
The harmonic constants \((H_k, G_k)\) are provided by tidal atlases (FES2022, GOT5.6, etc.) or determined from tide gauge observations via harmonic analysis.
References#
Simon, B. (2013). Marées Océaniques et Côtières (943-MOC), Ch. V, pp. 102–125.
Schureman, P. (1940). Manual of Harmonic Analysis and Prediction of Tides, SP 98, pp. 3–9.
Doodson, A. T. (1921). The Harmonic Development of the Tide-Generating Potential. Proc. Roy. Soc. London A, 100(704), 305–329.