meshrefinement module

This was originally GMesh.py from Niki Zahdah. [Zad20b]

class gridtools.meshrefinement.MeshRefinement(shape=None, lon=None, lat=None, area=None, lon0=- 180.0, from_cell_center=False, rfl=0)

Bases: object

Describes 2D meshes for ESMs.

Meshes have shape=(nj,ni) cells with (nj+1,ni+1) vertices with coordinates (lon,lat).

When constructing, either provide 1d or 2d coordinates (lon,lat), or assume a uniform spherical grid with ‘shape’ cells covering the whole sphere with longitudes starting at lon0.

Attributes:

shape - (nj,ni) ni - number of cells in i-direction (last) nj - number of cells in j-direction (first) lon - longitude of mesh (cell corners), shape (nj+1,ni=1) lat - latitude of mesh (cell corners), shape (nj+1,ni=1) area - area of cells, shape (nj,ni)

coarsenby2(coarser_mesh)

Set the height for lower level Mesh by coarsening

dump()

Dump Mesh to tty.

find_nn_uniform_source(lon, lat)

Returns the i,j arrays for the indexes of the nearest neighbor point to grid (lon,lat)

least_square_plane_estimate(xs, ys, zs)

This function returns the estimates for h2 and h and also mean,min,max of the date in each grid cell.

mdist(x2)

Returns positive distance modulo 360.

pcolormesh(axis, data, **kwargs)
plot(axis, subsample=1, linecolor='k', **kwargs)
refine_loop(src_lon, src_lat, max_stages=32, max_mb=500, verbose=True, singularity_radius=0.25)

Repeatedly refines the mesh until all cells in the source grid are intercepted by mesh nodes. Returns a list of the refined meshes starting with parent mesh.

refineby2(work_in_3d=True)

Returns new Mesh instance with twice the resolution

rotate(y_rot=0, z_rot=0)

Sequentially apply a rotation about the Y-axis and then the Z-axis.

sample_source_data_on_target_mesh(xs, ys, zs)

Returns the array on target mesh with values equal to the nearest-neighbor source point data

source_hits(xs, ys, singularity_radius=0.25)

Returns an mask array of 1’s if a cell with center (xs,ys) is intercepted by a node on the mesh, 0 if no node falls in a cell

gridtools.meshrefinement.fourPointAve(x)
gridtools.meshrefinement.is_mesh_uniform(lon, lat)

Returns True if the input grid (lon,lat) is uniform and False otherwise