Tidal constituents analysis

class pytide.AstronomicAngle

Bases: pytide.core.AstronomicAngle

Initialize some astronomic data useful for nodal corrections.

Parameters

date (datetime.datetime, optional) – Desired UTC time

property h

Mean longitude of the sun

property i

Obliquity of lunar orbit with respect to earth’s equator

property n

Longitude of moon’s node

property nu

Right ascension of lunar intersection

property nuprim

Term in argument of lunisolar constituent \(K_{1}\)

property nusec

Term in argument of lunisolar constituent \(K_{2}\)

property p

Mean longitude of lunar perigee

property p1

Mean longitude of solar perigee

property r

Term in argument of constituent \(L_{2}\)

property s

Mean longitude of the moon

property t

Hour angle of mean sun

property x1ra

Factor in amplitude of constituent \(L_{2}\)

property xi

Longitude in moon’s orbit of lunar intersection

class pytide.Wave

Bases: pytide.core.Wave

Tidal wave properties

class Ident

Bases: pybind11_builtins.pybind11_object

Members:

kMm : \(Mm\)

kMf : \(Mf\)

kMtm : \(Mtm\)

kMsqm : \(Msqm\)

k2Q1 : \(2Q_{1}\)

kSigma1 : \(\sigma_{1}\)

kQ1 : \(Q_{1}\)

kRho1 : \(\rho_{1}\)

kO1 : \(O_{1}\)

kMP1 : \(MP_{1}\)

kM11 : \(M_{11}\)

kM12 : \(M_{12}\)

kM13 : \(M_{13}\)

kChi1 : \(\chi_{1}\)

kPi1 : \(\pi_{1}\)

kP1 : \(P_{1}\)

kS1 : \(S_{1}\)

kK1 : \(K_{1}\)

kPsi1 : \(\psi_{1}\)

kPhi1 : \(\varphi_{1}\)

kTheta1 : \(\theta_{1}\)

kJ1 : \(J_{1}\)

kOO1 : \(OO_{1}\)

kMNS2 : \(MNS_{2}\)

kEps2 : \(\varepsilon_{2}\)

k2N2 : \(2N_{2}\)

kMu2 : \(\upsilon_{2}\)

k2MS2 : \(2MS_{2}\)

kN2 : \(N_{2}\)

kNu2 : \(\nu_{2}\)

kM2 : \(M_{2}\)

kMKS2 : \(MKS_{2}\)

kLambda2 : \(\lambda_{2}\)

kL2 : \(L_{2}\)

k2MN2 : \(2MN_{2}\)

kT2 : \(T_{2}\)

kS2 : \(S_{2}\)

kR2 : \(R_{2}\)

kK2 : \(K_{2}\)

kMSN2 : \(MSN_{2}\)

kEta2 : \(\eta_{2}\)

k2SM2 : \(2SM_{2}\)

kMO3 : \(MO_{3}\)

k2MK3 : \(2MK_{3}\)

kM3 : \(M_{3}\)

kMK3 : \(MK_{3}\)

kN4 : \(N_{4}\)

kMN4 : \(MN_{4}\)

kM4 : \(M_{4}\)

kSN4 : \(SN_{4}\)

kMS4 : \(MS_{4}\)

kMK4 : \(MK_{4}\)

kS4 : \(S_{4}\)

kSK4 : \(SK_{4}\)

kR4 : \(R_{4}\)

k2MN6 : \(2MN_{6}\)

kM6 : \(M_{6}\)

kMSN6 : \(MSN_{6}\)

k2MS6 : \(2MS_{6}\)

k2MK6 : \(2MK_{6}\)

k2SM6 : \(2SM_{6}\)

kMSK6 : \(MSK_{6}\)

kS6 : \(S_{6}\)

kM8 : \(M_{8}\)

kMSf : \(MSf\)

kSsa : \(Ssa\)

kSa : \(Sa\)

property name
class TidalType

Bases: pybind11_builtins.pybind11_object

Possible type of tidal wave

Members:

kLongPeriod : Long period tidal waves

kShortPeriod : Short period tidal waves

property name
property f

Gets the nodal correction for amplitude

property freq

Gets the wave frequency (radians per seconds)

property ident

Gets the wave ident

name(self: pytide.core.Wave) str

Gets the wave name

nodal_a(self: pytide.core.Wave, a: pytide.core.AstronomicAngle) None

Compute nodal corrections from SCHUREMAN (1958).

Parameters

a (pytide.core.AstronomicAngle) – Astronomic angle

nodal_g(self: pytide.core.Wave, a: pytide.core.AstronomicAngle) None

Compute nodal corrections from SCHUREMAN (1958).

Parameters

a (pytide.core.AstronomicAngle) – Astronomic angle

property type

Gets the wave type

property u

Gets the nodal correction for phase

v(self: pytide.core.Wave) float

Gets \(v\) (greenwich argument)

vu(self: pytide.core.Wave) float

Gets \(v\) (greenwich argument) + \(u\) (nodal correction for phase)

class pytide.WaveDict

Bases: pytide.WaveTable

Manages the tidal wave table as a dictionary.

compute_nodal_corrections(date: datetime.datetime) pytide.core.AstronomicAngle

Compute nodal corrections.

Parameters

date (datetime.datetime) – Desired date

Returns

The astronomic angle, indicating the date on which the tide is to be calculated.

Return type

core.AstronomicAngle

compute_nodal_modulations(dates: Union[List[datetime.datetime], numpy.ndarray]) Tuple[numpy.ndarray, numpy.ndarray]

Compute nodal modulations for amplitude and phase.

Parameters

dates (list, numpy.ndarray) – Desired dates

Returns

the nodal correction for amplitude, v (greenwich argument) + u (nodal correction for phase)

Return type

tuple

constituents() List[str]

Gets the wave constituents handled by this instance

freq()

Gets the waves frequencies in radians per seconds

harmonic_analysis(h: numpy.ndarray, f: numpy.ndarray, vu: numpy.ndarray, dtype=None) Dict[str, numpy.ndarray]

Harmonic Analysis

Parameters
  • h (numpy.ndarray) – Sea level.

  • f (numpy.ndarray) – Nodal correction coefficient applied to the amplitude of the constituents analyzed.

  • vu (numpy.ndarray) – Astronomical argument at time \(t\) + the nodal correction coefficient applied to the phase of the constituents analyzed

  • dtype (numpy.dtype, optional) – Data type of the complex number

Returns

A mapping between the wave name and its complex number representing it.

Return type

dict

static known_constituents() List[str]

Gets the tidal waves known by this object

static select_waves_for_analysis(duration, n_periods=2) Iterator[str]

Returns the list of tidal waves such that their period is more than twice the duration of the time series analyzed.

tide_from_mapping(self: pytide.core.WaveTable, date: handle, wave: numpy.ndarray[numpy.complex128[m, n], flags.f_contiguous]) numpy.ndarray[numpy.float64]

Calculates the tide for a given tidal wave mapping.

Parameters
  • date (datetime.datetime) – Mapping date

  • wave (numpy.ndarray) – A matrix containing the wave properties for each point on the map.

Returns

The tide calculated on the area of interest provided.

Return type

numpy.ndarray

tide_from_tide_series(dates: numpy.ndarray, wave: Dict[str, numpy.complex128]) numpy.ndarray

Calculates the tide of a given time series.

Parameters
  • dates (numpy.ndarray) – time series data

  • wave (dict) – Tidal wave properties.

Returns

The tide calculated for the time series provided.

Return type

numpy.ndarray

wave(*args, **kwargs)

Overloaded function.

  1. wave(self: pytide.core.WaveTable, ident: pytide.core.Wave.Ident) -> pytide.core.Wave

Gets the wave properties

  1. wave(self: pytide.core.WaveTable, ident: str) -> pytide.core.Wave

Gets the wave properties

class pytide.WaveTable

Bases: pytide.core.WaveTable

Properties of tidal constituents

compute_nodal_corrections(date: datetime.datetime) pytide.core.AstronomicAngle

Compute nodal corrections.

Parameters

date (datetime.datetime) – Desired date

Returns

The astronomic angle, indicating the date on which the tide is to be calculated.

Return type

core.AstronomicAngle

compute_nodal_modulations(dates: Union[List[datetime.datetime], numpy.ndarray]) Tuple[numpy.ndarray, numpy.ndarray]

Compute nodal modulations for amplitude and phase.

Parameters

dates (list, numpy.ndarray) – Desired dates

Returns

the nodal correction for amplitude, v (greenwich argument) + u (nodal correction for phase)

Return type

tuple

constituents() List[str]

Gets the wave constituents handled by this instance

freq() numpy.ndarray

Gets the waves frequencies in radians per seconds

static harmonic_analysis(h: numpy.ndarray, f: numpy.ndarray, vu: numpy.ndarray, dtype=None) numpy.ndarray

Harmonic Analysis

The harmonic analysis method consists in expressing the ocean tidal variations as a sum of independent constituents accordingly to the tidal potential spectrum. Then the sea surface elevation at a point \((x, y)\) and time \(t\) can be expressed as a linear sum as follow:

\[S_{ap} = S_{0}(x, y) + \sum_{k=0}^n f_{k}(t)S_{k}(x, y) \times cos [\omega_{k}t + {v}_{k}(t) + u_{k}(t) - G_{k}(x,y)]\]

where:

  • \(n\) is the number of constituents,

  • \(S_{0}(x, y)\) is the mean sea level,

  • \(S_{k}(x, y)\) is the amplitude of the constituent of index \(k\),

  • \(G_{k}(x, y)\) is the phase lag relative to Greenwich time,

  • \(w_{k}\) is the angular frequency of the constituent of index \(k\),

  • \(v_{k}\) is the astronomical argument at time \(t\),

  • \(f_{k}(t)\) is the nodal correction coefficient applied to the amplitude of the constituent of index \(k\),

  • \(u_{k}(t)\) is the nodal correction coefficient applied to the phase of the constituent of index \(k\).

The a priori analysis spectrum includes the most important astronomical constituents in the Darwin development, completed by Shureman in 1958, and many non-linear waves. The definition of tidal constants and astronomical arguments is taken from FES2014 tidal prediction software and a complete definition of waves is also available in Shureman (1958). This spectrum is the most commonly used for harmonic analysis due the simplification given by the nodal correction concept (\(f\) and \(u\) coefficients above) which allows dealing with slow motions of the lunar ascending node and reducing the number of constituents in the tidal spectrum.

More details about this harmonic analysis method can be found in Ponchaut et al. 1999.

Parameters
  • h (numpy.ndarray) – Sea level.

  • f (numpy.ndarray) – Nodal correction coefficient applied to the amplitude of the constituents analyzed.

  • vu (numpy.ndarray) – Astronomical argument at time \(t\) + the nodal correction coefficient applied to the phase of the constituents analyzed

  • dtype (numpy.dtype, optional) – Data type of the complex numbers

Returns

The complex number representing the different reconstructed waves.

Return type

numpy.ndarray

static known_constituents() List[str]

Gets the tidal waves known by this object

static select_waves_for_analysis(duration, n_periods=2) Iterator[str]

Returns the list of tidal waves such that their period is more than twice the duration of the time series analyzed.

tide_from_mapping(self: pytide.core.WaveTable, date: handle, wave: numpy.ndarray[numpy.complex128[m, n], flags.f_contiguous]) numpy.ndarray[numpy.float64]

Calculates the tide for a given tidal wave mapping.

Parameters
  • date (datetime.datetime) – Mapping date

  • wave (numpy.ndarray) – A matrix containing the wave properties for each point on the map.

Returns

The tide calculated on the area of interest provided.

Return type

numpy.ndarray

tide_from_tide_series(self: pytide.core.WaveTable, dates: numpy.ndarray, wave: numpy.ndarray[numpy.complex128[m, 1]]) numpy.ndarray[numpy.float64]

Calculates the tide of a given time series.

Parameters
  • dates (numpy.ndarray) – UTC dates. The array must be one-dimensional and of type numpy.datetime64.

  • wave (numpy.ndarray) – Tidal wave properties.

Returns

The tide calculated for the time series provided.

Return type

numpy.ndarray

wave(*args, **kwargs)

Overloaded function.

  1. wave(self: pytide.core.WaveTable, ident: pytide.core.Wave.Ident) -> pytide.core.Wave

Gets the wave properties

  1. wave(self: pytide.core.WaveTable, ident: str) -> pytide.core.Wave

Gets the wave properties