uxarray.Grid

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 or ux.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 conventions

  • source_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"
  1. 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 an xarray.Dataset.

from_face_vertices(face_vertices[, latlon])

Constructs a Grid object from user-defined face vertices.

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, or n_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.

validate()

Validate a grid object check for common errors, such as:

Attributes

Mesh2

UGRID Attribute Mesh2, which indicates the topology data of a 2D unstructured mesh.

antimeridian_face_indices

Index of each face that crosses the antimeridian.

edge_edge_connectivity

Connectivity Variable edge_edge_connectivity.

edge_face_connectivity

Connectivity Variable edge_face_connectivity, which contains the index of the faces that saddle a given edge.

edge_face_distances

Contains the distance between the faces that saddle a given edge.

edge_lat

Coordinate edge_lat, which contains the latitude of each edge in degrees.

edge_lon

Coordinate edge_lon, which contains the longitude of each edge in degrees.

edge_node_connectivity

Connectivity Variable edge_node_connectivity, which maps every edge to the two nodes that it connects.

edge_node_distances

Contains the distance between the nodes that saddle a given edge.

edge_x

Coordinate edge_x, which contains the Cartesian x location of each edge in meters.

edge_y

Coordinate edge_y, which contains the Cartesian y location of each edge in meters.

edge_z

Coordinate edge_z, which contains the Cartesian z location of each edge in meters.

face_areas

Declare face_areas as a property.

face_edge_connectivity

Connectivity Variable face_edge_connectivity, which maps every face to its edges.

face_face_connectivity

Connectivity Variable face_face_connectivity.

face_jacobian

Declare face_jacobian as a property.

face_lat

Coordinate face_lat, which contains the latitude of each face in degrees.

face_lon

Coordinate face_lon, which contains the longitude of each face in degrees.

face_node_connectivity

Connectivity Variable face_node_connectivity, which maps each face to its corner nodes.

face_x

Coordinate face_x, which contains the Cartesian x location of each face in meters.

face_y

Coordinate face_y, which contains the Cartesian y location of each face in meters.

face_z

Coordinate face_z, which contains the Cartesian z location of each face in meters.

n_edge

Dimension n_edge, which represents the total number of unique edges.

n_face

Dimension n_face, which represents the total number of unique faces.

n_max_face_edges

Dimension n_max_face_edges, which represents the maximum number of edges per face.

n_max_face_nodes

Dimension n_max_face_nodes, which represents the maximum number of nodes that a face may contain.

n_node

Dimension n_node, which represents the total number of unique corner nodes.

n_nodes_per_face

Dimension Variable n_nodes_per_face, which contains the number of non-fill-value nodes per face.

node_edge_connectivity

Connectivity Variable node_edge_connectivity.

node_face_connectivity

Connectivity Variable node_face_connectivity, which maps every node to its faces.

node_lat

Coordinate node_lat, which contains the latitude of each node in degrees.

node_lon

Coordinate node_lon, which contains the longitude of each node in degrees.

node_node_connectivity

Connectivity Variable node_node_connectivity.

node_x

Coordinate node_x, which contains the Cartesian x location of each node in meters.

node_y

Coordinate node_y, which contains the Cartesian y location of each node in meters.

node_z

Coordinate node_z, which contains the Cartesian y location of each node in meters.

parsed_attrs

Dictionary of parsed attributes from the source grid.