Admittance and Minor Constituent Inference#

Tidal atlases (FES2022, GOT5.6) typically provide harmonic constants for only a subset of significant constituents. Many minor constituents, while small individually, contribute meaningfully to the total tide. Rather than requiring every constituent to be explicitly mapped, PyFES infers the amplitudes and phases of minor constituents from those of nearby major constituents using the concept of admittance.

The Admittance Concept#

The ocean’s response to tidal forcing at a given location can be characterised by a complex transfer function \(Z(\omega)\) of the angular frequency \(\omega\), called the admittance, which relates the observed tidal amplitude and phase to the equilibrium (theoretical) forcing amplitude:

\[Z_k = \frac{H_k^{\text{obs}}}{H_k^{\text{eq}}} \, e^{i G_k}\]

where \(H_k^{\text{obs}}\) is the observed amplitude, \(H_k^{\text{eq}}\) is the equilibrium amplitude from the tidal potential development, and \(G_k\) is the phase lag.

The physical insight underlying inference is that the admittance varies smoothly with frequency within each tidal species. Constituents close in frequency share similar propagation and resonance characteristics, so their admittances can be interpolated from a few well-determined reference constituents. The inferred constituent then gets the complex amplitude \(Z(\omega) \, H^{\text{eq}}\), that is:

\[H^{\text{inf}} = |Z(\omega)| \times H^{\text{eq}}, \qquad G^{\text{inf}} = \arg(Z(\omega))\]

Inference Modes#

PyFES offers four inference modes, configurable via with_inference_type(). ZERO, LINEAR and FOURIER work with both prediction engines; SPLINE too, but with the PERTH engine it does not infer \(M_1\) (see below).

Zero Inference (ZERO)#

No inference is performed. Only constituents explicitly provided in the tidal atlas are used for prediction. Minor constituents not in the atlas contribute nothing to the predicted tide. This mode is useful for diagnostic purposes or when the atlas already contains a comprehensive set of constituents.

Linear Inference (LINEAR)#

The admittance is linearly interpolated between reference constituents within each species. For each species, three reference frequencies are used:

  • Diurnal: \(Q_1\), \(O_1\), \(K_1\)

  • Semidiurnal: \(N_2\), \(M_2\), \(S_2\)

The interpolation is piecewise linear on two segments: for a minor constituent at angular frequency \(\omega\), with reference frequencies \(\omega_1 < \omega_2 < \omega_3\), the segment \([\omega_1, \omega_2]\) is used when \(\omega \leq \omega_2\) and \([\omega_2, \omega_3]\) otherwise:

\[Z(\omega) = Z(\omega_a) + \frac{\omega - \omega_a}{\omega_b - \omega_a} \left[Z(\omega_b) - Z(\omega_a)\right]\]

Constituents outside the reference interval are extrapolated from the nearest segment: for example \(2Q_1\) and \(\sigma_1\) below \(Q_1\), \(OO_1\) above \(K_1\), \(\varepsilon_2\) below \(N_2\) and \(\eta_2\) above \(S_2\).

This mode is recommended for GOT atlases (GOT4.10, GOT5.5, GOT5.6).

Spline Inference (SPLINE)#

Despite its name, this mode does not interpolate a spline through reference admittances. Each minor constituent is a fixed linear combination of two or three reference constituents (complex tides), with precomputed coefficients taken from R. Ray’s perth2 and perth3 programs and from the Grenoble (FES) software:

\[\hat{H}_k = \sum_j \alpha_{kj} \, Z_j\]
  • \(2Q_1\), \(\sigma_1\), \(\rho_1\) from \(Q_1\) and \(O_1\);

  • \(M_{11}\), \(M_{12}\), \(\chi_1\), \(\pi_1\), \(\varphi_1\), \(\theta_1\), \(J_1\), \(OO_1\) from \(O_1\) and \(K_1\);

  • \(2N_2\) from \(N_2\) and \(M_2\), then \(\varepsilon_2\) from \(2N_2\) and \(N_2\) (\(2N_2\) is thus both inferred and used as a reference);

  • \(\eta_2\) from \(M_2\) and \(K_2\);

  • \(\mu_2\), \(\nu_2\), \(\lambda_2\), \(L_2\), \(T_2\) from \(N_2\), \(M_2\) and \(K_2\), with the spline admittance coefficients published in Geophysical Research Letters, 18(5), 845–848 (1991).

Long-period constituents are not inferred. Only the constituents defined in the wave table are inferred: the PERTH wave table defines \(M_1\) instead of \(M_{11}\) and \(M_{12}\), so \(M_1\) is not inferred in this mode with the PERTH engine (LINEAR and FOURIER infer it).

This mode is recommended for FES atlases (FES2014, FES2022).

Fourier Inference (FOURIER)#

The admittance is represented by a low-order Fourier series in frequency (Munk–Cartwright approach), with a lag \(\tau = 48\) hours:

\[Z(\omega) = c_0 + c_1 \cos(\omega \tau) + c_2 \sin(\omega \tau)\]

The three complex coefficients are not fitted: they are obtained exactly from the three reference admittances (\(Q_1\), \(O_1\), \(K_1\) or \(N_2\), \(M_2\), \(S_2\)):

\[\mathbf{c} = \mathbf{A}^{-1} \, \mathbf{Z}_{\text{ref}}, \qquad \mathbf{A}_{j,:} = \left(1, \; \cos \omega_j \tau, \; \sin \omega_j \tau \right)\]

Long-period constituents still use the linear interpolation in this mode.

Long-Period Constituents#

In the LINEAR and FOURIER modes, long-period constituents are also inferred, by linear interpolation of the admittances of the 18.61-year node tide, \(M_m\) and \(M_f\). When the atlas does not provide the node tide, its equilibrium value is used. The ZERO and SPLINE modes do not infer long-period constituents.

Equilibrium Amplitudes and Love Numbers#

The inference calculation requires the equilibrium (theoretical) amplitude \(H_k^{\text{eq}}\) for each constituent. These values derive from the tidal potential development (see The Tide-Generating Potential) and are stored as constants in PyFES.

For diurnal constituents, the equilibrium amplitudes are multiplied by the diminishing factor

\[\gamma_2(\omega) = 1 + k_2(\omega) - h_2(\omega)\]

where \(k_2\) and \(h_2\) are the degree-2 body-tide Love numbers of Mathews et al. (1995, PMM95B model). They vary with frequency in the diurnal band because of the free-core-nutation resonance, close to \(K_1\). This correction accounts for the elastic deformation of the solid Earth under the tidal potential. The reference admittances are divided by \(H^{\text{eq}} \gamma_2(\omega_{\text{ref}})\), and the inferred constituents multiplied by \(\gamma_2(\omega)\).

Selecting an Inference Mode#

The choice of inference mode should match the tidal atlas:

# Recommended for FES atlases
settings = pyfes.FESSettings().with_inference_type(pyfes.SPLINE)

# Recommended for GOT atlases
settings = pyfes.PerthSettings().with_inference_type(pyfes.LINEAR)

# No inference (diagnostic)
settings = pyfes.FESSettings().with_inference_type(pyfes.ZERO)

# Fourier inference
settings = pyfes.FESSettings().with_inference_type(pyfes.FOURIER)

References#

  • Ray, R. D. (1999). A Global Ocean Tide Model From TOPEX/POSEIDON Altimetry: GOT99.2. NASA Technical Memorandum 209478.

  • Munk, W. H. & Cartwright, D. E. (1966). Tidal Spectroscopy and Prediction. Philosophical Transactions of the Royal Society of London A, 259(1105), 533–581.

  • Mathews, P. M., Buffett, B. A. & Shapiro, I. I. (1995). Love numbers for a rotating spheroidal Earth: New definitions and numerical values. Geophysical Research Letters, 22(5), 579–582.

  • Simon, B. (2013). Marées Océaniques et Côtières (943-MOC), Ch. VI.