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.

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

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

antimeridian_face_indices

Index of each face that crosses the antimeridian.

attrs

Dictionary of parsed attributes from the source grid.

bounds

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.

edge_edge_connectivity

Indices of the edges that surround each edge.

edge_face_connectivity

Indices of the faces that saddle each edge.

edge_face_distances

Distances between the centers of the faces that saddle each edge.

edge_lat

Latitude of the center of each edge in degrees.

edge_lon

Longitude of the center of each edge in degrees.

edge_node_connectivity

Indices of the two nodes that make up each edge.

edge_node_distances

Distances between the two nodes that surround each edge.

edge_x

Cartesian x location of the center of each edge in meters.

edge_y

Cartesian y location of the center of each edge in meters.

edge_z

Cartesian z location of the center of each edge in meters.

face_areas

The area of each face.

face_edge_connectivity

Indices of the edges that surround each face.

face_face_connectivity

Indices of the faces that surround each face.

face_jacobian

Declare face_jacobian as a property.

face_lat

Latitude of the center of each face in degrees.

face_lon

Longitude of the center of each face in degrees.

face_node_connectivity

Indices of the nodes that make up each face.

face_x

Cartesian x location of the center of each face in meters.

face_y

Cartesian y location of the center of each face in meters.

face_z

Cartesian z location of the center of each face in meters.

n_edge

Total number of edges.

n_face

Total number of faces.

n_max_edge_edges

The maximum number of edges that surround a single edge.

n_max_face_edges

The maximum number of edges that surround a single face.

n_max_face_faces

The maximum number of faces that surround a single face.

n_max_face_nodes

The maximum number of nodes that can make up a single face.

n_max_node_edges

The maximum number of edges that surround a single node.

n_max_node_faces

The maximum number of faces that surround a single node.

n_node

Total number of nodes.

n_nodes_per_face

The number of nodes that make up each face.

node_edge_connectivity

Indices of the edges that surround each node.

node_face_connectivity

Indices of the faces that surround each node.

node_lat

Latitude of each node in degrees.

node_lon

Longitude of each node in degrees.

node_node_connectivity

Indices of the nodes that surround each node.

node_x

Cartesian x location of each node in meters.

node_y

Cartesian y location of each node in meters.

node_z

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.