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 : nMesh2_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([tree_type])

Get the BallTree data structure of this Grid that allows for nearest neighbor queries (k nearest or within some radius) on either the nodes (Mesh2_node_x, Mesh2_node_y) or face centers (Mesh2_face_x, Mesh2_face_y).

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_shapely_polygons([...])

Constructs an array of Shapely Polygons representing each face, with antimeridian polygons split according to the GeoJSON standards.

Attributes

Mesh2

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

Mesh2_edge_nodes

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

Mesh2_face_edges

UGRID Connectivity Variable Mesh2_face_edges, which maps every face to its edges.

Mesh2_face_nodes

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

Mesh2_face_x

UGRID Coordinate Variable Mesh2_face_x, which contains the longitude of each face center.

Mesh2_face_y

UGRID Coordinate Variable Mesh2_face_y, which contains the latitude of each face center.

Mesh2_node_cart_x

Coordinate Variable Mesh2_node_cart_x, which contains the x location in meters.

Mesh2_node_cart_y

Coordinate Variable Mesh2_node_cart_y, which contains the y location in meters.

Mesh2_node_cart_z

Coordinate Variable Mesh2_node_cart_z, which contains the z location in meters.

Mesh2_node_faces

UGRID Connectivity Variable Mesh2_node_faces, which maps every node to its faces.

Mesh2_node_x

UGRID Coordinate Variable Mesh2_node_x, which contains the longitude of each node in degrees.

Mesh2_node_y

UGRID Coordinate Variable Mesh2_node_y, which contains the latitude of each node.

antimeridian_face_indices

Index of each face that crosses the antimeridian.

face_areas

Declare face_areas as a property.

nMaxMesh2_face_edges

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

nMaxMesh2_face_nodes

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

nMesh2_edge

UGRID Dimension nMesh2_edge, which represents the total number of edges.

nMesh2_face

UGRID Dimension nMesh2_face, which represents the total number of faces.

nMesh2_node

UGRID Dimension nMesh2_node, which represents the total number of nodes.

nNodes_per_face

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

parsed_attrs

Dictionary of parsed attributes from the source grid.