pylag.roms_data_reader module
Data reader for input data generated by ROMS
Note
roms_data_reader is implemented in Cython. Only a small portion of the API is exposed in Python with accompanying documentation. However, more details can be found in pylag.data_reader, where a set of python wrappers have been implemented.
- class pylag.roms_data_reader.ROMSDataReader(config, mediator)
Bases:
DataReaderDataReader for inputs generated by ROMS
Objects of type ROMSDataReader are intended to manage all access to data objects defined on ROMS’s Arakawa C-grid , including data describing the model grid itself as well as model output variables. Provided are methods for searching the model grid for host horizontal elements and for interpolating gridded field data to a given point in space and time.
On an Arakawa C-grid, u, v, w and rho points are offset. PyLag’s approach to dealing with such grids is to create separate unstructured grids for each of the three different horizontal grids (for u, v and rho points), with the w horizontal grid being the same as the rho grid. With respect to grid boundary crossings, the rho grid is treated as the edge of the model domain.
- Parameters:
config (ConfigParser) – Configuration object.
mediator (Mediator) – Mediator object for managing access to data read from file.
- compute_depths(self, depth_grid, h, zeta)
Compute depth levels
Compute ROMS depth levels using h and zeta. Supports ROMS vertical coordinate transform option one and two. See ROMS documentation for more details.
- Parameters:
depth_grid (str) – The depth grid. Options are grid_rho or grid_w.
h (1D memory view) – Bathymetry at nodes
zeta (1D memory view) – Sea surface elevation at nodes
- Returns:
depth
- Return type:
2D NumPy NDArray
- get_grid_names(self)
Return a list of grid names
- get_xmin(self) DTYPE_FLOAT_t
Get minimum x-value for the domain
- Returns:
The minimum value of x across the grid.
- Return type:
- get_ymin(self) DTYPE_FLOAT_t
Get minimum y-value for the domain
- Returns:
The minimum value of y across the grid.
- Return type:
- read_data(self, DTYPE_FLOAT_t time)
Read in time dependent variable data from file?
time is used to test if new data should be read in from file. If this is the case, arrays containing time-dependent variable data are updated.
- Parameters:
time (float) – The current time.
- rotate_vector(self, u, v, angle)
Rotate a vector field by the given angle
Function adapted from the seapy library (https://github.com/powellb/seapy/blob/master/seapy).
- Parameters:
u (array like) – Input u component
v (array like) – Input v component
angle (array like) – Input angle of rotation in radians
- Returns:
rotated_u, rotated_v
- Return type:
array
- setup_data_access(self, start_datetime, end_datetime)
Set up access to time-dependent variables.
- Parameters:
start_datetime (Datetime) – Datetime object corresponding to the simulation start time.
end_datetime (Datetime) – Datetime object corresponding to the simulation end time.
- u_to_rho(self, u)
Put the u field onto the rho field for the c-grid
Function adapted from the seapy library (https://github.com/powellb/seapy/blob/master/seapy).
- Parameters:
u (masked array like) – Input u field
- Returns:
rho
- Return type:
masked array
- v_to_rho(self, v)
Put the v field onto the rho field for the c-grid
Function adapted from the seapy library (https://github.com/powellb/seapy/blob/master/seapy).
- Parameters:
v (masked array like) – Input v field
- Returns:
rho
- Return type:
masked array