Nodal Corrections: Amplitude and Phase Modulations#
The standard harmonic prediction equation treats each tidal constituent as a pure sinusoid of fixed amplitude and phase. In reality, the amplitude and phase of each constituent are slowly modulated by the 18.61-year precession of the lunar node. Rather than include all the closely spaced “satellite” frequencies that produce this modulation, the classical approach absorbs it into time-dependent correction factors \(f\) (amplitude) and \(u\) (phase), collectively known as nodal corrections.
This section documents all the nodal correction formulae implemented in PyFES, following Schureman’s notation.
The Prediction Equation with Nodal Corrections#
The full harmonic prediction equation at universal time \(t_0\) is:
where:
\(H_0\) is the mean water level above the chart datum,
\(H_k\) is the amplitude of constituent \(k\) from the tidal atlas,
\(G_k\) is the phase lag of constituent \(k\),
\(\omega_k\) is the angular speed of constituent \(k\),
\(V_{k,0}\) is the equilibrium astronomical argument at Greenwich,
\(f_k\) is the nodal amplitude factor (dimensionless, close to 1),
\(u_k\) is the nodal phase correction (in degrees or radians).
The factors \(f_k\) and \(u_k\) vary slowly over the 18.61-year nodal cycle and are recomputed at each time step (or, in some older implementations, once per year).
Physical Origin#
The dominant source of nodal modulation is the regression of the Moon’s ascending node \(N\) with a period of 18.61 years. As the node regresses, the inclination \(I\) of the lunar orbit to the celestial equator varies between approximately 18.3° and 28.6°, modulating the tidal potential coefficients that depend on \(I\).
In the harmonic development, each major constituent is accompanied by nearby “satellite” frequencies separated by the nodal rate (\(\dot{N}' \approx 0.0022°/\text{h}\)). Instead of resolving these satellites individually (which would require very long observational records), the classical method treats each group as a single constituent whose amplitude and phase vary slowly with \(N\).
Nodal Amplitude Factor \(f\)#
The factor \(f_k\) is defined as the ratio of the true obliquity factor (which depends on \(I\) and hence on \(N\)) to its mean value. Since \(I\) varies over the 18.61-year cycle, \(f_k\) oscillates around unity. The mean obliquity values used in the denominators are the constants \(k_{65}\) through \(k_{235}\) defined in PyFES (from Schureman’s formulae).
Long-Period Constituents#
Diurnal Constituents#
where \(k_{227,1} = 0.8965\), \(k_{227,2} = 0.6001\), \(k_{227,3} = 0.1006\). The \(K_1\) formula is more complex because this constituent combines lunar and solar terms (see Astronomical Angle Computation).
Semidiurnal Constituents#
where \(k_{235,1} = 19.0444\), \(k_{235,2} = 2.7702\), \(k_{235,3} = 0.0981\).
where \(1/P_a\) is the x1ra factor documented in
Astronomical Angle Computation.
Compound Constituents#
For compound waves formed by the interaction of parent constituents, the nodal factor is the product of the parents’ factors:
Solar constituents (\(S_2\), \(S_1\), etc.) have \(f = 1\) since the Sun has no nodal modulation.
Nodal Phase Correction \(u\)#
The phase correction \(u_k\) adjusts the phase of each constituent to account for the slowly varying position of the lunar node. The corrections follow systematic patterns depending on the constituent class.
Long-Period Constituents#
Diurnal Constituents#
where \(\xi\) and \(\nu\) are the longitude and right ascension of the lunar intersection, and \(\nu'\) is the combined lunar-solar correction angle (see Astronomical Angle Computation).
Semidiurnal Constituents#
where \(R\) is the phase factor for \(L_2\) and \(\nu''\) is the combined correction for \(K_2\).
Compound Constituents#
For compound waves, the phase correction is the algebraic sum of the parents’ corrections. For example:
Mean Obliquity Constants#
The denominators in the \(f\)-factor formulae are the mean values of the obliquity-dependent expressions, computed with \(I\) at its mean value. These constants come from Schureman’s evaluation of the expressions at the mean inclination:
Constant |
Expression (mean value of) |
Schureman |
PyFES |
|---|---|---|---|
\(k_{65}\) |
\(\frac{2}{3} - \sin^2 I\) |
0.5021 |
0.5021 |
\(k_{66}\) |
\(\sin^2 I\) |
0.1578 |
0.1578 |
\(k_{67}\) |
\(\sin I \cos^2(I/2)\) |
0.3800 |
0.3800 |
\(k_{68}\) |
\(\sin 2I\) |
0.7214 |
0.7214 |
\(k_{69}\) |
\(\sin I \sin^2(I/2)\) |
0.0164 |
0.0164 |
\(k_{70}\) |
\(\cos^4(I/2)\) |
0.9154 |
0.9154 |
PERTH Group Modulations#
The PERTH/Doodson engine offers an alternative approach to nodal corrections. Instead of applying individual \(f\) and \(u\) factors to each constituent, related constituents within the same tidal group (sharing the same \(n_1\) and \(n_2\) coefficients) are modulated together. The group modulation sums over the sideline frequencies within each group, providing a more physically consistent treatment of the nodal cycle.
Group modulations are enabled via:
settings = pyfes.PerthSettings().with_group_modulations(True)
When group modulations are disabled, the PERTH engine falls back to individual nodal corrections computed from the same Schureman-derived expressions documented above.
References#
Schureman, P. (1940). Manual of Harmonic Analysis and Prediction of Tides, SP 98, pp. 24–26 (formulas 65–80), pp. 44–46 (formulas 213–235).
Simon, B. (2013). Marées Océaniques et Côtières (943-MOC), Ch. VI, pp. 159–163.