uxarray.Grid#
- class uxarray.Grid(grid_ds, source_grid_spec=None, source_dims_dict={})#
Represents a two-dimensional unstructured grid encoded following the UGRID conventions and provides grid-specific functionality.
Can be used standalone to work with unstructured grids, or can be paired with either a
ux.UxDataArray
orux.UxDataset
and accessed through the.uxgrid
attribute.For constructing a grid from non-UGRID datasets or other types of supported data, see our
ux.open_grid
method or specific class methods (Grid.from_dataset
,Grid.from_face_verticies
, etc.)- Parameters:
grid_ds (xr.Dataset) –
xarray.Dataset
encoded in the UGRID conventionssource_grid_spec (str, default="UGRID") – Original unstructured grid format (i.e. UGRID, MPAS, etc.)
source_dims_dict (dict, default={}) – Mapping of dimensions from the source dataset to their UGRID equivalent (i.e. {nCell : n_face})
Examples
>>> import uxarray as ux >>> grid_path = "/path/to/grid.nc" >>> data_path = "/path/to/data.nc"
Open a grid file with uxarray.open_grid():
>>> uxgrid = ux.open_grid(grid_path)
2. Open an unstructured grid dataset file with uxarray.open_dataset(), then access the
Grid
.:>>> uxds = ux.open_dataset(grid_path, data_path) >>> uxds.uxgrid
- __init__(grid_ds, source_grid_spec=None, source_dims_dict={})#
Methods
__init__
(grid_ds[, source_grid_spec, ...])calculate_total_face_area
([quadrature_rule, ...])Function to calculate the total surface area of all the faces in a mesh.
compute_face_areas
([quadrature_rule, order, ...])Face areas calculation function for grid class, calculates area of all faces in the grid.
copy
()Returns a deep copy of this grid.
encode_as
(grid_type)Encodes the grid as a new xarray.Dataset per grid format supplied in the grid_type argument.
from_dataset
(dataset[, use_dual])Constructs a
Grid
object from anxarray.Dataset
.from_face_vertices
(face_vertices[, latlon])Constructs a
Grid
object from user-defined face vertices.from_topology
(node_lon, node_lat, ...[, ...])Constructs a
Grid
object from user-defined topology variables provided in the UGRID conventions.get_ball_tree
([coordinates, ...])Get the BallTree data structure of this Grid that allows for nearest neighbor queries (k nearest or within some radius) on either the (
node_x
,node_y
,node_z
) and (node_lon
,node_lat
), edge (edge_x
,edge_y
,edge_z
) and (edge_lon
,edge_lat
), or center (face_x
,face_y
,face_z
) and (face_lon
, ` face_lat`) nodes.get_kd_tree
([coordinates, ...])Get the KDTree data structure of this Grid that allows for nearest neighbor queries (k nearest or within some radius) on either the (
node_x
,node_y
,node_z
) and (node_lon
,node_lat
), edge (edge_x
,edge_y
,edge_z
) and (edge_lon
,edge_lat
), or center (face_x
,face_y
,face_z
) and (face_lon
,face_lat
) nodes.isel
(**dim_kwargs)Indexes an unstructured grid along a given dimension (
n_node
,n_edge
, orn_face
) and returns a new grid.to_geodataframe
([override, cache, ...])Constructs a
spatialpandas.GeoDataFrame
with a "geometry" column, containing a collection of Shapely Polygons or MultiPolygons representing the geometry of the unstructured grid.to_linecollection
([override, cache])Constructs a
matplotlib.collections.LineCollection
object with line segments representing the geometry of the unstructured grid, corrected near the antimeridian.to_polycollection
([override, cache, ...])Constructs a
matplotlib.collections.PolyCollection
object with polygons representing the geometry of the unstructured grid, with polygons that cross the antimeridian split.to_xarray
([grid_format])Returns a xarray Dataset representation in a specific grid format from the Grid object.
validate
()Validate a grid object check for common errors, such as:
Attributes
Index of each face that crosses the antimeridian.
Dictionary of parsed attributes from the source grid.
Latitude Longitude Bounds for each Face in degrees.
connectivity
Names of all connectivity variables.
coordinates
Names of all coordinate variables.
dims
Names of all unstructured grid dimensions.
Indices of the edges that surround each edge.
Indices of the faces that saddle each edge.
edge_face_distances
Distances between the centers of the faces that saddle each edge.
Latitude of the center of each edge in degrees.
Longitude of the center of each edge in degrees.
Indices of the two nodes that make up each edge.
edge_node_distances
Distances between the two nodes that surround each edge.
Cartesian x location of the center of each edge in meters.
Cartesian y location of the center of each edge in meters.
Cartesian z location of the center of each edge in meters.
The area of each face.
Indices of the edges that surround each face.
Indices of the faces that surround each face.
face_jacobian
Declare face_jacobian as a property.
Latitude of the center of each face in degrees.
Longitude of the center of each face in degrees.
Indices of the nodes that make up each face.
Cartesian x location of the center of each face in meters.
Cartesian y location of the center of each face in meters.
Cartesian z location of the center of each face in meters.
Total number of edges.
Total number of faces.
The maximum number of edges that surround a single edge.
The maximum number of edges that surround a single face.
The maximum number of faces that surround a single face.
The maximum number of nodes that can make up a single face.
The maximum number of edges that surround a single node.
The maximum number of faces that surround a single node.
Total number of nodes.
The number of nodes that make up each face.
Indices of the edges that surround each node.
Indices of the faces that surround each node.
Latitude of each node in degrees.
Longitude of each node in degrees.
node_node_connectivity
Indices of the nodes that surround each node.
Cartesian x location of each node in meters.
Cartesian y location of each node in meters.
Cartesian z location of each node in meters.
parsed_attrs
Dictionary of parsed attributes from the source grid.
sizes
Names and values of all unstructured grid dimensions.