Working with MPAS Grids#
Authors: Philip Chmielowiec, Ian Franda
This notebook showcases how to work with datasets from the Model for Prediction Across Scales (MPAS).
MPAS Grid Overview#
The defining feature of MPAS when compared to other models is that its unstructured grid is composed of Voronoi Meshes with a C-grid staggering. This means that the grid can be broken down into two meshes: Primal and Dual. The Primal Mesh is composed of Voronoi regions and the Dual Mesh is composed of Delaunay Triangles. The figure below showcases this relationship, with the dashed triangles being the dual of the Voronoi mesh.
Since the Primal Mesh is predominantly made up of hexagons, with pentagons and heptagons occasionally being present, and the Dual Mesh being strictly triangular, this notebook will showcase how we can represent both of these meshes in the UGRID conventions using UXarray.
Dataset Overview#
Before diving straight into using UXarray, it is important to first investigate how MPAS datasets are represented.
As mentioned in earlier notebooks, the grid definition and data variables are typically stored in separate files. However, in this example, our dataset will contain both within the same file, which is often the case when working with smaller datasets. Additionally, even when working with separate Grid and Data files in MPAS, the definition of the Primal and Dual mesh are still stored under the same Grid file.
Below we can take a quick look into the dataset by opening it with Xarray.
# Dataset Path
mpas_root_filepath = "../../test/meshfiles/mpas/"
mpas_dataset_filepath = mpas_root_filepath + "QU/mesh.QU.1920km.151026.nc"
import xarray as xr
xrds_mpas = xr.open_dataset(mpas_dataset_filepath)
xrds_mpas
<xarray.Dataset> Size: 176kB Dimensions: (nCells: 162, nEdges: 480, nVertices: 320, maxEdges: 6, maxEdges2: 12, TWO: 2, vertexDegree: 3) Dimensions without coordinates: nCells, nEdges, nVertices, maxEdges, maxEdges2, TWO, vertexDegree Data variables: (12/42) latCell (nCells) float64 1kB ... lonCell (nCells) float64 1kB ... xCell (nCells) float64 1kB ... yCell (nCells) float64 1kB ... zCell (nCells) float64 1kB ... indexToCellID (nCells) int32 648B ... ... ... cellQuality (nCells) float64 1kB ... gridSpacing (nCells) float64 1kB ... triangleQuality (nVertices) float64 3kB ... triangleAngleQuality (nVertices) float64 3kB ... obtuseTriangle (nVertices) int32 1kB ... meshDensity (nCells) float64 1kB ... Attributes: on_a_sphere: YES sphere_radius: 1.0 is_periodic: NO history: MpasMeshConverter.x base_grids/x1.162.grid.nc base_meshes... mesh_spec: 1.0 Conventions: MPAS source: MpasMeshConverter.x file_id: rku96q0z66
- nCells: 162
- nEdges: 480
- nVertices: 320
- maxEdges: 6
- maxEdges2: 12
- TWO: 2
- vertexDegree: 3
- latCell(nCells)float64...
[162 values with dtype=float64]
- lonCell(nCells)float64...
[162 values with dtype=float64]
- xCell(nCells)float64...
[162 values with dtype=float64]
- yCell(nCells)float64...
[162 values with dtype=float64]
- zCell(nCells)float64...
[162 values with dtype=float64]
- indexToCellID(nCells)int32...
[162 values with dtype=int32]
- latEdge(nEdges)float64...
[480 values with dtype=float64]
- lonEdge(nEdges)float64...
[480 values with dtype=float64]
- xEdge(nEdges)float64...
[480 values with dtype=float64]
- yEdge(nEdges)float64...
[480 values with dtype=float64]
- zEdge(nEdges)float64...
[480 values with dtype=float64]
- indexToEdgeID(nEdges)int32...
[480 values with dtype=int32]
- latVertex(nVertices)float64...
[320 values with dtype=float64]
- lonVertex(nVertices)float64...
[320 values with dtype=float64]
- xVertex(nVertices)float64...
[320 values with dtype=float64]
- yVertex(nVertices)float64...
[320 values with dtype=float64]
- zVertex(nVertices)float64...
[320 values with dtype=float64]
- indexToVertexID(nVertices)int32...
[320 values with dtype=int32]
- cellsOnCell(nCells, maxEdges)int32...
[972 values with dtype=int32]
- edgesOnCell(nCells, maxEdges)int32...
[972 values with dtype=int32]
- verticesOnCell(nCells, maxEdges)int32...
[972 values with dtype=int32]
- nEdgesOnCell(nCells)int32...
[162 values with dtype=int32]
- edgesOnEdge(nEdges, maxEdges2)int32...
[5760 values with dtype=int32]
- cellsOnEdge(nEdges, TWO)int32...
[960 values with dtype=int32]
- verticesOnEdge(nEdges, TWO)int32...
[960 values with dtype=int32]
- nEdgesOnEdge(nEdges)int32...
[480 values with dtype=int32]
- cellsOnVertex(nVertices, vertexDegree)int32...
[960 values with dtype=int32]
- edgesOnVertex(nVertices, vertexDegree)int32...
[960 values with dtype=int32]
- boundaryVertex(nVertices)int32...
[320 values with dtype=int32]
- areaCell(nCells)float64...
[162 values with dtype=float64]
- angleEdge(nEdges)float64...
[480 values with dtype=float64]
- dcEdge(nEdges)float64...
[480 values with dtype=float64]
- dvEdge(nEdges)float64...
[480 values with dtype=float64]
- weightsOnEdge(nEdges, maxEdges2)float64...
[5760 values with dtype=float64]
- areaTriangle(nVertices)float64...
[320 values with dtype=float64]
- kiteAreasOnVertex(nVertices, vertexDegree)float64...
[960 values with dtype=float64]
- cellQuality(nCells)float64...
[162 values with dtype=float64]
- gridSpacing(nCells)float64...
[162 values with dtype=float64]
- triangleQuality(nVertices)float64...
[320 values with dtype=float64]
- triangleAngleQuality(nVertices)float64...
[320 values with dtype=float64]
- obtuseTriangle(nVertices)int32...
[320 values with dtype=int32]
- meshDensity(nCells)float64...
[162 values with dtype=float64]
- on_a_sphere :
- YES
- sphere_radius :
- 1.0
- is_periodic :
- NO
- history :
- MpasMeshConverter.x base_grids/x1.162.grid.nc base_meshes/x1.162.grid.nc
- mesh_spec :
- 1.0
- Conventions :
- MPAS
- source :
- MpasMeshConverter.x
- file_id :
- rku96q0z66
Here we opened up the dataset to get an overview of the full set of grid variables needed to describe an MPAS grid as outlined in the MPAS Specification Document [2]. Below is a list of the key grid variables that are used for representing and constructing the Primal and Dual meshes.
Primal Mesh#
lonVertex, latVertex: Corner Vertices of Primal Mesh cells
lonCell, latCell: Center Vertices of Primal Mesh cells
verticesOnCell: Vertex indices that surround each Primal Mesh cell
verticesOnEdge: Vertex indices that saddle a given edge
nEdgesOnCell: Maximum number of edges that can surround a cell
Dual Mesh#
lonCell, latCell: Corner Vertices of Dual Mesh cells
lonVertex, latVertex: Center Vertices of Dual Mesh cells
cellsOnVertex: Vertex indices that surround each Dual Mesh cell
cellsOnEdge: Vertex indices that saddle a given edge
Constructing a Grid Object#
Note
Since we only have a Grid file and no Data file in this example, we will be working exclusively with the Grid
class to investigate the grid topology and not with UxDataset
or UxDataArray
data structures.
The xarray.Dataset
that we opened in the previous section stores the coordinates and connectivity variables according to the MPAS specification standards for both the Primal and Dual meshes together in a single dataset. Here, instead of opening up the dataset using Xarray, we can pass through the path into our open_grid
method to construct an instance of a Grid
class. This Grid
can take in a use_dual
parameter to select whether to construct the Primal or Dual mesh, parsing and encoding the appropriate variables in the UGRID conventions.
import uxarray as ux
primal_mesh = ux.open_grid(mpas_dataset_filepath, use_dual=False)
dual_mesh = ux.open_grid(mpas_dataset_filepath, use_dual=True)
primal_mesh
<uxarray.Grid> Original Grid Type: MPAS Grid Dimensions: * n_node: 320 * n_edge: 480 * n_face: 162 * n_max_face_nodes: 6 * n_max_face_edges: 6 * n_max_face_faces: 6 * n_max_node_faces: 3 * two: 2 Grid Coordinates (Spherical): * node_lon: (320,) * node_lat: (320,) * edge_lon: (480,) * edge_lat: (480,) * face_lon: (162,) * face_lat: (162,) Grid Coordinates (Cartesian): * node_x: (320,) * node_y: (320,) * node_z: (320,) * edge_x: (480,) * edge_y: (480,) * edge_z: (480,) * face_x: (162,) * face_y: (162,) * face_z: (162,) Grid Connectivity Variables: * face_face_connectivity: (162, 6) * face_edge_connectivity: (162, 6) * edge_face_connectivity: (480, 2) * node_face_connectivity: (320, 3) * edge_node_connectivity: (480, 2) * face_node_connectivity: (162, 6) Grid Descriptor Variables: * face_areas: (162,) * edge_face_distances: (480,) * edge_node_distances: (480,) * boundary_node_indices: (0,)
- n_node: 320
- n_face: 162
- n_edge: 480
- n_max_face_nodes: 6
- n_max_node_faces: 3
- two: 2
- n_max_face_edges: 6
- n_max_face_faces: 6
- n_boundary_nodes: 0
- node_lon(n_node)float64178.2 175.1 ... -103.0 -175.0
array([ 178.2199104 , 175.07571408, -174.95294504, -164.98160416, -168.12580048, -92.98160416, -96.12580048, -109.7800896 , -112.92428592, -102.95294504, -66.95294504, 5.04705496, 77.04705496, 149.04705496, -138.95294504, -1.7800896 , 11.87419952, 15.01839584, 5.04705496, -4.92428592, 87.01839584, 77.04705496, 67.07571408, 70.2199104 , 83.87419952, -66.95294504, -76.92428592, -73.7800896 , -60.12580048, -56.98160416, -40.92428592, -30.95294504, -20.98160416, -24.12580048, -37.7800896 , 139.07571408, 142.2199104 , 155.87419952, 159.01839584, 149.04705496, -102.95294504, -174.95294504, 113.04705496, 41.04705496, -30.95294504, 47.87419952, 34.2199104 , 31.07571408, 41.04705496, 51.01839584, -145.7800896 , -132.12580048, -128.98160416, -138.95294504, -148.92428592, 106.2199104 , 103.07571408, 113.04705496, 123.01839584, 119.87419952, 149.04705496, 157.92220999, 159.10737356, 149.04705496, 138.98673636, 140.17189993, 167.81735672, 175.80545012, 176.24978401, 166.2767532 , 158.28865981, 157.84432591, -147.75021599, -148.19454988, -156.18264328, -166.15567409, -165.71134019, -157.7232468 , -138.95294504, -149.01326364, ... 171.88946674, 167.53637029, -174.95294504, -157.44226037, -161.79535682, -89.79535682, -116.11053326, -120.46362971, -102.95294504, -85.44226037, -66.95294504, 5.04705496, 77.04705496, 149.04705496, -138.95294504, 18.20464318, 22.55773963, 5.04705496, -12.46362971, -8.11053326, 77.04705496, 59.53637029, 63.88946674, 90.20464318, 94.55773963, -84.46362971, -80.11053326, -53.79535682, -49.44226037, -66.95294504, -48.46362971, -30.95294504, -13.44226037, -17.79535682, -44.11053326, 131.53637029, 135.88946674, 162.20464318, 166.55773963, 149.04705496, 113.04705496, 41.04705496, -30.95294504, -102.95294504, -174.95294504, 58.55773963, 54.20464318, 27.88946674, 23.53637029, 41.04705496, -121.44226037, -138.95294504, -156.46362971, -152.11053326, -125.79535682, 95.53637029, 113.04705496, 130.55773963, 126.20464318, 99.88946674, 149.04705496, 149.04705496, -174.95294504, -138.95294504, -138.95294504, -102.95294504, -66.95294504, -66.95294504, 5.04705496, 77.04705496, 5.04705496, 41.04705496, -30.95294504, -30.95294504, 41.04705496, 77.04705496, 113.04705496, 113.04705496, -102.95294504, -174.95294504])
- node_lat(n_node)float6434.19 23.25 16.93 ... -52.62 -52.62
- standard_name :
- latitude
- long name :
- Latitude of the corner nodes of each face
- units :
- degrees_north
array([ 34.1915419 , 23.24569025, 16.93496156, 23.24569025, 34.1915419 , 23.24569025, 34.1915419 , 34.1915419 , 23.24569025, 16.93496156, 80.36991038, 80.36991038, 80.36991038, 80.36991038, 80.36991038, -34.1915419 , -34.1915419 , -23.24569025, -16.93496156, -23.24569025, -23.24569025, -16.93496156, -23.24569025, -34.1915419 , -34.1915419 , -16.93496156, -23.24569025, -34.1915419 , -34.1915419 , -23.24569025, 23.24569025, 16.93496156, 23.24569025, 34.1915419 , 34.1915419 , -23.24569025, -34.1915419 , -34.1915419 , -23.24569025, -16.93496156, -80.36991038, -80.36991038, -80.36991038, -80.36991038, -80.36991038, 34.1915419 , 34.1915419 , 23.24569025, 16.93496156, 23.24569025, -34.1915419 , -34.1915419 , -23.24569025, -16.93496156, -23.24569025, 34.1915419 , 23.24569025, 16.93496156, 23.24569025, 34.1915419 , 21.45169171, 25.55962357, 37.17735421, 41.98325711, 37.17735421, 25.55962357, -9.89279301, -5.37609646, 3.72615394, 9.89279301, 5.37609646, -3.72615394, -3.72615394, 5.37609646, 9.89279301, 3.72615394, -5.37609646, -9.89279301, 41.98325711, 37.17735421, ... 39.93474259, 20.1797958 , 9.29069849, 20.1797958 , 39.93474259, 39.93474259, 39.93474259, 20.1797958 , 9.29069849, 20.1797958 , 72.72564732, 72.72564732, 72.72564732, 72.72564732, 72.72564732, -39.93474259, -20.1797958 , -9.29069849, -20.1797958 , -39.93474259, -9.29069849, -20.1797958 , -39.93474259, -39.93474259, -20.1797958 , -20.1797958 , -39.93474259, -39.93474259, -20.1797958 , -9.29069849, 20.1797958 , 9.29069849, 20.1797958 , 39.93474259, 39.93474259, -20.1797958 , -39.93474259, -39.93474259, -20.1797958 , -9.29069849, -72.72564732, -72.72564732, -72.72564732, -72.72564732, -72.72564732, 20.1797958 , 39.93474259, 39.93474259, 20.1797958 , 9.29069849, -20.1797958 , -9.29069849, -20.1797958 , -39.93474259, -39.93474259, 20.1797958 , 9.29069849, 20.1797958 , 39.93474259, 39.93474259, 10.81231696, 52.62263186, -10.81231696, 10.81231696, 52.62263186, -10.81231696, 10.81231696, 52.62263186, 52.62263186, 52.62263186, 10.81231696, -10.81231696, -10.81231696, -52.62263186, -52.62263186, 10.81231696, -52.62263186, -10.81231696, -52.62263186, -52.62263186])
- edge_lon(n_edge)float64177.5 -110.5 108.7 ... 94.86 108.4
array([ 1.77493843e+02, -1.10506157e+02, 1.08666226e+02, 1.13047055e+02, 1.17427884e+02, 1.13047055e+02, 7.26662258e+01, -3.09529450e+01, -2.65721158e+01, -3.53337742e+01, 4.54278842e+01, 9.42788415e+00, 5.04705496e+00, 8.46002664e+01, -9.53997336e+01, 6.94938435e+01, 7.70470550e+01, 5.04705496e+00, -7.45061565e+01, -5.93997336e+01, -6.69529450e+01, -7.13337742e+01, -6.25721158e+01, -9.85721158e+01, -1.02952945e+02, -1.38952945e+02, -1.31399734e+02, -1.34572116e+02, -1.70572116e+02, 1.41493843e+02, 1.56600266e+02, 1.03746711e+02, 1.24246570e+02, 1.33009729e+02, 1.31231318e+02, 1.17670116e+02, -9.35219621e+01, -9.73260570e+01, 1.20600266e+02, -5.38186510e+01, -1.07333774e+02, 1.04046528e+02, 5.22465702e+01, 7.70470550e+01, 2.74881524e+01, 6.38257621e+01, 1.17789099e+02, 9.01398370e+01, 1.35488152e+02, 9.99127609e+01, 6.34964376e+01, 5.45976723e+01, 5.00475817e+01, 3.54201670e+01, -6.22109011e+01, -2.15219621e+01, 8.60475817e+01, 1.43420167e+02, -3.09529450e+01, -3.56949890e+01, -3.95347179e+00, 6.39127609e+01, 1.18673943e+02, 1.22478038e+02, 1.85976723e+01, 2.72954240e+01, -5.01782583e+01, 1.08305011e+02, 1.35288473e+01, -1.41782583e+01, 7.23050110e+01, 1.81813490e+01, -1.77316521e+01, -4.41742379e+01, 1.26268348e+02, 1.13047055e+02, -3.09529450e+01, 1.49047055e+02, 1.29821742e+02, -8.47686822e+01, ... -4.40872391e+01, -1.78186510e+01, -1.25818651e+02, -8.00872391e+01, 2.50097291e+01, 2.32313178e+01, 5.04705496e+00, -8.04572709e+00, -1.73940425e+01, -4.25328913e+00, -6.15246027e+00, 1.54673943e+02, 1.62465702e+01, 6.77467109e+01, 8.82465702e+01, 9.70097291e+01, 1.58047582e+02, 9.52313178e+01, -1.38952945e+02, 8.16701159e+01, -8.69156191e+01, -1.48253289e+02, 2.42723682e+01, -1.79837834e+02, -5.57534298e+01, -5.76526009e+01, -4.69902709e+01, -1.20768682e+02, -7.62532891e+01, -4.45118476e+01, 9.02683479e+01, -5.38601630e+01, -8.51184757e+00, -4.87686822e+01, -6.69529450e+01, -1.63753430e+02, -4.40457271e+01, -3.55760059e+01, -2.63298841e+01, -2.16526009e+01, 1.26139837e+02, -1.97534298e+01, -5.33940425e+01, 1.37847540e+02, -3.65798330e+01, 1.58347399e+02, 1.67231318e+02, -6.69529450e+01, 8.19319442e+01, -1.25731652e+02, 1.53670116e+02, 1.49047055e+02, 1.49047055e+02, 4.86002664e+01, 1.44423994e+02, 4.10470550e+01, -1.74952945e+02, 5.04705496e+00, -1.02952945e+02, 5.03473991e+01, 3.17467109e+01, 1.86059575e+01, 4.10470550e+01, 1.49047055e+02, -1.34329884e+02, -1.43576006e+02, 8.14278842e+01, -1.57137208e+02, 3.66662258e+01, -1.61394043e+02, -1.50152460e+02, 1.03616072e+02, 3.16160720e+01, -1.18990271e+02, -1.16511848e+02, 9.99542729e+01, 4.66739430e+01, 4.57890989e+01, 9.48627922e+01, 1.08423994e+02])
- edge_lat(n_edge)float64-54.9 -54.9 -8.28 ... 14.8 6.401
- standard_name :
- latitude
- long name :
- Latitude of the center of each edge
- units :
- degrees_north
array([-54.89651955, -54.89651955, -8.27994701, -15.81962943, -8.27994701, -47.6153194 , 8.27994701, -15.81962943, -8.27994701, -8.27994701, -8.27994701, 8.27994701, 15.81962943, 54.89651955, -54.89651955, 54.89651955, 47.6153194 , 47.6153194 , 54.89651955, 54.89651955, 15.81962943, 8.27994701, 8.27994701, -8.27994701, -15.81962943, 47.6153194 , 54.89651955, 8.27994701, -8.27994701, 54.89651955, 54.89651955, 36.57981951, 45.15448663, 38.66685489, 14.80305333, 6.40068779, -31.36984568, -39.48532031, -54.89651955, 69.36033641, -8.27994701, -0.44195768, 45.15448663, -66.3250054 , -23.06453063, -53.16545759, -23.74126199, -22.03371704, 23.06453063, -69.36033641, 7.84290011, -7.84290011, -0.44195768, -39.48532031, 23.74126199, -31.36984568, 0.44195768, 39.48532031, -77.2445669 , -23.74126199, 0.44195768, 69.36033641, -39.48532031, -31.36984568, 7.84290011, 6.83509864, -61.63490222, -23.74126199, -28.72768179, 61.63490222, 23.74126199, 69.36033641, 53.16545759, 53.16545759, 53.16545759, 13.80961808, 66.3250054 , 77.2445669 , 61.63490222, 14.80305333, ... -69.36033641, -69.36033641, 69.36033641, 69.36033641, -38.66685489, -14.80305333, -13.80961808, -22.03371704, -23.06453063, -36.57981951, -45.15448663, 39.48532031, -45.15448663, -36.57981951, -45.15448663, -38.66685489, 0.44195768, -14.80305333, -50.24004577, -6.40068779, -38.66685489, -36.57981951, 61.63490222, 20.16046475, -45.15448663, -36.57981951, -38.66685489, -14.80305333, -36.57981951, -23.06453063, -53.16545759, -22.03371704, 23.06453063, -14.80305333, -13.80961808, 45.15448663, 22.03371704, 6.40068779, 6.40068779, 36.57981951, 22.03371704, 45.15448663, 23.06453063, -45.15448663, -39.48532031, -36.57981951, -14.80305333, 47.6153194 , -20.16046475, -53.16545759, -6.40068779, 15.81962943, -13.80961808, -54.89651955, -6.40068779, 50.24004577, -77.2445669 , 77.2445669 , 82.18374261, 36.57981951, 36.57981951, 23.06453063, 13.80961808, 47.6153194 , -6.40068779, -6.40068779, 8.27994701, -14.80305333, -8.27994701, -23.06453063, -45.15448663, -31.36984568, -31.36984568, -38.66685489, -23.06453063, 22.03371704, -39.48532031, -23.74126199, 14.80305333, 6.40068779])
- face_lon(n_face)float64-175.0 -103.0 0.0 ... 172.4 -162.3
array([-174.95294504, -102.95294504, 0. , 5.04705496, 77.04705496, -66.95294504, -30.95294504, 149.04705496, 0. , 41.04705496, -138.95294504, 113.04705496, 149.04705496, 167.04705496, -156.95294504, -138.95294504, -174.95294504, -120.95294504, -84.95294504, -66.95294504, -102.95294504, 41.04705496, 113.04705496, -30.95294504, 23.04705496, -12.95294504, -30.95294504, 5.04705496, 41.04705496, 59.04705496, 77.04705496, 113.04705496, 95.04705496, -102.95294504, -66.95294504, -48.95294504, 5.04705496, 149.04705496, -174.95294504, 131.04705496, -138.95294504, 77.04705496, 167.77251723, 175.66717516, -165.57306524, -157.67840731, -174.95294504, -102.95294504, -120.22748277, -112.33282484, -93.57306524, -85.67840731, -30.95294504, 41.04705496, 113.04705496, -174.95294504, -102.95294504, 22.32159269, 14.42693476, -4.33282484, -12.22748277, 5.04705496, 67.66717516, 59.77251723, 77.04705496, 94.32159269, 86.42693476, -84.22748277, -66.95294504, -49.67840731, -57.57306524, -76.33282484, -40.33282484, -21.57306524, -13.67840731, -30.95294504, -48.22748277, 131.77251723, 149.04705496, 166.32159269, ... -66.95294504, -138.95294504, 149.04705496, 58.32159269, 41.04705496, 23.77251723, 31.66717516, 50.42693476, -129.57306524, -148.33282484, -156.22748277, -138.95294504, -121.67840731, 103.66717516, 122.42693476, 130.32159269, 113.04705496, 95.77251723, 140.11719882, 157.9769111 , 161.68736903, 136.40674089, 176.11719882, -174.95294504, 149.04705496, -138.95294504, -147.88280118, -166.0230889 , -126.31263097, -151.59325911, -130.0230889 , 149.04705496, -138.95294504, -111.88280118, -102.95294504, -94.0230889 , -66.95294504, -75.88280118, -58.0230889 , -54.31263097, -79.59325911, -66.95294504, 5.04705496, 17.68736903, 64.40674089, 77.04705496, 89.68736903, -7.59325911, 13.9769111 , 5.04705496, 32.11719882, 41.04705496, -30.95294504, -22.0230889 , -3.88280118, -43.59325911, -18.31263097, -39.88280118, 41.04705496, 28.40674089, -30.95294504, 49.9769111 , 53.68736903, 77.04705496, 68.11719882, 113.04705496, 100.40674089, 125.68736903, 121.9769111 , 104.11719882, 113.04705496, 85.9769111 , -115.59325911, -90.31263097, -102.95294504, -174.95294504, 172.40674089, -162.31263097])
- face_lat(n_face)float6426.57 26.57 90.0 ... -46.91 -46.91
- standard_name :
- latitude
- long name :
- Latitude of the center of each face
- units :
- degrees_north
array([ 2.65650512e+01, 2.65650512e+01, 9.00000000e+01, -2.65650512e+01, -2.65650512e+01, -2.65650512e+01, 2.65650512e+01, -2.65650512e+01, -9.00000000e+01, 2.65650512e+01, -2.65650512e+01, 2.65650512e+01, 3.17174744e+01, -1.08861981e-11, -5.78687373e-11, 3.17174744e+01, 5.82825256e+01, -6.93278932e-11, -5.21391594e-11, 3.17174744e+01, 5.82825256e+01, 5.82825256e+01, 5.82825256e+01, 5.82825256e+01, 5.78687373e-11, 1.08861981e-11, -3.17174744e+01, -5.82825256e+01, -3.17174744e+01, 6.93278932e-11, -5.82825256e+01, -3.17174744e+01, 5.21391594e-11, -3.17174744e+01, -5.82825256e+01, -2.69290164e-11, 3.17174744e+01, -5.82825256e+01, -3.17174744e+01, 2.69290164e-11, -5.82825256e+01, 3.17174744e+01, 3.03412934e+01, 1.36319094e+01, 1.36319094e+01, 3.03412934e+01, 4.21975660e+01, 4.21975660e+01, 3.03412934e+01, 1.36319094e+01, 1.36319094e+01, 3.03412934e+01, 7.43674852e+01, 7.43674852e+01, 7.43674852e+01, 7.43674852e+01, 7.43674852e+01, -3.03412934e+01, -1.36319094e+01, -1.36319094e+01, -3.03412934e+01, -4.21975660e+01, -1.36319094e+01, -3.03412934e+01, -4.21975660e+01, -3.03412934e+01, -1.36319094e+01, -3.03412934e+01, -4.21975660e+01, -3.03412934e+01, -1.36319094e+01, -1.36319094e+01, 1.36319094e+01, 1.36319094e+01, 3.03412934e+01, 4.21975660e+01, 3.03412934e+01, -3.03412934e+01, -4.21975660e+01, -3.03412934e+01, ... -7.43674852e+01, -7.43674852e+01, -7.43674852e+01, 3.03412934e+01, 4.21975660e+01, 3.03412934e+01, 1.36319094e+01, 1.36319094e+01, -1.36319094e+01, -1.36319094e+01, -3.03412934e+01, -4.21975660e+01, -3.03412934e+01, 1.36319094e+01, 1.36319094e+01, 3.03412934e+01, 4.21975660e+01, 3.03412934e+01, 1.56373155e+01, 1.56373155e+01, 4.69146420e+01, 4.69146420e+01, -1.56373155e+01, -8.73033316e-01, 8.73033316e-01, 8.73033316e-01, 1.56373155e+01, -1.56373155e+01, 4.69146420e+01, 4.69146420e+01, 1.56373155e+01, 6.25619155e+01, 6.25619155e+01, -1.56373155e+01, -8.73033316e-01, -1.56373155e+01, 8.73033316e-01, 1.56373155e+01, 1.56373155e+01, 4.69146420e+01, 4.69146420e+01, 6.25619155e+01, 6.25619155e+01, 4.69146420e+01, 4.69146420e+01, 6.25619155e+01, 4.69146420e+01, 4.69146420e+01, 1.56373155e+01, 8.73033316e-01, -1.56373155e+01, -8.73033316e-01, -8.73033316e-01, -1.56373155e+01, 1.56373155e+01, -4.69146420e+01, -4.69146420e+01, -1.56373155e+01, -6.25619155e+01, -4.69146420e+01, -6.25619155e+01, -1.56373155e+01, -4.69146420e+01, 8.73033316e-01, 1.56373155e+01, -6.25619155e+01, -4.69146420e+01, -4.69146420e+01, -1.56373155e+01, -1.56373155e+01, -8.73033316e-01, 1.56373155e+01, -4.69146420e+01, -4.69146420e+01, -6.25619155e+01, -6.25619155e+01, -4.69146420e+01, -4.69146420e+01])
- node_x(n_node)float64...
- standard_name :
- x
- long name :
- Cartesian x location of the corner nodes of each face
- units :
- meters
[320 values with dtype=float64]
- node_y(n_node)float64...
- standard_name :
- y
- long name :
- Cartesian y location of the corner nodes of each face
- units :
- meters
[320 values with dtype=float64]
- node_z(n_node)float64...
- standard_name :
- z
- long name :
- Cartesian z location of the corner nodes of each face
- units :
- meters
[320 values with dtype=float64]
- edge_x(n_edge)float64...
- standard_name :
- x
- long name :
- Cartesian x location of the center of each edge
- units :
- meters
[480 values with dtype=float64]
- edge_y(n_edge)float64...
- standard_name :
- y
- long name :
- Cartesian y location of the center of each edge
- units :
- meters
[480 values with dtype=float64]
- edge_z(n_edge)float64...
- standard_name :
- z
- long name :
- Cartesian z location of the center of each edge
- units :
- meters
[480 values with dtype=float64]
- face_x(n_face)float64...
- standard_name :
- x
- long name :
- Cartesian x location of the center of each face
- units :
- meters
[162 values with dtype=float64]
- face_y(n_face)float64...
- standard_name :
- y
- long name :
- Cartesian y location of the center of each face
- units :
- meters
[162 values with dtype=float64]
- face_z(n_face)float64...
- standard_name :
- z
- long name :
- Cartesian z location of the center of each face
- units :
- meters
[162 values with dtype=float64]
- face_face_connectivity(n_face, n_max_face_faces)int6444 45 46 42 43 ... 159 40 95 94 38
- cf_role :
- face_face_connectivity
- long name :
- Faces that neighbor each face.
- start_index :
- 0
- _FillValue :
- -9223372036854775808
array([[ 44, 45, 46, 42, 43, -9223372036854775808], [ 48, 49, 50, 51, 47, -9223372036854775808], [ 54, 55, 56, 52, 53, -9223372036854775808], [ 57, 58, 59, 60, 61, -9223372036854775808], [ 64, 65, 66, 62, 63, -9223372036854775808], [ 70, 71, 67, 68, 69, -9223372036854775808], [ 76, 72, 73, 74, 75, -9223372036854775808], [ 78, 79, 80, 81, 77, -9223372036854775808], [ 86, 82, 83, 84, 85, -9223372036854775808], [ 88, 89, 90, 91, 87, -9223372036854775808], ... [ 153, 31, 77, 81, 39, 154], [ 154, 32, 66, 65, 31, 152], [ 153, 152, 39, 98, 97, 32], [ 101, 41, 148, 147, 32, 97], [ 158, 157, 33, 96, 95, 40], [ 158, 34, 68, 67, 33, 156], [ 156, 40, 85, 84, 34, 157], [ 160, 37, 86, 85, 40, 161], [ 159, 161, 38, 79, 78, 37], [ 160, 159, 40, 95, 94, 38]])
- face_edge_connectivity(n_face, n_max_face_edges)int64185 215 186 224 ... 359 470 115 347
- cf_role :
- face_edge_connectivity
- long name :
- Maps every face to its edges.
- start_index :
- 0
- _FillValue :
- -9223372036854775808
array([[ 185, 215, 186, 224, 423, -9223372036854775808], [ 180, 227, 210, 360, 276, -9223372036854775808], [ 173, 188, 458, 234, 278, -9223372036854775808], [ 68, 290, 216, 132, 140, -9223372036854775808], [ 189, 333, 448, 250, 297, -9223372036854775808], [ 162, 177, 168, 354, 163, -9223372036854775808], [ 151, 157, 305, 155, 156, -9223372036854775808], [ 138, 235, 172, 175, 207, -9223372036854775808], [ 127, 225, 200, 248, 206, -9223372036854775808], [ 136, 253, 195, 261, 270, -9223372036854775808], ... [ 3, 46, 122, 213, 351, 4], [ 2, 240, 417, 181, 67, 3], [ 2, 4, 184, 35, 479, 41], [ 146, 366, 356, 466, 357, 478], [ 1, 91, 217, 473, 355, 449], [ 14, 86, 129, 420, 37, 91], [ 1, 199, 389, 161, 246, 14], [ 0, 340, 182, 90, 98, 134], [ 0, 82, 164, 331, 349, 342], [ 82, 134, 359, 470, 115, 347]])
- edge_face_connectivity(n_edge, two)int64159 160 156 158 ... 97 155 97 154
- cf_role :
- edge_face_connectivity
- long name :
- Faces that neighbor each edge
- start_index :
- 0
- _FillValue :
- -9223372036854775808
array([[159, 160], [156, 158], [153, 154], [152, 153], [152, 154], [150, 151], [147, 148], [137, 141], [136, 137], [136, 141], [135, 145], [132, 133], [132, 138], [129, 130], [157, 158], [128, 129], [128, 130], [127, 131], [124, 125], [123, 125], ... [ 88, 89], [ 89, 132], [ 90, 91], [104, 105], [ 92, 109], [ 93, 109], [147, 155], [ 93, 111], [134, 135], [ 94, 111], [ 95, 161], [ 31, 65], [ 28, 57], [ 96, 156], [ 96, 117], [ 97, 101], [ 28, 146], [ 28, 145], [ 97, 155], [ 97, 154]])
- node_face_connectivity(n_node, n_max_node_faces)int6446 42 0 42 43 ... 156 159 161 160
- cf_role :
- node_face_connectivity
- long name :
- Faces that neighbor each node
- start_index :
- 0
- _FillValue :
- -9223372036854775808
array([[ 46, 42, 0], [ 42, 43, 0], [ 0, 43, 44], [ 44, 45, 0], [ 46, 0, 45], [ 50, 51, 1], [ 47, 1, 51], [ 1, 47, 48], [ 48, 49, 1], [ 1, 49, 50], [ 2, 56, 52], [ 52, 53, 2], [ 54, 2, 53], [ 55, 2, 54], [ 55, 56, 2], [ 60, 61, 3], [ 3, 61, 57], [ 57, 58, 3], [ 3, 58, 59], [ 3, 59, 60], ... [108, 103, 102], [105, 104, 115], [107, 106, 111], [114, 110, 109], [112, 116, 113], [118, 117, 119], [121, 120, 122], [124, 123, 125], [127, 126, 131], [129, 128, 130], [132, 138, 133], [135, 134, 145], [137, 136, 141], [140, 139, 144], [143, 142, 146], [147, 155, 148], [150, 149, 151], [153, 152, 154], [158, 157, 156], [159, 161, 160]])
- edge_node_connectivity(n_edge, two)int64319 211 229 318 ... 295 183 182 296
- cf_role :
- edge_node_connectivity
- long name :
- Maps every edge to the two nodes that it connects.
- start_index :
- 0
array([[319, 211], [229, 318], [317, 181], [317, 175], [223, 317], [316, 178], [315, 166], [312, 145], [312, 141], [200, 312], [311, 163], [310, 135], [207, 310], [309, 121], [318, 192], [309, 114], [235, 309], [308, 204], [307, 110], [128, 307], ... [287, 46], [208, 288], [289, 48], [301, 63], [ 90, 291], [291, 72], [184, 315], [ 77, 292], [311, 132], [292, 219], [293, 231], [176, 177], [161, 156], [294, 191], [190, 290], [ 56, 295], [157, 158], [159, 160], [295, 183], [182, 296]])
- face_node_connectivity(n_face, n_max_face_nodes)int643 4 0 1 2 ... 232 231 293 218 217
- cf_role :
- face_node_connectivity
- long name :
- Maps every face to its corner nodes.
- start_index :
- 0
- _FillValue :
- -9223372036854775808
array([[ 3, 4, 0, 1, 2, -9223372036854775808], [ 8, 9, 5, 6, 7, -9223372036854775808], [ 13, 14, 10, 11, 12, -9223372036854775808], [ 17, 18, 19, 15, 16, -9223372036854775808], [ 24, 20, 21, 22, 23, -9223372036854775808], [ 25, 26, 27, 28, 29, -9223372036854775808], [ 30, 31, 32, 33, 34, -9223372036854775808], [ 37, 38, 39, 35, 36, -9223372036854775808], [ 42, 43, 44, 40, 41, -9223372036854775808], [ 46, 47, 48, 49, 45, -9223372036854775808], ... [ 175, 174, 275, 224, 223, 317], [ 181, 180, 264, 176, 175, 317], [ 317, 223, 222, 296, 182, 181], [ 239, 238, 315, 184, 183, 295], [ 318, 186, 191, 294, 230, 229], [ 192, 197, 266, 187, 186, 318], [ 229, 228, 283, 193, 192, 318], [ 211, 210, 284, 233, 232, 319], [ 319, 217, 216, 277, 212, 211], [ 319, 232, 231, 293, 218, 217]])
- face_areas(n_face)float64...
- cf_role :
- face_areas
- long_name :
- Area of each face.
[162 values with dtype=float64]
- edge_face_distances(n_edge)float640.3001 0.3001 ... 0.3007 0.3007
- cf_role :
- edge_face_distances
- long_name :
- Distances between the face centers that saddle each edge
array([0.30008442, 0.30008442, 0.3000844 , 0.30008439, 0.3000844 , 0.30008441, 0.3000844 , 0.30008439, 0.3000844 , 0.3000844 , 0.3000844 , 0.3000844 , 0.30008439, 0.30008442, 0.30008442, 0.30008442, 0.30008441, 0.30008441, 0.30008442, 0.30008442, 0.30008439, 0.3000844 , 0.3000844 , 0.3000844 , 0.30008439, 0.30008441, 0.30008442, 0.3000844 , 0.3000844 , 0.30008442, 0.30008442, 0.31811637, 0.30068562, 0.30068563, 0.30068561, 0.30068562, 0.28073551, 0.31451634, 0.30008442, 0.30068563, 0.3000844 , 0.31451634, 0.30068562, 0.2807355 , 0.30068563, 0.31451635, 0.31451633, 0.31811636, 0.30068563, 0.30068563, 0.31451633, 0.31451633, 0.31451634, 0.31451634, 0.31451633, 0.28073551, 0.31451634, 0.31451634, 0.31811637, 0.31451633, 0.31451634, 0.30068563, 0.31451634, 0.28073551, 0.31451633, 0.28073551, 0.31451635, 0.31451633, 0.27283885, 0.31451635, 0.31451633, 0.30068563, 0.31451635, 0.31451635, 0.31451635, 0.31811636, 0.2807355 , 0.31811637, 0.31451635, 0.30068561, 0.31451635, 0.31451635, 0.30008441, 0.30008439, 0.31451633, 0.30068562, 0.31451635, 0.30068563, 0.31451633, 0.31811637, 0.30068563, 0.30008441, 0.2807355 , 0.31811637, 0.30068562, 0.31451635, 0.30068563, 0.28073551, 0.31451635, 0.28073551, ... 0.30068562, 0.31451635, 0.31811636, 0.31811637, 0.30068562, 0.31811636, 0.31811636, 0.30068563, 0.28073551, 0.30068563, 0.30068563, 0.31811637, 0.31811636, 0.30068561, 0.30068563, 0.30068563, 0.30068563, 0.30068563, 0.31451635, 0.31811637, 0.30068563, 0.30068563, 0.30068563, 0.30068563, 0.30068563, 0.30068561, 0.31811636, 0.31811636, 0.30068563, 0.31811637, 0.30068562, 0.31451634, 0.30068562, 0.31811637, 0.30068562, 0.30068563, 0.31451634, 0.30068561, 0.2807355 , 0.30068562, 0.30068563, 0.31811637, 0.31451635, 0.27283885, 0.30068562, 0.31811637, 0.30068563, 0.30068561, 0.31811637, 0.30068563, 0.31451635, 0.31811636, 0.30068563, 0.30068561, 0.31811636, 0.30068562, 0.31811636, 0.30068562, 0.30068562, 0.31811637, 0.31811636, 0.30068562, 0.30068563, 0.30068562, 0.31451634, 0.31811637, 0.30068561, 0.30008441, 0.27283885, 0.31451635, 0.30068562, 0.30008439, 0.31811636, 0.30008442, 0.30068562, 0.2807355 , 0.31811637, 0.31811637, 0.27283885, 0.31811637, 0.31811637, 0.30068563, 0.31811636, 0.30008441, 0.30068562, 0.30068562, 0.3000844 , 0.30068561, 0.3000844 , 0.30068563, 0.30068562, 0.28073551, 0.28073551, 0.30068563, 0.30068563, 0.31811636, 0.31451634, 0.31451633, 0.30068561, 0.30068562])
- edge_node_distances(n_edge)float640.1857 0.1857 ... 0.1808 0.1808
- cf_role :
- edge_node_distances
- long_name :
- Distances between the nodes that make up each edge.
array([0.18569212, 0.18569212, 0.18569211, 0.18569212, 0.18569211, 0.18569212, 0.18569211, 0.18569212, 0.18569211, 0.18569211, 0.18569211, 0.18569211, 0.18569212, 0.18569212, 0.18569212, 0.18569212, 0.18569212, 0.18569212, 0.18569212, 0.18569212, 0.18569212, 0.18569211, 0.18569211, 0.18569211, 0.18569212, 0.18569212, 0.18569212, 0.18569211, 0.18569211, 0.18569212, 0.18569212, 0.13341756, 0.18078901, 0.18078901, 0.18078901, 0.18078902, 0.20352982, 0.15905298, 0.18569212, 0.18078901, 0.18569211, 0.15905297, 0.18078901, 0.20352981, 0.18078901, 0.15905297, 0.15905298, 0.13341755, 0.18078901, 0.18078901, 0.15905297, 0.15905297, 0.15905297, 0.15905298, 0.15905298, 0.20352982, 0.15905297, 0.15905298, 0.13341756, 0.15905298, 0.15905297, 0.18078901, 0.15905298, 0.20352982, 0.15905297, 0.20352981, 0.15905298, 0.15905298, 0.19697539, 0.15905298, 0.15905298, 0.18078901, 0.15905297, 0.15905297, 0.15905297, 0.13341756, 0.20352981, 0.13341756, 0.15905298, 0.18078901, 0.15905297, 0.15905297, 0.18569212, 0.18569212, 0.15905298, 0.18078902, 0.15905297, 0.18078901, 0.15905298, 0.13341756, 0.18078901, 0.18569212, 0.20352982, 0.13341756, 0.18078901, 0.15905298, 0.18078901, 0.20352982, 0.15905298, 0.20352981, ... 0.18078902, 0.15905297, 0.13341755, 0.13341756, 0.18078902, 0.13341756, 0.13341755, 0.18078901, 0.20352982, 0.18078901, 0.18078901, 0.13341756, 0.13341755, 0.18078901, 0.18078901, 0.18078901, 0.18078901, 0.18078901, 0.15905298, 0.13341756, 0.18078901, 0.18078901, 0.18078901, 0.18078901, 0.18078901, 0.18078901, 0.13341756, 0.13341755, 0.18078901, 0.13341756, 0.18078901, 0.15905298, 0.18078901, 0.13341756, 0.18078901, 0.18078901, 0.15905297, 0.18078901, 0.20352982, 0.18078902, 0.18078901, 0.13341756, 0.15905298, 0.1969754 , 0.18078901, 0.13341756, 0.18078901, 0.18078901, 0.13341756, 0.18078901, 0.15905297, 0.13341755, 0.18078901, 0.18078901, 0.13341756, 0.18078901, 0.13341755, 0.18078902, 0.18078902, 0.13341756, 0.13341755, 0.18078901, 0.18078901, 0.18078901, 0.15905298, 0.13341756, 0.18078901, 0.18569212, 0.1969754 , 0.15905297, 0.18078902, 0.18569212, 0.13341756, 0.18569212, 0.18078902, 0.20352982, 0.13341756, 0.13341756, 0.1969754 , 0.13341756, 0.13341756, 0.18078901, 0.13341756, 0.18569212, 0.18078902, 0.18078902, 0.18569211, 0.18078901, 0.18569211, 0.18078901, 0.18078901, 0.20352982, 0.20352982, 0.18078901, 0.18078901, 0.13341755, 0.15905298, 0.15905298, 0.18078901, 0.18078902])
- boundary_node_indices(n_boundary_nodes)int64
array([], dtype=int64)
- on_a_sphere :
- YES
- sphere_radius :
- 1.0
- is_periodic :
- NO
- history :
- MpasMeshConverter.x base_grids/x1.162.grid.nc base_meshes/x1.162.grid.nc
- mesh_spec :
- 1.0
- Conventions :
- MPAS
- source :
- MpasMeshConverter.x
- file_id :
- rku96q0z66
- source_grid_spec :
- MPAS
dual_mesh
<uxarray.Grid> Original Grid Type: MPAS Grid Dimensions: * n_node: 162 * n_edge: 480 * n_face: 320 * n_max_face_nodes: 3 * n_max_face_edges: 3 * n_max_node_faces: 6 * two: 2 Grid Coordinates (Spherical): * node_lon: (162,) * node_lat: (162,) * edge_lon: (480,) * edge_lat: (480,) * face_lon: (320,) * face_lat: (320,) Grid Coordinates (Cartesian): * node_x: (162,) * node_y: (162,) * node_z: (162,) * edge_x: (480,) * edge_y: (480,) * edge_z: (480,) * face_x: (320,) * face_y: (320,) * face_z: (320,) Grid Connectivity Variables: * face_edge_connectivity: (320, 3) * edge_face_connectivity: (480, 2) * node_face_connectivity: (162, 6) * edge_node_connectivity: (480, 2) * face_node_connectivity: (320, 3) Grid Descriptor Variables: * face_areas: (320,) * edge_face_distances: (480,) * edge_node_distances: (480,)
- n_node: 162
- n_face: 320
- n_edge: 480
- n_max_face_nodes: 3
- n_max_node_faces: 6
- two: 2
- n_max_face_edges: 3
- node_lon(n_node)float64-175.0 -103.0 0.0 ... 172.4 -162.3
array([-174.95294504, -102.95294504, 0. , 5.04705496, 77.04705496, -66.95294504, -30.95294504, 149.04705496, 0. , 41.04705496, -138.95294504, 113.04705496, 149.04705496, 167.04705496, -156.95294504, -138.95294504, -174.95294504, -120.95294504, -84.95294504, -66.95294504, -102.95294504, 41.04705496, 113.04705496, -30.95294504, 23.04705496, -12.95294504, -30.95294504, 5.04705496, 41.04705496, 59.04705496, 77.04705496, 113.04705496, 95.04705496, -102.95294504, -66.95294504, -48.95294504, 5.04705496, 149.04705496, -174.95294504, 131.04705496, -138.95294504, 77.04705496, 167.77251723, 175.66717516, -165.57306524, -157.67840731, -174.95294504, -102.95294504, -120.22748277, -112.33282484, -93.57306524, -85.67840731, -30.95294504, 41.04705496, 113.04705496, -174.95294504, -102.95294504, 22.32159269, 14.42693476, -4.33282484, -12.22748277, 5.04705496, 67.66717516, 59.77251723, 77.04705496, 94.32159269, 86.42693476, -84.22748277, -66.95294504, -49.67840731, -57.57306524, -76.33282484, -40.33282484, -21.57306524, -13.67840731, -30.95294504, -48.22748277, 131.77251723, 149.04705496, 166.32159269, ... -66.95294504, -138.95294504, 149.04705496, 58.32159269, 41.04705496, 23.77251723, 31.66717516, 50.42693476, -129.57306524, -148.33282484, -156.22748277, -138.95294504, -121.67840731, 103.66717516, 122.42693476, 130.32159269, 113.04705496, 95.77251723, 140.11719882, 157.9769111 , 161.68736903, 136.40674089, 176.11719882, -174.95294504, 149.04705496, -138.95294504, -147.88280118, -166.0230889 , -126.31263097, -151.59325911, -130.0230889 , 149.04705496, -138.95294504, -111.88280118, -102.95294504, -94.0230889 , -66.95294504, -75.88280118, -58.0230889 , -54.31263097, -79.59325911, -66.95294504, 5.04705496, 17.68736903, 64.40674089, 77.04705496, 89.68736903, -7.59325911, 13.9769111 , 5.04705496, 32.11719882, 41.04705496, -30.95294504, -22.0230889 , -3.88280118, -43.59325911, -18.31263097, -39.88280118, 41.04705496, 28.40674089, -30.95294504, 49.9769111 , 53.68736903, 77.04705496, 68.11719882, 113.04705496, 100.40674089, 125.68736903, 121.9769111 , 104.11719882, 113.04705496, 85.9769111 , -115.59325911, -90.31263097, -102.95294504, -174.95294504, 172.40674089, -162.31263097])
- node_lat(n_node)float6426.57 26.57 90.0 ... -46.91 -46.91
- standard_name :
- latitude
- long name :
- Latitude of the corner nodes of each face
- units :
- degrees_north
array([ 2.65650512e+01, 2.65650512e+01, 9.00000000e+01, -2.65650512e+01, -2.65650512e+01, -2.65650512e+01, 2.65650512e+01, -2.65650512e+01, -9.00000000e+01, 2.65650512e+01, -2.65650512e+01, 2.65650512e+01, 3.17174744e+01, -1.08861981e-11, -5.78687373e-11, 3.17174744e+01, 5.82825256e+01, -6.93278932e-11, -5.21391594e-11, 3.17174744e+01, 5.82825256e+01, 5.82825256e+01, 5.82825256e+01, 5.82825256e+01, 5.78687373e-11, 1.08861981e-11, -3.17174744e+01, -5.82825256e+01, -3.17174744e+01, 6.93278932e-11, -5.82825256e+01, -3.17174744e+01, 5.21391594e-11, -3.17174744e+01, -5.82825256e+01, -2.69290164e-11, 3.17174744e+01, -5.82825256e+01, -3.17174744e+01, 2.69290164e-11, -5.82825256e+01, 3.17174744e+01, 3.03412934e+01, 1.36319094e+01, 1.36319094e+01, 3.03412934e+01, 4.21975660e+01, 4.21975660e+01, 3.03412934e+01, 1.36319094e+01, 1.36319094e+01, 3.03412934e+01, 7.43674852e+01, 7.43674852e+01, 7.43674852e+01, 7.43674852e+01, 7.43674852e+01, -3.03412934e+01, -1.36319094e+01, -1.36319094e+01, -3.03412934e+01, -4.21975660e+01, -1.36319094e+01, -3.03412934e+01, -4.21975660e+01, -3.03412934e+01, -1.36319094e+01, -3.03412934e+01, -4.21975660e+01, -3.03412934e+01, -1.36319094e+01, -1.36319094e+01, 1.36319094e+01, 1.36319094e+01, 3.03412934e+01, 4.21975660e+01, 3.03412934e+01, -3.03412934e+01, -4.21975660e+01, -3.03412934e+01, ... -7.43674852e+01, -7.43674852e+01, -7.43674852e+01, 3.03412934e+01, 4.21975660e+01, 3.03412934e+01, 1.36319094e+01, 1.36319094e+01, -1.36319094e+01, -1.36319094e+01, -3.03412934e+01, -4.21975660e+01, -3.03412934e+01, 1.36319094e+01, 1.36319094e+01, 3.03412934e+01, 4.21975660e+01, 3.03412934e+01, 1.56373155e+01, 1.56373155e+01, 4.69146420e+01, 4.69146420e+01, -1.56373155e+01, -8.73033316e-01, 8.73033316e-01, 8.73033316e-01, 1.56373155e+01, -1.56373155e+01, 4.69146420e+01, 4.69146420e+01, 1.56373155e+01, 6.25619155e+01, 6.25619155e+01, -1.56373155e+01, -8.73033316e-01, -1.56373155e+01, 8.73033316e-01, 1.56373155e+01, 1.56373155e+01, 4.69146420e+01, 4.69146420e+01, 6.25619155e+01, 6.25619155e+01, 4.69146420e+01, 4.69146420e+01, 6.25619155e+01, 4.69146420e+01, 4.69146420e+01, 1.56373155e+01, 8.73033316e-01, -1.56373155e+01, -8.73033316e-01, -8.73033316e-01, -1.56373155e+01, 1.56373155e+01, -4.69146420e+01, -4.69146420e+01, -1.56373155e+01, -6.25619155e+01, -4.69146420e+01, -6.25619155e+01, -1.56373155e+01, -4.69146420e+01, 8.73033316e-01, 1.56373155e+01, -6.25619155e+01, -4.69146420e+01, -4.69146420e+01, -1.56373155e+01, -1.56373155e+01, -8.73033316e-01, 1.56373155e+01, -4.69146420e+01, -4.69146420e+01, -6.25619155e+01, -6.25619155e+01, -4.69146420e+01, -4.69146420e+01])
- edge_lon(n_edge)float64177.5 -110.5 108.7 ... 94.86 108.4
array([ 1.77493843e+02, -1.10506157e+02, 1.08666226e+02, 1.13047055e+02, 1.17427884e+02, 1.13047055e+02, 7.26662258e+01, -3.09529450e+01, -2.65721158e+01, -3.53337742e+01, 4.54278842e+01, 9.42788415e+00, 5.04705496e+00, 8.46002664e+01, -9.53997336e+01, 6.94938435e+01, 7.70470550e+01, 5.04705496e+00, -7.45061565e+01, -5.93997336e+01, -6.69529450e+01, -7.13337742e+01, -6.25721158e+01, -9.85721158e+01, -1.02952945e+02, -1.38952945e+02, -1.31399734e+02, -1.34572116e+02, -1.70572116e+02, 1.41493843e+02, 1.56600266e+02, 1.03746711e+02, 1.24246570e+02, 1.33009729e+02, 1.31231318e+02, 1.17670116e+02, -9.35219621e+01, -9.73260570e+01, 1.20600266e+02, -5.38186510e+01, -1.07333774e+02, 1.04046528e+02, 5.22465702e+01, 7.70470550e+01, 2.74881524e+01, 6.38257621e+01, 1.17789099e+02, 9.01398370e+01, 1.35488152e+02, 9.99127609e+01, 6.34964376e+01, 5.45976723e+01, 5.00475817e+01, 3.54201670e+01, -6.22109011e+01, -2.15219621e+01, 8.60475817e+01, 1.43420167e+02, -3.09529450e+01, -3.56949890e+01, -3.95347179e+00, 6.39127609e+01, 1.18673943e+02, 1.22478038e+02, 1.85976723e+01, 2.72954240e+01, -5.01782583e+01, 1.08305011e+02, 1.35288473e+01, -1.41782583e+01, 7.23050110e+01, 1.81813490e+01, -1.77316521e+01, -4.41742379e+01, 1.26268348e+02, 1.13047055e+02, -3.09529450e+01, 1.49047055e+02, 1.29821742e+02, -8.47686822e+01, ... -4.40872391e+01, -1.78186510e+01, -1.25818651e+02, -8.00872391e+01, 2.50097291e+01, 2.32313178e+01, 5.04705496e+00, -8.04572709e+00, -1.73940425e+01, -4.25328913e+00, -6.15246027e+00, 1.54673943e+02, 1.62465702e+01, 6.77467109e+01, 8.82465702e+01, 9.70097291e+01, 1.58047582e+02, 9.52313178e+01, -1.38952945e+02, 8.16701159e+01, -8.69156191e+01, -1.48253289e+02, 2.42723682e+01, -1.79837834e+02, -5.57534298e+01, -5.76526009e+01, -4.69902709e+01, -1.20768682e+02, -7.62532891e+01, -4.45118476e+01, 9.02683479e+01, -5.38601630e+01, -8.51184757e+00, -4.87686822e+01, -6.69529450e+01, -1.63753430e+02, -4.40457271e+01, -3.55760059e+01, -2.63298841e+01, -2.16526009e+01, 1.26139837e+02, -1.97534298e+01, -5.33940425e+01, 1.37847540e+02, -3.65798330e+01, 1.58347399e+02, 1.67231318e+02, -6.69529450e+01, 8.19319442e+01, -1.25731652e+02, 1.53670116e+02, 1.49047055e+02, 1.49047055e+02, 4.86002664e+01, 1.44423994e+02, 4.10470550e+01, -1.74952945e+02, 5.04705496e+00, -1.02952945e+02, 5.03473991e+01, 3.17467109e+01, 1.86059575e+01, 4.10470550e+01, 1.49047055e+02, -1.34329884e+02, -1.43576006e+02, 8.14278842e+01, -1.57137208e+02, 3.66662258e+01, -1.61394043e+02, -1.50152460e+02, 1.03616072e+02, 3.16160720e+01, -1.18990271e+02, -1.16511848e+02, 9.99542729e+01, 4.66739430e+01, 4.57890989e+01, 9.48627922e+01, 1.08423994e+02])
- edge_lat(n_edge)float64-54.9 -54.9 -8.28 ... 14.8 6.401
- standard_name :
- latitude
- long name :
- Latitude of the center of each edge
- units :
- degrees_north
array([-54.89651955, -54.89651955, -8.27994701, -15.81962943, -8.27994701, -47.6153194 , 8.27994701, -15.81962943, -8.27994701, -8.27994701, -8.27994701, 8.27994701, 15.81962943, 54.89651955, -54.89651955, 54.89651955, 47.6153194 , 47.6153194 , 54.89651955, 54.89651955, 15.81962943, 8.27994701, 8.27994701, -8.27994701, -15.81962943, 47.6153194 , 54.89651955, 8.27994701, -8.27994701, 54.89651955, 54.89651955, 36.57981951, 45.15448663, 38.66685489, 14.80305333, 6.40068779, -31.36984568, -39.48532031, -54.89651955, 69.36033641, -8.27994701, -0.44195768, 45.15448663, -66.3250054 , -23.06453063, -53.16545759, -23.74126199, -22.03371704, 23.06453063, -69.36033641, 7.84290011, -7.84290011, -0.44195768, -39.48532031, 23.74126199, -31.36984568, 0.44195768, 39.48532031, -77.2445669 , -23.74126199, 0.44195768, 69.36033641, -39.48532031, -31.36984568, 7.84290011, 6.83509864, -61.63490222, -23.74126199, -28.72768179, 61.63490222, 23.74126199, 69.36033641, 53.16545759, 53.16545759, 53.16545759, 13.80961808, 66.3250054 , 77.2445669 , 61.63490222, 14.80305333, ... -69.36033641, -69.36033641, 69.36033641, 69.36033641, -38.66685489, -14.80305333, -13.80961808, -22.03371704, -23.06453063, -36.57981951, -45.15448663, 39.48532031, -45.15448663, -36.57981951, -45.15448663, -38.66685489, 0.44195768, -14.80305333, -50.24004577, -6.40068779, -38.66685489, -36.57981951, 61.63490222, 20.16046475, -45.15448663, -36.57981951, -38.66685489, -14.80305333, -36.57981951, -23.06453063, -53.16545759, -22.03371704, 23.06453063, -14.80305333, -13.80961808, 45.15448663, 22.03371704, 6.40068779, 6.40068779, 36.57981951, 22.03371704, 45.15448663, 23.06453063, -45.15448663, -39.48532031, -36.57981951, -14.80305333, 47.6153194 , -20.16046475, -53.16545759, -6.40068779, 15.81962943, -13.80961808, -54.89651955, -6.40068779, 50.24004577, -77.2445669 , 77.2445669 , 82.18374261, 36.57981951, 36.57981951, 23.06453063, 13.80961808, 47.6153194 , -6.40068779, -6.40068779, 8.27994701, -14.80305333, -8.27994701, -23.06453063, -45.15448663, -31.36984568, -31.36984568, -38.66685489, -23.06453063, 22.03371704, -39.48532031, -23.74126199, 14.80305333, 6.40068779])
- face_lon(n_face)float64178.2 175.1 ... -103.0 -175.0
array([ 178.2199104 , 175.07571408, -174.95294504, -164.98160416, -168.12580048, -92.98160416, -96.12580048, -109.7800896 , -112.92428592, -102.95294504, -66.95294504, 5.04705496, 77.04705496, 149.04705496, -138.95294504, -1.7800896 , 11.87419952, 15.01839584, 5.04705496, -4.92428592, 87.01839584, 77.04705496, 67.07571408, 70.2199104 , 83.87419952, -66.95294504, -76.92428592, -73.7800896 , -60.12580048, -56.98160416, -40.92428592, -30.95294504, -20.98160416, -24.12580048, -37.7800896 , 139.07571408, 142.2199104 , 155.87419952, 159.01839584, 149.04705496, -102.95294504, -174.95294504, 113.04705496, 41.04705496, -30.95294504, 47.87419952, 34.2199104 , 31.07571408, 41.04705496, 51.01839584, -145.7800896 , -132.12580048, -128.98160416, -138.95294504, -148.92428592, 106.2199104 , 103.07571408, 113.04705496, 123.01839584, 119.87419952, 149.04705496, 157.92220999, 159.10737356, 149.04705496, 138.98673636, 140.17189993, 167.81735672, 175.80545012, 176.24978401, 166.2767532 , 158.28865981, 157.84432591, -147.75021599, -148.19454988, -156.18264328, -166.15567409, -165.71134019, -157.7232468 , -138.95294504, -149.01326364, ... 171.88946674, 167.53637029, -174.95294504, -157.44226037, -161.79535682, -89.79535682, -116.11053326, -120.46362971, -102.95294504, -85.44226037, -66.95294504, 5.04705496, 77.04705496, 149.04705496, -138.95294504, 18.20464318, 22.55773963, 5.04705496, -12.46362971, -8.11053326, 77.04705496, 59.53637029, 63.88946674, 90.20464318, 94.55773963, -84.46362971, -80.11053326, -53.79535682, -49.44226037, -66.95294504, -48.46362971, -30.95294504, -13.44226037, -17.79535682, -44.11053326, 131.53637029, 135.88946674, 162.20464318, 166.55773963, 149.04705496, 113.04705496, 41.04705496, -30.95294504, -102.95294504, -174.95294504, 58.55773963, 54.20464318, 27.88946674, 23.53637029, 41.04705496, -121.44226037, -138.95294504, -156.46362971, -152.11053326, -125.79535682, 95.53637029, 113.04705496, 130.55773963, 126.20464318, 99.88946674, 149.04705496, 149.04705496, -174.95294504, -138.95294504, -138.95294504, -102.95294504, -66.95294504, -66.95294504, 5.04705496, 77.04705496, 5.04705496, 41.04705496, -30.95294504, -30.95294504, 41.04705496, 77.04705496, 113.04705496, 113.04705496, -102.95294504, -174.95294504])
- face_lat(n_face)float6434.19 23.25 16.93 ... -52.62 -52.62
- standard_name :
- latitude
- long name :
- Latitude of the center of each face
- units :
- degrees_north
array([ 34.1915419 , 23.24569025, 16.93496156, 23.24569025, 34.1915419 , 23.24569025, 34.1915419 , 34.1915419 , 23.24569025, 16.93496156, 80.36991038, 80.36991038, 80.36991038, 80.36991038, 80.36991038, -34.1915419 , -34.1915419 , -23.24569025, -16.93496156, -23.24569025, -23.24569025, -16.93496156, -23.24569025, -34.1915419 , -34.1915419 , -16.93496156, -23.24569025, -34.1915419 , -34.1915419 , -23.24569025, 23.24569025, 16.93496156, 23.24569025, 34.1915419 , 34.1915419 , -23.24569025, -34.1915419 , -34.1915419 , -23.24569025, -16.93496156, -80.36991038, -80.36991038, -80.36991038, -80.36991038, -80.36991038, 34.1915419 , 34.1915419 , 23.24569025, 16.93496156, 23.24569025, -34.1915419 , -34.1915419 , -23.24569025, -16.93496156, -23.24569025, 34.1915419 , 23.24569025, 16.93496156, 23.24569025, 34.1915419 , 21.45169171, 25.55962357, 37.17735421, 41.98325711, 37.17735421, 25.55962357, -9.89279301, -5.37609646, 3.72615394, 9.89279301, 5.37609646, -3.72615394, -3.72615394, 5.37609646, 9.89279301, 3.72615394, -5.37609646, -9.89279301, 41.98325711, 37.17735421, ... 39.93474259, 20.1797958 , 9.29069849, 20.1797958 , 39.93474259, 39.93474259, 39.93474259, 20.1797958 , 9.29069849, 20.1797958 , 72.72564732, 72.72564732, 72.72564732, 72.72564732, 72.72564732, -39.93474259, -20.1797958 , -9.29069849, -20.1797958 , -39.93474259, -9.29069849, -20.1797958 , -39.93474259, -39.93474259, -20.1797958 , -20.1797958 , -39.93474259, -39.93474259, -20.1797958 , -9.29069849, 20.1797958 , 9.29069849, 20.1797958 , 39.93474259, 39.93474259, -20.1797958 , -39.93474259, -39.93474259, -20.1797958 , -9.29069849, -72.72564732, -72.72564732, -72.72564732, -72.72564732, -72.72564732, 20.1797958 , 39.93474259, 39.93474259, 20.1797958 , 9.29069849, -20.1797958 , -9.29069849, -20.1797958 , -39.93474259, -39.93474259, 20.1797958 , 9.29069849, 20.1797958 , 39.93474259, 39.93474259, 10.81231696, 52.62263186, -10.81231696, 10.81231696, 52.62263186, -10.81231696, 10.81231696, 52.62263186, 52.62263186, 52.62263186, 10.81231696, -10.81231696, -10.81231696, -52.62263186, -52.62263186, 10.81231696, -52.62263186, -10.81231696, -52.62263186, -52.62263186])
- node_x(n_node)float64...
- standard_name :
- x
- long name :
- Cartesian x location of the corner nodes of each face
- units :
- meters
[162 values with dtype=float64]
- node_y(n_node)float64...
- standard_name :
- y
- long name :
- Cartesian y location of the corner nodes of each face
- units :
- meters
[162 values with dtype=float64]
- node_z(n_node)float64...
- standard_name :
- z
- long name :
- Cartesian z location of the corner nodes of each face
- units :
- meters
[162 values with dtype=float64]
- edge_x(n_edge)float64...
- standard_name :
- x
- long name :
- Cartesian x location of the center of each edge
- units :
- meters
[480 values with dtype=float64]
- edge_y(n_edge)float64...
- standard_name :
- y
- long name :
- Cartesian y location of the center of each edge
- units :
- meters
[480 values with dtype=float64]
- edge_z(n_edge)float64...
- standard_name :
- z
- long name :
- Cartesian z location of the center of each edge
- units :
- meters
[480 values with dtype=float64]
- face_x(n_face)float64...
- standard_name :
- x
- long name :
- Cartesian x location of the center of each face
- units :
- meters
[320 values with dtype=float64]
- face_y(n_face)float64...
- standard_name :
- y
- long name :
- Cartesian y location of the center of each face
- units :
- meters
[320 values with dtype=float64]
- face_z(n_face)float64...
- standard_name :
- z
- long name :
- Cartesian z location of the center of each face
- units :
- meters
[320 values with dtype=float64]
- face_edge_connectivity(n_face, n_max_face_edges)int64186 372 224 224 328 ... 91 0 134 82
- cf_role :
- face_edge_connectivity
- long name :
- Maps every face to its edges.
- start_index :
- 0
- _FillValue :
- -9223372036854775808
array([[186, 372, 224], [224, 328, 423], [185, 423, 375], [185, 376, 215], [ 89, 186, 215], [210, 386, 360], [102, 276, 360], [180, 276, 344], [180, 382, 227], [210, 227, 385], [234, 458, 391], [234, 457, 278], [ 93, 173, 278], [ 77, 188, 173], [188, 399, 458], [132, 409, 140], [ 68, 140, 139], [ 68, 196, 290], [216, 290, 406], [132, 216, 407], ... [105, 275, 451], [ 29, 463, 30], [ 28, 363, 292], [ 27, 251, 117], [ 25, 26, 145], [ 23, 40, 24], [ 20, 21, 22], [ 18, 447, 19], [ 17, 209, 323], [ 13, 15, 16], [ 11, 12, 179], [ 10, 468, 83], [ 7, 8, 9], [107, 150, 113], [257, 267, 453], [ 6, 466, 356], [ 5, 371, 38], [ 2, 3, 4], [ 1, 14, 91], [ 0, 134, 82]])
- edge_face_connectivity(n_edge, two)int64319 211 229 318 ... 295 183 182 296
- cf_role :
- edge_face_connectivity
- long name :
- Faces that neighbor each edge
- start_index :
- 0
- _FillValue :
- -9223372036854775808
array([[319, 211], [229, 318], [317, 181], [317, 175], [223, 317], [316, 178], [315, 166], [312, 145], [312, 141], [200, 312], [311, 163], [310, 135], [207, 310], [309, 121], [318, 192], [309, 114], [235, 309], [308, 204], [307, 110], [128, 307], ... [287, 46], [208, 288], [289, 48], [301, 63], [ 90, 291], [291, 72], [184, 315], [ 77, 292], [311, 132], [292, 219], [293, 231], [176, 177], [161, 156], [294, 191], [190, 290], [ 56, 295], [157, 158], [159, 160], [295, 183], [182, 296]])
- node_face_connectivity(n_node, n_max_node_faces)int643 4 0 1 2 ... 232 231 293 218 217
- cf_role :
- node_face_connectivity
- long name :
- Faces that neighbor each node
- start_index :
- 0
- _FillValue :
- -9223372036854775808
array([[ 3, 4, 0, 1, 2, -9223372036854775808], [ 8, 9, 5, 6, 7, -9223372036854775808], [ 13, 14, 10, 11, 12, -9223372036854775808], [ 17, 18, 19, 15, 16, -9223372036854775808], [ 24, 20, 21, 22, 23, -9223372036854775808], [ 25, 26, 27, 28, 29, -9223372036854775808], [ 30, 31, 32, 33, 34, -9223372036854775808], [ 37, 38, 39, 35, 36, -9223372036854775808], [ 42, 43, 44, 40, 41, -9223372036854775808], [ 46, 47, 48, 49, 45, -9223372036854775808], ... [ 175, 174, 275, 224, 223, 317], [ 181, 180, 264, 176, 175, 317], [ 317, 223, 222, 296, 182, 181], [ 239, 238, 315, 184, 183, 295], [ 318, 186, 191, 294, 230, 229], [ 192, 197, 266, 187, 186, 318], [ 229, 228, 283, 193, 192, 318], [ 211, 210, 284, 233, 232, 319], [ 319, 217, 216, 277, 212, 211], [ 319, 232, 231, 293, 218, 217]])
- edge_node_connectivity(n_edge, two)int64159 160 156 158 ... 97 155 97 154
- cf_role :
- edge_node_connectivity
- long name :
- Maps every edge to the two nodes that it connects.
- start_index :
- 0
array([[159, 160], [156, 158], [153, 154], [152, 153], [152, 154], [150, 151], [147, 148], [137, 141], [136, 137], [136, 141], [135, 145], [132, 133], [132, 138], [129, 130], [157, 158], [128, 129], [128, 130], [127, 131], [124, 125], [123, 125], ... [ 88, 89], [ 89, 132], [ 90, 91], [104, 105], [ 92, 109], [ 93, 109], [147, 155], [ 93, 111], [134, 135], [ 94, 111], [ 95, 161], [ 31, 65], [ 28, 57], [ 96, 156], [ 96, 117], [ 97, 101], [ 28, 146], [ 28, 145], [ 97, 155], [ 97, 154]])
- face_node_connectivity(n_face, n_max_face_nodes)int6446 42 0 42 43 ... 156 159 161 160
- cf_role :
- face_node_connectivity
- long name :
- Maps every face to its corner nodes.
- start_index :
- 0
- _FillValue :
- -9223372036854775808
array([[ 46, 42, 0], [ 42, 43, 0], [ 0, 43, 44], [ 44, 45, 0], [ 46, 0, 45], [ 50, 51, 1], [ 47, 1, 51], [ 1, 47, 48], [ 48, 49, 1], [ 1, 49, 50], [ 2, 56, 52], [ 52, 53, 2], [ 54, 2, 53], [ 55, 2, 54], [ 55, 56, 2], [ 60, 61, 3], [ 3, 61, 57], [ 57, 58, 3], [ 3, 58, 59], [ 3, 59, 60], ... [108, 103, 102], [105, 104, 115], [107, 106, 111], [114, 110, 109], [112, 116, 113], [118, 117, 119], [121, 120, 122], [124, 123, 125], [127, 126, 131], [129, 128, 130], [132, 138, 133], [135, 134, 145], [137, 136, 141], [140, 139, 144], [143, 142, 146], [147, 155, 148], [150, 149, 151], [153, 152, 154], [158, 157, 156], [159, 161, 160]])
- face_areas(n_face)float64...
- cf_role :
- face_areas
- long_name :
- Area of each face.
[320 values with dtype=float64]
- edge_face_distances(n_edge)float640.3001 0.3001 ... 0.3007 0.3007
- cf_role :
- edge_face_distances
- long_name :
- Distances between the face centers that saddle each edge
array([0.30008442, 0.30008442, 0.3000844 , 0.30008439, 0.3000844 , 0.30008441, 0.3000844 , 0.30008439, 0.3000844 , 0.3000844 , 0.3000844 , 0.3000844 , 0.30008439, 0.30008442, 0.30008442, 0.30008442, 0.30008441, 0.30008441, 0.30008442, 0.30008442, 0.30008439, 0.3000844 , 0.3000844 , 0.3000844 , 0.30008439, 0.30008441, 0.30008442, 0.3000844 , 0.3000844 , 0.30008442, 0.30008442, 0.31811637, 0.30068562, 0.30068563, 0.30068561, 0.30068562, 0.28073551, 0.31451634, 0.30008442, 0.30068563, 0.3000844 , 0.31451634, 0.30068562, 0.2807355 , 0.30068563, 0.31451635, 0.31451633, 0.31811636, 0.30068563, 0.30068563, 0.31451633, 0.31451633, 0.31451634, 0.31451634, 0.31451633, 0.28073551, 0.31451634, 0.31451634, 0.31811637, 0.31451633, 0.31451634, 0.30068563, 0.31451634, 0.28073551, 0.31451633, 0.28073551, 0.31451635, 0.31451633, 0.27283885, 0.31451635, 0.31451633, 0.30068563, 0.31451635, 0.31451635, 0.31451635, 0.31811636, 0.2807355 , 0.31811637, 0.31451635, 0.30068561, 0.31451635, 0.31451635, 0.30008441, 0.30008439, 0.31451633, 0.30068562, 0.31451635, 0.30068563, 0.31451633, 0.31811637, 0.30068563, 0.30008441, 0.2807355 , 0.31811637, 0.30068562, 0.31451635, 0.30068563, 0.28073551, 0.31451635, 0.28073551, ... 0.30068562, 0.31451635, 0.31811636, 0.31811637, 0.30068562, 0.31811636, 0.31811636, 0.30068563, 0.28073551, 0.30068563, 0.30068563, 0.31811637, 0.31811636, 0.30068561, 0.30068563, 0.30068563, 0.30068563, 0.30068563, 0.31451635, 0.31811637, 0.30068563, 0.30068563, 0.30068563, 0.30068563, 0.30068563, 0.30068561, 0.31811636, 0.31811636, 0.30068563, 0.31811637, 0.30068562, 0.31451634, 0.30068562, 0.31811637, 0.30068562, 0.30068563, 0.31451634, 0.30068561, 0.2807355 , 0.30068562, 0.30068563, 0.31811637, 0.31451635, 0.27283885, 0.30068562, 0.31811637, 0.30068563, 0.30068561, 0.31811637, 0.30068563, 0.31451635, 0.31811636, 0.30068563, 0.30068561, 0.31811636, 0.30068562, 0.31811636, 0.30068562, 0.30068562, 0.31811637, 0.31811636, 0.30068562, 0.30068563, 0.30068562, 0.31451634, 0.31811637, 0.30068561, 0.30008441, 0.27283885, 0.31451635, 0.30068562, 0.30008439, 0.31811636, 0.30008442, 0.30068562, 0.2807355 , 0.31811637, 0.31811637, 0.27283885, 0.31811637, 0.31811637, 0.30068563, 0.31811636, 0.30008441, 0.30068562, 0.30068562, 0.3000844 , 0.30068561, 0.3000844 , 0.30068563, 0.30068562, 0.28073551, 0.28073551, 0.30068563, 0.30068563, 0.31811636, 0.31451634, 0.31451633, 0.30068561, 0.30068562])
- edge_node_distances(n_edge)float640.1857 0.1857 ... 0.1808 0.1808
- cf_role :
- edge_node_distances
- long_name :
- Distances between the nodes that make up each edge.
array([0.18569212, 0.18569212, 0.18569211, 0.18569212, 0.18569211, 0.18569212, 0.18569211, 0.18569212, 0.18569211, 0.18569211, 0.18569211, 0.18569211, 0.18569212, 0.18569212, 0.18569212, 0.18569212, 0.18569212, 0.18569212, 0.18569212, 0.18569212, 0.18569212, 0.18569211, 0.18569211, 0.18569211, 0.18569212, 0.18569212, 0.18569212, 0.18569211, 0.18569211, 0.18569212, 0.18569212, 0.13341756, 0.18078901, 0.18078901, 0.18078901, 0.18078902, 0.20352982, 0.15905298, 0.18569212, 0.18078901, 0.18569211, 0.15905297, 0.18078901, 0.20352981, 0.18078901, 0.15905297, 0.15905298, 0.13341755, 0.18078901, 0.18078901, 0.15905297, 0.15905297, 0.15905297, 0.15905298, 0.15905298, 0.20352982, 0.15905297, 0.15905298, 0.13341756, 0.15905298, 0.15905297, 0.18078901, 0.15905298, 0.20352982, 0.15905297, 0.20352981, 0.15905298, 0.15905298, 0.19697539, 0.15905298, 0.15905298, 0.18078901, 0.15905297, 0.15905297, 0.15905297, 0.13341756, 0.20352981, 0.13341756, 0.15905298, 0.18078901, 0.15905297, 0.15905297, 0.18569212, 0.18569212, 0.15905298, 0.18078902, 0.15905297, 0.18078901, 0.15905298, 0.13341756, 0.18078901, 0.18569212, 0.20352982, 0.13341756, 0.18078901, 0.15905298, 0.18078901, 0.20352982, 0.15905298, 0.20352981, ... 0.18078902, 0.15905297, 0.13341755, 0.13341756, 0.18078902, 0.13341756, 0.13341755, 0.18078901, 0.20352982, 0.18078901, 0.18078901, 0.13341756, 0.13341755, 0.18078901, 0.18078901, 0.18078901, 0.18078901, 0.18078901, 0.15905298, 0.13341756, 0.18078901, 0.18078901, 0.18078901, 0.18078901, 0.18078901, 0.18078901, 0.13341756, 0.13341755, 0.18078901, 0.13341756, 0.18078901, 0.15905298, 0.18078901, 0.13341756, 0.18078901, 0.18078901, 0.15905297, 0.18078901, 0.20352982, 0.18078902, 0.18078901, 0.13341756, 0.15905298, 0.1969754 , 0.18078901, 0.13341756, 0.18078901, 0.18078901, 0.13341756, 0.18078901, 0.15905297, 0.13341755, 0.18078901, 0.18078901, 0.13341756, 0.18078901, 0.13341755, 0.18078902, 0.18078902, 0.13341756, 0.13341755, 0.18078901, 0.18078901, 0.18078901, 0.15905298, 0.13341756, 0.18078901, 0.18569212, 0.1969754 , 0.15905297, 0.18078902, 0.18569212, 0.13341756, 0.18569212, 0.18078902, 0.20352982, 0.13341756, 0.13341756, 0.1969754 , 0.13341756, 0.13341756, 0.18078901, 0.13341756, 0.18569212, 0.18078902, 0.18078902, 0.18569211, 0.18078901, 0.18569211, 0.18078901, 0.18078901, 0.20352982, 0.20352982, 0.18078901, 0.18078901, 0.13341755, 0.15905298, 0.15905298, 0.18078901, 0.18078902])
- on_a_sphere :
- YES
- sphere_radius :
- 1.0
- is_periodic :
- NO
- history :
- MpasMeshConverter.x base_grids/x1.162.grid.nc base_meshes/x1.162.grid.nc
- mesh_spec :
- 1.0
- Conventions :
- MPAS
- source :
- MpasMeshConverter.x
- file_id :
- rku96q0z66
- source_grid_spec :
- MPAS
Relationship between MPAS and UGRID#
In the previous two sections, we outlined the set of grid variables used to describe the Primal and Dual meshes and how to open an MPAS grid in UXarray. Here, we provide an overview of how we represent both meshes in the UGRID conventions and how the original grid variables were modified to meet these conventions.
Grid Variables (Primal Mesh)#
node_lon
& node_lat
Longitude and Latitude coordinates of the Primal Mesh corner nodes
Derived from
lonVertex
&latVertex
Converted from Radians to Degrees
face_lon
& face_lat
Longitude and Latitude coordinates of the Primal Mesh center nodes
Derived from
lonCell
&latCell
Converted from Radians to Degrees
face_node_connectivity
Connectivity array describing which nodes make up a face
Derived from
verticesOnCell
Padding is replaced with
INT_FILL_VALUE
Missing Values (zeros) replaced with
INT_FILL_VALUE
Converted to zero-index
edge_node_connectivity
Connectivity array describing which nodes link to form each edge
Derived from
verticesOnEdge
Padding is replaced with
INT_FILL_VALUE
Missing Values (zeros) replaced with
INT_FILL_VALUE
Converted to zero-index
Grid Variables (Dual Mesh)#
node_lon
& node_lat
Longitude and Latitude coordinates of the Dual Mesh vertices
Derived from
lonCell
&latCell
, the centers of the Primal MeshConverted from Radians to Degrees
face_lon
& face_lat
Longitude and Latitude coordinates of the Dual Mesh centers
Derived from
lonVertex
&latVertex
, the vertices of the Primal MeshConverted from Radians to Degrees
face_node_connectivity
Connectivity array describing which nodes make up a face
Derived from
verticesOnCell
Padding is replaced with
INT_FILL_VALUE
Missing Values (zeros) replaced with
INT_FILL_VALUE
Converted to zero-index
edge_node_connectivity
Connectivity array describing which nodes link to form each edge
Derived from
verticesOnEdge
Padding is replaced with
INT_FILL_VALUE
Missing Values (zeros) replaced with
INT_FILL_VALUE
Converted to zero-index
Functionality#
Face Area Calculation#
Using our parsed attributes, we can determine whether our unstructured grid lies on the surface of a sphere by accessing the on_a_sphere
attribute.
primal_mesh.parsed_attrs["on_a_sphere"]
'YES'
Simiarly, we can access the sphere_radius
attribute.
primal_mesh.parsed_attrs["sphere_radius"]
np.float64(1.0)
Since our mesh lies on a sphere, we would expect our total surface area to follow the equation
\(4{\pi}{r^2}\)
We can use the value of the sphere_radius
attribute to calculate the expected total surface area.
import numpy as np
sphere_r = primal_mesh.parsed_attrs["sphere_radius"]
expected_area = 4 * np.pi * (sphere_r) ** 2
expected_area
np.float64(12.566370614359172)
UXarray
can be used to compute the face area of each face on our grid.
primal_mesh_face_areas = primal_mesh.face_areas
primal_mesh_face_areas
<xarray.DataArray 'face_areas' (n_face: 162)> Size: 1kB [162 values with dtype=float64] Dimensions without coordinates: n_face Attributes: cf_role: face_areas long_name: Area of each face.
- n_face: 162
- ...
[162 values with dtype=float64]
- cf_role :
- face_areas
- long_name :
- Area of each face.
The total face (surface) area can be computed by summing over each value.
primal_mesh_face_areas.sum()
<xarray.DataArray 'face_areas' ()> Size: 8B array(12.56637063)
- 12.57
array(12.56637063)
We can then compute the absolute error of our calculation.
abs(expected_area - primal_mesh_face_areas.sum())
<xarray.DataArray 'face_areas' ()> Size: 8B array(1.34777416e-08)
- 1.348e-08
array(1.34777416e-08)
The same can be done for the Dual Mesh.
dual_mesh_face_areas = dual_mesh.face_areas
dual_mesh_face_areas.sum()
<xarray.DataArray 'face_areas' ()> Size: 8B array(12.56637055)
- 12.57
array(12.56637055)
abs(expected_area - dual_mesh_face_areas.sum())
<xarray.DataArray 'face_areas' ()> Size: 8B array(6.47371614e-08)
- 6.474e-08
array(6.47371614e-08)
We can see that the total face area of both the Primal and Dual meshes is within 1e-6 of the expected area. For a more detailed explanation of the face area calculation and ways to obtain more precision, check out our other notebooks.
References#
[1] https://mpas-dev.github.io/
[2] https://mpas-dev.github.io/files/documents/MPAS-MeshSpec.pdf