1. Tides
1.1. Ocean and Load Tides
The rise and fall of the oceanic tides are a major source of the vertical variability of the ocean surface. Ocean tides are typically observed using float gauges, GPS stations, gravimeters, tiltmeters, pressure recorders, and satellite altimeters. For each of these measurements, it is important to note the vertical datum of the measurement technique. Ocean tides are driven by gravitational undulations due to the relative positions of the Earth, moon and sun, and the centripetal acceleration due to the Earth’s rotation [16, 33]. A secondary tidal effect, known as load tides, is due to the elastic response of the Earth’s crust to ocean tidal loading, which produces deformation of both the sea floor and adjacent land areas. Tidal oscillations for both ocean and load tides can be decomposed into a series of tidal constituents (or partial tides) of particular frequencies that are associated with the relative positions of the sun, moon and Earth. These tidal constituents are typically classified into different “species” based on their approximate period: short-period, semi-diurnal, diurnal, and long-period [see Tidal Constituents].

The amplitude and phase of major constituents are provided by ocean tide models, which can be used for tidal predictions.
Ocean tide models are typically one of following categories:
1) empirically adjusted models,
2) barotropic hydrodynamic models constrained by data assimilation, and
3) unconstrained hydrodynamic models [53].
pyTMD
is not an ocean or load tide model, but rather a tool for using constituents from tide models to calculate the height deflections or currents at particular locations and times [19].
Under the equilibrium theory of tides, the Earth is a spherical body with a uniform distribution of water over its surface [16]. In this model, the oceanic surface instantaneously responds to the tide-producing forces of the moon and sun, and is not influenced by inertia, currents or the irregular distribution of land [50]. However in reality, every constituent lags behind its corresponding equilibrium wave, and their amplitudes differ in magnitude [18]. While the equilibrium condition is rarely satisfied for shorter period tides, some of the longest period ocean tides are often assumed to be well approximated as equilibrium responses to the tidal force [43, 47].
Using the relative amplitudes from equilibrium theory are also useful for inferring unmodeled constituents [9, 10]. Tidal inference refers to the estimation of smaller (minor) constituents from estimates of the more major constituents [46]. Inferrence is a useful tool for estimating more of the tidal spectrum when only a limited set of constituents are provided by a tide model [41]. For tides in the diurnal band, a resonance from the Earth’s free core notation (FCN) can complicate inferring some constituents [2, 46, 59]. This resonance affects the instantaneous elastic response of the solid Earth to tidal loading [56].
pyTMD.io
contains routines for reading major constituent values from commonly available tide models, and interpolating those values to spatial locations.
pyTMD
uses the astronomical argument formalism outlined in Doodson and Lamb [16] for the prediction of ocean and load tides.
For any given time, pyTMD.astro
calculates the longitudes of the moon (\(S\)), sun (\(H\)), lunar perigree (\(P\)), ascending lunar node (\(N\)) and solar perigree (\(Ps\)), which are used in combination with the lunar hour angle (\(\tau\)) and the extended Doodson number (\(k\)) in a seven-dimensional Fourier series [15, 16, 44].
Each constituent has a particular “Doodson number” describing the polynomial coefficients of each of these astronomical terms in the Fourier series [16].
pyTMD
stores these coefficients in a JSON database supplied with the program.
Together these coefficients and additional nodal corrections (\(f\) and \(u\)) are used to calculate the frequencies and 18.6-year modulations of the tidal constituents, and enable the accurate determination of tidal amplitudes [15, 50].
After the determination of the major constituents, pyTMD
can estimate the amplitudes of minor constituents using inferrence methods [46, 50].
1.2. Solid Earth Tides
Similar to ocean tides, solid Earth tides (or body tides) are tidal deformations due to gravitational undulations based on the relative positions of the Earth, moon and sun [1, 16, 33, 34].
However, while ocean tides are apparent to observers on the coast, solid Earth tides are typically more difficult to observe due to the reference frame of the observer moving.
The tidal deformation of the Earth is to a very high degree instantaneous, with the Earth’s response to the gravitational potential of the moon and sun being nearly immediate.
The total gravitational potential at a position on the Earth’s surface due to a celestial object is directly related to the distance between the Earth and the object, and the mass of that object [1, 57].
Analytical approximate positions for the sun and moon can be calculated within pyTMD
, and high-resolution numerical ephemerides for the sun and moon can be downloaded from the Jet Propulsion Laboratory.
Within pyTMD
, the tidal deformation of the Earth is modeled using the Love and Shida Numbers formalism described in the IERS Conventions, which are based on [32, 57].
Love and Shida numbers describe the elastic response of the Earth in terms of vertical displacement (\(h\)), gravitational potential (\(k\)) and horizontal displacement (\(l\)) [36].
For a spherical, non-rotating Earth, the Love and Shida numbers are largely independent of tidal frequency [56, 57].
However, for a rotating, ellipsoidal Earth, the Love and Shida numbers are dependent on tidal frequency, with resonances in the diurnal and semi-diurnal bands [56, 57].
pyTMD
computes these frequency-dependent corrections along with the dissipative mantle anelasticity corrections following Mathews et al. [32].

Figure 1.3: Diurnal frequency dependence of Love and Shida Numbers from Wahr [56]
In addition to the ups and downs of tides, there is a considerable portion of tidal potential and displacement that does not vary in time, a permanent tide that is due to the Earth being in the presence of the Sun and Moon (and other planetary bodies).
The Earth is lower in polar areas and higher in equatorial areas than it would without those gravitational effects.
The IERS formalism for determining station locations is to remove all cyclical and permanent components of the tides, which is known as a “tide-free” system.
This is the default tide-system within pyTMD
.
Alternatively, the permanent tide components can be added back in order to calculate the station locations in a “mean-tide” state.
The radial difference in terms of latitude between the mean-tide and tide-free systems is:
1.3. Pole Tides
The Earth’s rotation axis is inclined at an angle of 23.5 degrees to the celestial pole, and rotates about it once every 26,000 years [25]. Superimposed on this long-term Precession, the rotation axis of the Earth shifts with respect to its mean pole location due to Nutation, Chandler Wobble, annual variations, and other processes [1, 13, 58]. Load and ocean pole tides are driven by these variations, the corresponding elastic response, and for the case of ocean pole tides the centripetal effects of Polar Motion on the ocean [13, 14]. These variations are centimeter scale in both the vertical and horizontal, and should be taken into account when comparing observations over periods longer than two months.
The formalism for estimating the pole tides within pyTMD
is also based upon IERS Conventions.
For ocean pole tides, pyTMD
uses the equilibrium response model from Desai [13] as recommended by IERS Conventions [42].
pyTMD
uses the timescale
library for reading the Earth Orientation Parameters (EOPs) necessary for computing load pole and ocean pole tide variations.
The currently accepted formalism for estimating the reference position of the Earth’s figure axis at a given date is the IERS 2018 secular pole model:
The time-dependent offsets from the reference rotation pole position, also known as wobble parameters (\(m_1\) and \(m_2\)), are then calculated using instantaneous values of the Earth Orientation Parameters [42, 55].

Figure 1.5: Polar motion estimates from the IERS