opendrift.readers.reader_ROMS_native

Module Contents

Classes

Reader

A reader for ROMS Output files. It can take a single file, a file pattern, a URL or an xarray Dataset.

Functions

rotate_vectors_angle(u, v, radians)

Attributes

logger

opendrift.readers.reader_ROMS_native.logger
class opendrift.readers.reader_ROMS_native.Reader(filename=None, name=None, gridfile=None, standard_name_mapping={}, save_interpolator=False, interpolator_filename=None)[source]

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

A reader for ROMS Output files. It can take a single file, a file pattern, a URL or an xarray Dataset.

Args:
param filename:

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

type filename:

string, xr.Dataset (required).

param name:

Name of reader

type name:

string, optional

param save_interpolator:

Whether or not to save the interpolator that goes from lon/lat to x/y (calculated in structured.py)

type save_interpolator:

bool

param interpolator_filename:

If save_interpolator is True, user can input this string to control where interpolator is saved.

type interpolator_filename:

Path, str, optional

Example:

from opendrift.readers.reader_ROMS_native import Reader
r = Reader("roms.nc")

Several files can be specified by using a pattern:

from opendrift.readers.reader_ROMS_native import Reader
r = Reader("*.nc")

An OPeNDAP URL can be used:

from opendrift.readers.reader_ROMS_native import Reader
r = Reader('https://thredds.met.no/thredds/dodsC/mepslatest/meps_lagged_6_h_latest_2_5km_latest.nc')

A xr.Dataset can be used:

from opendrift.readers.reader_ROMS_native import Reader
ds = xr.open_dataset(filename, decode_times=False)
r = Reader(ds)

Common constructor for all readers

property mask_rho

Mask for the rho-points.

Uses wetdry_mask_rho (which should be 3D) if available, otherwise mask_rho (2D). If this mask is 2D, read it in this one time and use going forward in simulation. If 3D, will read in parts of the mask each loop.

property mask_u

Mask for the u-points.

Uses wetdry_mask_u (which should be 3D) if available, otherwise mask_u (2D). If this mask is 2D, read it in this one time and use going forward in simulation. If 3D, will read in parts of the mask each loop.

property mask_v

Mask for the v-points.

Uses wetdry_mask_v (which should be 3D) if available, otherwise mask_v (2D). If this mask is 2D, read it in this one time and use going forward in simulation. If 3D, will read in parts of the mask each loop.

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

Obtain a _block_ of values of the requested variables at all positions (x, y, z) closest to given time. These will be stored in opendrift.readers.interpolation.structured.ReaderBlock and accessed from there.

Arguments:

variables: list of variables.

time: datetime or None, time at which data are requested.

x, y: float or ndarrays; coordinates of requested points.

z: float or ndarray; vertical position (in meters, positive up)

Returns:

Dictionary

keywords: variables (string) values: 2D ndarray bounding x and y.

opendrift.readers.reader_ROMS_native.rotate_vectors_angle(u, v, radians)[source]