Engine-Specific Modules#

Each prediction engine provides its own Wave and WaveTable subclasses that carry the engine-specific constituent catalogue and nodal correction logic.

In normal usage you do not need to instantiate these directly - pyfes.wave_table_factory() returns the appropriate WaveTableInterface for the requested engine. The classes documented here are useful when you need engine-specific behaviour or want to inspect the constituent definitions.

Darwin#

The pyfes.darwin module provides the 99 constituents expressed in Darwin notation with Schureman’s nodal corrections.

class pyfes.darwin.WaveTable#

Bases: WaveTableInterface

Table of tidal constituents using Darwin’s notation system.

This table manages 99 tidal constituents used by FES models. Each constituent is represented as a Darwin wave with its astronomical arguments and nodal correction coefficients.

class pyfes.darwin.Wave#

Bases: WaveInterface

A tidal wave using Darwin’s notation system.

Darwin waves are described by 11 parameters that encode the astronomical arguments and nodal correction coefficients.

doodson_numbers(self: pyfes.core.darwin.Wave) Annotated[numpy.typing.NDArray[numpy.int8], '[7, 1]']#

Get the Doodson number of the wave.

frequency(self: pyfes.core.darwin.Wave, unit: pyfes.core.FrequencyUnit = <FrequencyUnit.RADIAN_PER_HOUR: 0>) float#

Get the frequency of the tidal wave.

Parameters:

unit – The frequency unit. Default is radians per hour.

Returns:

The frequency of the tidal wave.

property name#

The name of the tidal wave.

property period#

The period of the wave in hours.

property type#

The type of tidal wave.

xdo_alphabetical(self: pyfes.core.darwin.Wave) str#

Get the XDO alphabetical representation of the wave.

xdo_numerical(self: pyfes.core.darwin.Wave) str#

Get the XDO numerical representation of the wave.

PERTH / Doodson#

The pyfes.perth module provides the 80 constituents expressed in Doodson number notation. Group modulations are available but disabled by default.

class pyfes.perth.WaveTable#

Bases: WaveTableInterface

Table of tidal constituents using Doodson’s notation system.

This table manages 80 tidal constituents used by GOT/Perth models. Each constituent is represented as a Perth wave with its Doodson number encoding.

class pyfes.perth.Wave#

Bases: WaveInterface

A tidal wave using Doodson’s notation system.

Perth waves are described by a 7-element Doodson number vector that directly encodes the tidal argument in terms of astronomical variables.

doodson_numbers(self: pyfes.core.perth.Wave) Annotated[numpy.typing.NDArray[numpy.int8], '[7, 1]']#

Get the Doodson number of the wave.

frequency(self: pyfes.core.perth.Wave, unit: pyfes.core.FrequencyUnit = <FrequencyUnit.RADIAN_PER_HOUR: 0>) float#

Get the frequency of the tidal wave.

Parameters:

unit – The frequency unit. Default is radians per hour.

Returns:

The frequency of the tidal wave.

property name#

The name of the tidal wave.

property period#

The period of the wave in hours.

property type#

The type of tidal wave.

xdo_alphabetical(self: pyfes.core.perth.Wave) str#

Get the XDO alphabetical representation of the wave.

xdo_numerical(self: pyfes.core.perth.Wave) str#

Get the XDO numerical representation of the wave.