gnome.environment.gridded_objects_base¶
Classes¶
A class for assigning a unique ID for an object |
|
Base object for grids to share common behavior |
|
Base object for grids to share common behavior |
|
Rectangular Grid |
|
Factory class that generates grid objects. Also handles common |
|
Variable object: represents a field of values associated with the grid. |
|
A class for assigning a unique ID for an object |
|
A class for assigning a unique ID for an object |
|
Sigma coordinate depth object for ROMS style output |
|
Represents the ocean s-coordinates as implemented by ROMS, |
|
Factory class that generates depth objects. |
|
A base class for all classes in environment module. |
Module Contents¶
- class gnome.environment.gridded_objects_base.Time(data=None, filename=None, varname=None, tz_offset=None, new_tz_offset=None, tz_offset_name='', origin=None, displacement=None, *args, **kwargs)¶
Bases:
gridded.time.Time
,gnome.gnomeobject.GnomeId
A class for assigning a unique ID for an object
Representation of a time axis. Provides interpolation alphas and indexing.
- Parameters:
data (Sequence of datetime.datetime objects.) – Ascending list of times to use
filename=None – name of file data was loaded from – informational only
varname=None – name of variable in data file – informational only
tz_offset=None – Timezone offset of the data. If not provided it will be NOne (“Naive”) e.g. offset is not known. Use zero for UTC.
new_tz_offset (float or integer hours) – Timezone offset desired – from the offset specified by tz_offset.
tz_offset_name="" – name for the time zone offset, if desired. example: “Pacific Daylight Time” NOTE: only informational – it’s up to you to have the tz_offset correct.
origin (datetime.datetime) – shifts the time interval to begin at the time specified
displacement (datetime.timedelta) – displacement to apply to the time data. Allows shifting entire time interval into future or past
- classmethod from_file(filename=None, **kwargs)¶
- class gnome.environment.gridded_objects_base.Grid_U(filename=None, *args, **kwargs)¶
Bases:
gridded.grids.Grid_U
,gnome.gnomeobject.GnomeId
Base object for grids to share common behavior
Init common to all Grid types. This initializer will take all the kwargs of both pyugrid.UGrid and pysgrid.SGrid. See their documentation for details
- Parameters:
filename – Name of the file this grid was constructed from, if available.
- draw_to_plot(ax, features=None, style=None)¶
- classmethod new_from_dict(dict_)¶
creates a new object from dictionary
This is base implementation and can be over-ridden by classes using this mixin
- get_cells()¶
- get_lines()¶
Returns an array of lengths, and a list of line arrays. The first array sequentially indexes the second array. When the second array is split up using the first array and the resulting lines are drawn, you should end up with a picture of the grid.
- get_nodes()¶
- get_centers()¶
- get_metadata()¶
- class gnome.environment.gridded_objects_base.Grid_S(use_masked_boundary=True, *args, **kwargs)¶
Bases:
gridded.grids.Grid_S
,gnome.gnomeobject.GnomeId
Base object for grids to share common behavior
Init common to all Grid types. This initializer will take all the kwargs of both pyugrid.UGrid and pysgrid.SGrid. See their documentation for details
- Parameters:
filename – Name of the file this grid was constructed from, if available.
- property non_grid_variables¶
- draw_to_plot(ax, features=None, style=None)¶
- classmethod new_from_dict(dict_)¶
creates a new object from dictionary
This is base implementation and can be over-ridden by classes using this mixin
- get_cells()¶
- get_nodes()¶
- get_centers()¶
- get_metadata()¶
- get_lines()¶
Returns an array of lengths, and a list of line arrays. The first array sequentially indexes the second array. When the second array is split up using the first array and the resulting lines are drawn, you should end up with a picture of the grid.
- class gnome.environment.gridded_objects_base.Grid_R(node_lon=None, node_lat=None, grid_topology=None, node_dimensions=None, node_coordinates=None, *args, **kwargs)¶
Bases:
gridded.grids.Grid_R
,gnome.gnomeobject.GnomeId
Rectangular Grid
lon and lat of the nodes are vectors
- Parameters:
node_lon=None – vector of the node longitudes
node_lat=None – vector of the node latitudes
grid_topology=None –
node_dimensions=None – (should only be required for netcdf)
node_coordinates=None –
- classmethod new_from_dict(dict_)¶
creates a new object from dictionary
This is base implementation and can be over-ridden by classes using this mixin
- get_metadata()¶
- get_nodes()¶
- get_centers()¶
- get_cells()¶
- get_lines()¶
- class gnome.environment.gridded_objects_base.PyGrid¶
Bases:
gridded.grids.Grid
Factory class that generates grid objects. Also handles common loading and parsing operations
Init common to all Grid types. This constructor will take all the kwargs of both pyugrid.UGrid and pysgrid.SGrid. See their documentation for details
- Parameters:
filename – Name of the file this grid was constructed from, if available.
- static from_netCDF(*args, **kwargs)¶
- Parameters:
filename – File containing a grid
dataset – Takes precedence over filename, if provided.
grid_type – Must be provided if Dataset does not have a ‘grid_type’ attribute, or valid topology variable
grid_topology – A dictionary mapping of grid attribute to variable name. Takes precedence over discovered attributes
kwargs – All kwargs to SGrid, UGrid, or RGrid are valid, and take precedence over all.
- Returns:
Instance of Grid_U, Grid_S, or Grid_R
- static new_from_dict(dict_)¶
- class gnome.environment.gridded_objects_base.Variable(extrapolation_is_allowed=False, surface_boundary_condition='extrapolate', bottom_boundary_condition='mask', *args, **kwargs)¶
Bases:
gridded.Variable
,gnome.environment.environment.Environment
Variable object: represents a field of values associated with the grid.
Abstractly, it is usually a scalar physical property such a temperature, salinity that varies over a the domain of the model.
This more or less maps to a variable in a netcdf file, but does not have to come form a netcdf file, and this provides and abstraction where the user can access the value in world coordinates, interpolated from the grid.
It holds a reference to its own grid object, and its data.
This class represents a value defined on a grid
- Parameters:
name (string) – Name
units (string) – Units
time (list of datetime.datetime, netCDF4 Variable, or Time object) – Time axis of the data
data (array-like object such as netCDF4.Variable or numpy.ndarray) – Underlying data source
grid (Grid object (pysgrid or pyugrid or )) – Grid that the data corresponds with
data_file (string) – Name of data source file
grid_file (string) – Name of grid source file
varname (string) – Name of the variable in the data source file
fill_value – the fill value used for undefined data
location (str) – location on the grid – possible values depend on the grid type
attributes (dict) – attributes associated with the Variable (analogous to netcdf variable attributes)
- default_names = []¶
- cf_names = []¶
- property extrapolation_is_allowed¶
- init_from_netCDF(filename=None, dataset=None, data_file=None, grid_file=None, varname=None, grid_topology=None, name=None, units=None, time=None, time_origin=None, grid=None, depth_index=None, depth=None, location=None, load_all=False, fill_value=0, **kwargs)¶
Initialize a Variable from a netcdf file.
This is use in subclasses, to it can be done after object creation
- Parameters:
filename (string) – Default data source. Has lowest priority. If dataset, grid_file, or data_file are provided, this function uses them first
varname (string) – Explicit name of the data in the data source file. Equivalent to the key used to look the item up directly eg ‘ds[“lon_u”]’ for a netCDF4 Dataset.
grid_topology ({string : string, ...}) – Description of the relationship between grid attributes and variable names that hold the grid.
name (string) – Name of this object (GNome Object name)
units (string) – string such as ‘m/s’
time ([] of datetime.datetime, netCDF4 Variable, or Time object) – Time axis of the data. May be a constructed
gridded.Time
object, or collection of datetime.datetime objectsdata (netCDF4.Variable or numpy.array) – Underlying data object. May be any array-like, including netCDF4 Variable, etc
grid (pysgrid or pyugrid) – Grid that the data corresponds to
location (string) – The feature where the data aligns with the grid. e.g. “node”, “face”
depth (Depth, S_Depth or L_Depth) – Depth axis object from
gridded.depth
dataset (netCDF4.Dataset) – Instance of open netCDF4.Dataset
data_file (string) – Name of data source file, if data and grid files are separate
grid_file (string) – Name of grid source file, if data and grid files are separate
extrapolation_is_allowed
- classmethod from_netCDF(*args, **kwargs)¶
create a new variable object from a netcdf file
See init_from_netcdf for signature
- at(points, time, *, units=None, extrapolate=None, unmask=True, **kwargs)¶
Find the value of the property at positions P at time T
- Parameters:
points (Nx3 array of double) – Cartesian coordinates to be queried (P). Lon, Lat required, Depth (Z) is optional Coordinates must be organized as a 2D array or list, one coordinate per row or list element.
[[Lon1, Lat1, Z1],
[Lon2, Lat2, Z2],
[Lon3, Lat3, Z3],
...]
Failure to provide point data in this format may cause unexpected behavior If you wish to provide point data using separate longitude and latitude arrays, use the lons= and lats= kwargs.time (datetime.datetime object) – The time at which to query these points (T)
units (string such as ('m/s', 'knots', etc)) – units the values will be returned in (or converted to)
extrapolate (boolean (default False)) – if True, extrapolation will be supported
unmask (boolean (default False)) – if True and return array is a masked array, returns filled array
surface_boundary_condition (string ('extrapolate' or 'mask', default 'extrapolate')) – specifies how to evaluate points above the depth interval
bottom_boundary_condition (string ('extrapolate' or 'mask', default 'extrapolate')) – specifies how to evaluate points below the depth interval
lons (iterable) – 1D iterable of longitude values. This is ignored if points is provided
:param lats 1D iterable of latitude values. This is ignored if points is provided :type lons: iterable
- Returns:
returns a Nx1 array of interpolated values
- Return type:
double
If time is out of bounds of the time series, and extrapolate is False, a gridded.time.OutOfTimeRangeError is raised.
- classmethod new_from_dict(dict_)¶
creates a new object from dictionary
This is base implementation and can be over-ridden by classes using this mixin
- classmethod constant(value, **kwargs)¶
- property data_start¶
- property data_stop¶
- save(saveloc='.', refs=None, overwrite=True)¶
Save object state as json to user specified saveloc
- Parameters:
saveloc –
A directory, file path, open zipfile.ZipFile, or None. If a directory, it will place the zip file there, overwriting if specified.
If a file path, it will write the file there as follows:
If the file does not exist, it will create the zip archive there. If the saveloc is a zip file or
zipfile.Zipfile
object and overwrite is False, it will append there. Otherwise, it will overwrite the file if allowed.If set to None, this function will instead return an open
zipfile.Zipfile
object linked to a temporary file. The zip file will be named [object.name].zip if a directory is specifiedrefs – dictionary of references to objects
overwrite – If True, overwrites the file at the saveloc
- Returns (obj_json, saveloc, refs):
obj_json
is the json that is written to this object’s file in the zipfile. For example if saving a Model named Model1, obj_json will contain the contents of the Model1.json in the save file.saveloc
will be the string path passed in EXCEPT if None was passed in. In this case, it will be an openzipfile.ZipFile
based on a temporary file.refs
will be a dict containing all the objects that were saved in the save file, keyed by object id. It will also contain the reference to the object that called.save
itself.
- class gnome.environment.gridded_objects_base.DepthBase(name=None, surface_index=-1, bottom_index=0, default_surface_boundary_condition='extrapolate', default_bottom_boundary_conditon='mask', **kwargs)¶
Bases:
gridded.depth.DepthBase
,gnome.gnomeobject.GnomeId
A class for assigning a unique ID for an object
- Parameters:
surface_index – array index of ‘highest’ level (closest to sea level)
bottom_index – array index of ‘lowest’ level (closest to seafloor)
- classmethod new_from_dict(dict_)¶
creates a new object from dictionary
This is base implementation and can be over-ridden by classes using this mixin
- class gnome.environment.gridded_objects_base.L_Depth(terms=None, **kwargs)¶
Bases:
gridded.depth.L_Depth
,gnome.gnomeobject.GnomeId
A class for assigning a unique ID for an object
- Parameters:
surface_index – array index of ‘highest’ level (closest to sea level)
bottom_index – array index of ‘lowest’ level (closest to seafloor)
- classmethod new_from_dict(dict_)¶
creates a new object from dictionary
This is base implementation and can be over-ridden by classes using this mixin
- class gnome.environment.gridded_objects_base.ROMS_Depth(name=None, time=None, grid=None, bathymetry=None, zeta=None, terms=None, vtransform=2, surface_boundary_condition='extrapolate', bottom_boundary_condition='mask', **kwargs)¶
Bases:
gridded.depth.ROMS_Depth
,gnome.gnomeobject.GnomeId
Sigma coordinate depth object for ROMS style output
- Parameters:
name (string) – Human readable name
time (gridded.time.Time or derivative) – time axis of the object
grid (gridded.grids.GridBase or derivative) – x/y grid representation
bathymetry (gridded.variable.Variable or derivative) – variable object representing seafloor
zeta (gridded.variable.Variable or derivative) – variable object representing free-surface
terms (dictionary of string key to numeric value) – remaining terms in dictionary layout
See S_Depth.default_names, sans bathymetry and zeta
- Parameters:
vtransform (int (default 2)) – S-coordinate transform type. 1 = Old, 2 = New
surface_boundary_condition (string ('extrapolate' or 'mask')) – Determines how to handle points above the surface
bottom_boundary_condition (string ('extrapolate' or 'mask')) – Determines how to handle points below the seafloor
- classmethod new_from_dict(dict_)¶
creates a new object from dictionary
This is base implementation and can be over-ridden by classes using this mixin
- class gnome.environment.gridded_objects_base.FVCOM_Depth(name=None, time=None, grid=None, bathymetry=None, zeta=None, terms=None, vtransform=2, surface_boundary_condition='extrapolate', bottom_boundary_condition='mask', **kwargs)¶
Bases:
gridded.depth.FVCOM_Depth
,gnome.gnomeobject.GnomeId
Represents the ocean s-coordinates as implemented by ROMS, It may or may not be useful for other systems.
- Parameters:
name (string) – Human readable name
time (gridded.time.Time or derivative) – time axis of the object
grid (gridded.grids.GridBase or derivative) – x/y grid representation
bathymetry (gridded.variable.Variable or derivative) – variable object representing seafloor
zeta (gridded.variable.Variable or derivative) – variable object representing free-surface
terms (dictionary of string key to numeric value) – remaining terms in dictionary layout
See S_Depth.default_names, sans bathymetry and zeta
- Parameters:
vtransform (int (default 2)) – S-coordinate transform type. 1 = Old, 2 = New
surface_boundary_condition (string ('extrapolate' or 'mask')) – Determines how to handle points above the surface
bottom_boundary_condition (string ('extrapolate' or 'mask')) – Determines how to handle points below the seafloor
- classmethod new_from_dict(dict_)¶
creates a new object from dictionary
This is base implementation and can be over-ridden by classes using this mixin
- class gnome.environment.gridded_objects_base.Depth¶
Bases:
gridded.depth.Depth
Factory class that generates depth objects.
Also handles common loading and parsing operations
- ld_types¶
- sd_types¶
- surf_types¶
- class gnome.environment.gridded_objects_base.VectorVariable(extrapolation_is_allowed=False, surface_boundary_condition='extrapolate', bottom_boundary_condition='mask', *args, **kwargs)¶
Bases:
gridded.VectorVariable
,gnome.environment.environment.Environment
A base class for all classes in environment module. This is primarily to define a dtype such that the OrderedCollection defined in the Model object requires it.
base class for environment objects
- Parameters:
name=None
- property extrapolation_is_allowed¶
- init_from_netCDF(filename=None, varnames=None, grid_topology=None, name=None, units=None, time=None, time_origin=None, grid=None, depth=None, data_file=None, grid_file=None, dataset=None, load_all=False, variables=None, **kwargs)¶
Allows one-function initialization of a VectorVariable from a file.
- Parameters:
filename (string) – Default data source. Parameters below take precedence
dataset (netCDF4.Dataset) – Instance of open Dataset
data_file (string) – Name of data source file
grid_file (string) – Name of grid source file
grid_topology ({string : string, ...}) – Description of the relationship between grid attributes and variable names.
grid (pysgrid or pyugrid) – Grid that the data corresponds with
varnames ([] of string. Order of the names in the list would be order of vector components) – Names of the variables in the data source file
time ([] of datetime.datetime, netCDF4 Variable, or Time object) – Time axis of the data
name (string) – Name of property
units (string) – Units
- classmethod from_netCDF(*args, **kwargs)¶
Allows one-function initialization of a VectorVariable from a file.
- Parameters:
filename (string) – Default data source. Parameters below take precedence
dataset (netCDF4.Dataset) – Instance of open Dataset
data_file (string) – Name of data source file
grid_file (string) – Name of grid source file
grid_topology ({string : string, ...}) – Description of the relationship between grid attributes and variable names.
grid (pysgrid or pyugrid) – Grid that the data corresponds with
varnames ([] of string. Order of the names in the list would be order of vector components) – Names of the variables in the data source file
time ([] of datetime.datetime, netCDF4 Variable, or Time object) – Time axis of the data
name (string) – Name of property
units (string) – Units
- classmethod new_from_dict(dict_, **kwargs)¶
creates a new object from dictionary
This is base implementation and can be over-ridden by classes using this mixin
- classmethod constant(values, name=None, units=None)¶
Sets a VectorVariable up to represent a constant vector field. The result will return a constant value for all times and places.
- Parameters:
values (array-like) – vector of values
- at(points, time, *, units=None, extrapolate=None, unmask=True, **kwargs)¶
Find the value of the property at positions P at time T
- Parameters:
points (Nx3 array of double) –
Cartesian coordinates to be queried (P). Lon, Lat required, Depth (Z) is optional Coordinates must be organized as a 2D array or list, one coordinate per row or list element.
[[Lon1, Lat1, Z1], [Lon2, Lat2, Z2], [Lon3, Lat3, Z3], ...]
Failure to provide point data in this format may cause unexpected behavior If you wish to provide point data using separate longitude and latitude arrays, use the lons= and lats= kwargs.
time (datetime.datetime object) – The time at which to query these points (T)
units (string such as ('m/s', 'knots', etc)) – units the values will be returned in (or converted to)
extrapolate (boolean (default False)) – if True, extrapolation will be supported
unmask (boolean (default False)) – if True and return array is a masked array, returns filled array
zero_ref (string 'absolute' or 'relative') – Specifies whether the zero datum moves with zeta or not. Only applicable if depth dimension is present with full sigma layers
lons (iterable) – 1D iterable of longitude values. This is ignored if points is provided
:param lats 1D iterable of latitude values. This is ignored if points is provided :type lons: iterable
- Returns:
NxM array of interpolated values N = len(points) M = len(self.variables)
- Return type:
np.array or np.ma.MaskedArray
If time is out of bounds of the time series, and extrapolate is False, a gridded.time.OutOfTimeRangeError is raised.
- get_grid_lines()¶
- get_data_vectors()¶
return array of shape (time_slices, len_linearized_data,2) first is magnitude, second is direction
- get_metadata()¶
- property data_start¶
- property data_stop¶
- save(saveloc='.', refs=None, overwrite=True)¶
Save the variable object to a netcdf file.
- Parameters:
filepath (string) – path to file you want o save to. or a writable netCDF4 Dataset An existing one If a path, an existing file will be clobbered.
Follows the convention established by the netcdf UGRID working group: