opendrift.readers.reader_netCDF_CF_unstructured

Module Contents

Classes

Reader

A reader for unstructured (irregularily gridded) `CF compliant

opendrift.readers.reader_netCDF_CF_unstructured.logger
class opendrift.readers.reader_netCDF_CF_unstructured.Reader(filename=None, name=None, proj4=None)[source]

Bases: opendrift.readers.basereader.BaseReader, opendrift.readers.basereader.UnstructuredReader

A reader for unstructured (irregularily gridded) CF compliant netCDF files.

Args:
param filename

A single netCDF file, or a pattern of files. The netCDF file can also be an URL to an OPeNDAP server.

type filename

string, requiered.

param name

Name of reader

type name

string, optional

param proj4

PROJ.4 string describing projection of data.

type proj4

string, optional

See also

py:mod:opendrift.readers.basereader.unstructured.

Common constructor for all readers

variable_aliases
node_variables = ['salinity', 'temperature', 'sea_floor_depth_below_sea_level', 'sea_floor_depth_below_geoid', 'sea_surface_height_above_geoid']
face_variables = ['x_sea_water_velocity', 'y_sea_water_velocity', 'upward_sea_water_velocity']
dataset
siglay
siglev
siglay_center
siglev_center
ocean_depth_nele
ocean_depth_node
plot_mesh(self)[source]

Plot the grid mesh. Does not automatically show the figure.

get_variables(self, requested_variables, time=None, x=None, y=None, z=None)[source]

FVCOM Grid:

FVCOM uses ‘triangular prisms’ for gridding. Some variables are defined on the faces of the triangles, while others at the node.

x and y holds the positions of the node, while xc and yc holds the positions on the centroids/faces. The centroids/faces are also known as ‘zonal’, or elements (presumably as in finite element).

Note

Currently this reader does not really interpolate. It looks up the closest point in time and space.

Each element has a lookup-table of its surrounding elements, this list can be used when looking up elements for the interpolator of an arbitrary point on the grid. The same goes for the nodes.

Let E be number of elements and N be number of nodes.

Relevant lookup-tables:

nbe: [3 x E] elements surround each element nbve: [9 x N] elements surrounding each node, minimum 3 nbsn: [11 x N] nodes surrounding each node

Variables:

Face: * u * v

Node: * temperature * salinity

static _vector_nearest_(X, xp)[source]

Find nearest element in vector of vectors X for each xp.

Args:

X NxM matrix of levels xp M vector of positions

Returns:
i M vector of indices [0..N] of closest element in

X[0..N, i] to xp[i]

__nearest_node_sigma__(self, var, nodes, z)[source]

Find nearest depth at node (sigma layer or sigma level depending on where the variable is defined).

__nearest_face_sigma__(self, var, el, z)[source]

Find nearest depth at element (sigma layer or sigma level depending on where the variable is defined).

static z_from_sigma(sigma, depth, elevation=0)[source]

Calculate z-depth from sigma constant.

https://rdrr.io/github/edwardlavender/fvcom.tbx/src/R/depth_from_known.R

Args:

sigma Sigma coefficient(s) depth Depth below mean sea-surface elevation Elevation of sea-surface (e.g. tidal)

Returns: z, depth below sea-surface in meters.