FES

  • Reads files for Finite Element Solution (FES), Empirical Ocean Tide (EOT), and Hamburg direct data Assimilation Methods for Tides (HAMTIDE) models

    • ascii

    • netCDF4

  • Spatially interpolates tidal constituents to input coordinates

Calling Sequence

import pyTMD.io
amp,ph = pyTMD.io.FES.extract_constants(ilon, ilat, model_files,
   type='z',
   version=version,
   method='spline',
   compressed=True,
   scale=1.0/100.0)

Source code

pyTMD.io.FES.extract_constants(ilon: ndarray, ilat: ndarray, model_files: str | list | pathlib.Path | None = None, **kwargs)[source]

Reads files for a FES ascii or netCDF4 tidal model

Makes initial calculations to run the tide program

Spatially interpolates tidal constituents to input coordinates

Parameters
ilon: np.ndarray

longitude to interpolate

ilat: np.ndarray

latitude to interpolate

model_files: str, list, pathlib.Path or NoneType, default None

list of model files for each constituent

type: str, default ‘z’

Tidal variable to read

  • 'z': heights

  • 'u': horizontal transport velocities

  • 'v': vertical transport velocities

version: str or NoneType, default None

Model version to read

  • 'FES1999'

  • 'FES2004'

  • 'FES2012'

  • 'FES2014'

  • 'EOT20'

  • 'HAMTIDE11'

method: str, default ‘spline’

Interpolation method

  • 'bilinear': quick bilinear interpolation

  • 'spline': scipy bivariate spline interpolation

  • 'linear', 'nearest': scipy regular grid interpolations

extrapolate: bool, default False

Extrapolate model using nearest-neighbors

cutoff: float, default 10.0

Extrapolation cutoff in kilometers

Set to np.inf to extrapolate for all points

compressed: bool, default False

Input files are gzip compressed

scale: float, default 1.0

Scaling factor for converting to output units

Returns
amplitude: np.ndarray

amplitudes of tidal constituents

phase: np.ndarray

phases of tidal constituents

pyTMD.io.FES.read_constants(model_files: str | list | pathlib.Path | None = None, **kwargs)[source]

Reads files for a FES ascii or netCDF4 tidal model

Parameters
model_files: str, list, pathlib.Path or NoneType, default None

list of model files for each constituent

type: str, default ‘z’

Tidal variable to read

  • 'z': heights

  • 'u': horizontal transport velocities

  • 'v': vertical transport velocities

version: str or NoneType, default None

Model version to read

  • 'FES1999'

  • 'FES2004'

  • 'FES2012'

  • 'FES2014'

  • 'EOT20'

  • 'HAMTIDE11'

compressed: bool, default False

Input files are gzip compressed

Returns
constituents: obj

complex form of tide model constituents

pyTMD.io.FES.interpolate_constants(ilon: ndarray, ilat: ndarray, constituents, **kwargs)[source]

Interpolate constants from FES tidal models to input coordinates

Makes initial calculations to run the tide program

Parameters
ilon: np.ndarray

longitude to interpolate

ilat: np.ndarray

latitude to interpolate

constituents: obj

Tide model constituents (complex form)

method: str, default ‘spline’

Interpolation method

  • 'bilinear': quick bilinear interpolation

  • 'spline': scipy bivariate spline interpolation

  • 'linear', 'nearest': scipy regular grid interpolations

extrapolate: bool, default False

Extrapolate model using nearest-neighbors

cutoff: float, default 10.0

Extrapolation cutoff in kilometers

Set to np.inf to extrapolate for all points

scale: float, default 1.0

Scaling factor for converting to output units

Returns
amplitude: np.ndarray

amplitudes of tidal constituents

phase: np.ndarray

phases of tidal constituents

pyTMD.io.FES.read_ascii_file(input_file: str | pathlib.Path, **kwargs)[source]

Read FES (Finite Element Solution) tide model file

Parameters
input_file: str or pathlib.Path

model file

compressed: bool, default False

Input file is gzip compressed

Returns
hc: np.ndarray

complex form of tidal constituent oscillation

lon: np.ndarray

longitude of tidal model

lat: np.ndarray

latitude of tidal model

pyTMD.io.FES.read_netcdf_file(input_file: str | pathlib.Path, **kwargs)[source]

Read FES (Finite Element Solution) tide model netCDF4 file

Parameters
input_file: str or pathlib.Path

model file

type: str or NoneType, default None

Tidal variable to read

  • 'z': heights

  • 'u': horizontal transport velocities

  • 'v': vertical transport velocities

version: str or NoneType, default None

FES model version

  • 'FES2012'

  • 'FES2014'

  • 'EOT20'

  • 'HAMTIDE11'

compressed: bool, default False

Input file is gzip compressed

Returns
hc: np.ndarray

complex form of tidal constituent oscillation

lon: np.ndarray

longitude of tidal model

lat: np.ndarray

latitude of tidal model

pyTMD.io.FES.output_netcdf_file(FILE: str | pathlib.Path, hc: ndarray, lon: ndarray, lat: ndarray, constituent: str, **kwargs)[source]

Writes tidal constituents to netCDF4 files in FES2014 format

Parameters
FILE: str

output FES model file name

hc: np.ndarray

Eulerian form of tidal constituent

lon: np.ndarray

longitude coordinates

lat: np.ndarray

latitude coordinates

constituent: str

tidal constituent ID

type: str or NoneType, default None

Tidal variable to output

  • 'z': heights

  • 'u': horizontal transport velocities

  • 'v': vertical transport velocities

pyTMD.io.FES._extend_array(input_array: ndarray, step_size: float)[source]

Extends a longitude array

Parameters
input_array: np.ndarray

array to extend

step_size: float

step size between elements of array

Returns
temp: np.ndarray

extended array

pyTMD.io.FES._extend_matrix(input_matrix: ndarray)[source]

Extends a global matrix

Parameters
input_matrix: np.ndarray

matrix to extend

Returns
temp: np.ndarray

extended matrix