geovista.common
#
Provision common geovista infra-structure and utilities.
Notes#
Added in version 0.1.0.
Module Contents#
Classes#
Convenience behaviour mixin for a string enumeration. |
|
Enumeration of common mesh geometry preferences. |
Functions#
Determine whether we are executing within an |
|
|
Convert a |
|
Calculate the mean distance from the origin to the points of the mesh. |
|
Convert cartesian |
|
Find all submodule names relative to the root package. |
|
Replace any masked array values with NaNs. |
|
Determine whether the mesh is a point-cloud. |
|
Purge standard VTK helper cell and point data index arrays. |
|
Configure the jupyter plotting backend for pyvista. |
|
Convert geographic longitudes and latitudes to cartesian |
|
Convert cartesian xyz point on sphere to geographic longitude and latitude. |
|
Convert cartesian xyz points on sphere to geographic longitudes and latitudes. |
|
Determine whether the provided mesh is triangulated. |
Disable |
|
Enable |
|
|
Transform longitudes to be in the half-open interval |
Attributes#
Default base for wrapped longitude half-open interval, in degrees. |
|
Default central meridian. |
|
Default Natural Earth coastline resolution. |
|
Name of the geovista cell indices array. |
|
The field array name of the CF serialized pyproj CRS. |
|
The field array name of the mesh containing field, point and/or cell data. |
|
The field array name of the mesh radius. |
|
The field array name of the mesh resolution e.g., coastlines. |
|
The field array name of the mesh proportional multiplier for z-axis levels. |
|
Name of the geovista point indices array. |
|
Name of the geovista remesh point indices/marker array. |
|
Default jupyter plotting backend for pyvista. |
|
LRU cache size, which is auto-disabled for testing. |
|
Default period for wrapped longitude half-open interval, in degrees. |
|
Default radius of a spherical mesh. |
|
Marker for remesh filter cell join point. |
|
Marker for remesh filter western cell boundary point. |
|
Name of the VTK cell indices array. |
|
Name of the VTK point indices array. |
|
Absolute tolerance for longitudes close to 'wrap meridian'. |
|
Relative tolerance for longitudes close to 'wrap meridian'. |
|
Proportional multiplier for z-axis levels/offsets. |
|
The zlevel scaling to be applied when transforming to a projection. |
- class geovista.common.MixinStrEnum[source]#
Convenience behaviour mixin for a string enumeration.
Notes
Added in version 0.3.0.
- classmethod valid(item)[source]#
Determine whether the provided item is a valid enumeration member.
- Parameters:
- item
str
orPreference
The candidate preference enumeration member.
- item
- Returns:
bool
Whether the preference enumeration member is valid.
Notes
Added in version 0.3.0.
- class geovista.common.Preference(*args, **kwds)[source]#
Bases:
MixinStrEnum
,enum.Enum
Enumeration of common mesh geometry preferences.
Notes
Added in version 0.3.0.
- CELL = 'cell'#
- POINT = 'point'#
- geovista.common.active_kernel()[source]#
Determine whether we are executing within an
IPython
kernel.- Returns:
bool
Whether there is an active
IPython
kernel.
Notes
Added in version 0.1.0.
- geovista.common.cast_UnstructuredGrid_to_PolyData(mesh, clean=False)[source]#
Convert a
UnstructuredGrid
to aPolyData
.- Parameters:
- mesh
UnstructuredGrid
The unstructured grid to be converted.
- clean
bool
, default=False Specify whether to merge duplicate points, remove unused points, and/or remove degenerate cells in the resultant mesh. See
pyvista.PolyDataFilters.clean()
.
- mesh
- Returns:
PolyData
The resultant mesh.
Notes
Added in version 0.1.0.
- geovista.common.distance(mesh, origin=None, mean=True)[source]#
Calculate the mean distance from the origin to the points of the mesh.
Note that, given a spherical mesh the distance calculated is the radius.
- Parameters:
- mesh
PolyData
The surface that requires its distance to be calculated, relative to the origin.
- origin
ArrayLike
, default=(0, 0, 0) The (x, y, z) cartesian center of the spheroid mesh.
- mean
bool
, default=True Calculate the mean distance to the points of the mesh. Otherwise, calculate the distance to each point from the origin.
- mesh
- Returns:
Notes
Added in version 0.1.0.
- geovista.common.from_cartesian(mesh, stacked=True, closed_interval=False, rtol=None, atol=None)[source]#
Convert cartesian
xyz
spherical mesh to geographic longitude and latitude.- Parameters:
- mesh
PolyData
The mesh containing the cartesian (x, y, z) points to be converted to longitude and latitude coordinates.
- stacked
bool
, default=True Specify whether the resultant xy0 coordinates have shape (N, 3). Otherwise, they will have shape (3, N).
- closed_interval
bool
, default=False Longitude values will be in the half-closed interval [-180, 180). However, if the mesh has a seam at the 180th meridian and closed_interval is
True
, then longitudes will be in the closed interval [-180, 180].- rtol
float
, optional The relative tolerance for longitudes close to the āwrap meridianā - see
geovista.common.wrap()
for more.- atol
float
, optional The absolute tolerance for longitudes close to the āwrap meridianā - see
geovista.common.wrap()
for more.
- mesh
- Returns:
ndarray
The longitude and latitude coordinates, in degrees.
Notes
Added in version 0.1.0.
- geovista.common.get_modules(root, base=True)[source]#
Find all submodule names relative to the root package.
Recursively searches down from the root to find all child (leaf) modules.
The names of the modules will be relative to the root.
- Parameters:
- Returns:
Notes
Added in version 0.5.0.
- geovista.common.nan_mask(data)[source]#
Replace any masked array values with NaNs.
As a consequence of filling the mask with NaNs, non-float arrays will be cast to float.
- Parameters:
- data
ArrayLike
The masked array to be filled with NaNs.
- data
- Returns:
ndarray
The data with masked values replaced with NaNs.
Notes
Added in version 0.1.0.
- geovista.common.point_cloud(mesh)[source]#
Determine whether the mesh is a point-cloud.
Notes
Added in version 0.2.0.
- geovista.common.sanitize_data(*meshes)[source]#
Purge standard VTK helper cell and point data index arrays.
Notes
Added in version 0.1.0.
- geovista.common.set_jupyter_backend(backend=None)[source]#
Configure the jupyter plotting backend for pyvista.
- Parameters:
- backend
str
, optional The pyvista plotting backend. For further details see
pyvista.set_jupyter_backend()
. IfNone
, defaults toJUPYTER_BACKEND
.
- backend
- Returns:
bool
Whether the jupyter backend was successfully configured.
Notes
Added in version 0.1.0.
- geovista.common.to_cartesian(lons, lats, radius=None, zlevel=None, zscale=None, stacked=True)[source]#
Convert geographic longitudes and latitudes to cartesian
xyz
points.- Parameters:
- lons
ArrayLike
The longitude values (degrees) to be converted.
- lats
ArrayLike
The latitude values (degrees) to be converted.
- radius
float
, optional The radius of the sphere. Defaults to
RADIUS
.- zlevel
float
orArrayLike
, default=0.0 The z-axis level. Used in combination with the zscale to offset the radius by a proportional amount i.e.,
radius * zlevel * zscale
. If zlevel is not a scalar, then its shape must match or broadcast with the shape of lons and lats.- zscale
float
, optional The proportional multiplier for z-axis zlevel. Defaults to
ZLEVEL_SCALE
.- stacked
bool
, default=True Specify whether the resultant xyz points have shape (N, 3). Otherwise, they will have shape (3, N).
- lons
- Returns:
ndarray
The
xyz
spherical cartesian points.
Notes
Added in version 0.1.0.
- geovista.common.to_lonlat(xyz, radians=False, radius=None, rtol=None, atol=None)[source]#
Convert cartesian xyz point on sphere to geographic longitude and latitude.
- Parameters:
- xyz
ArrayLike
The cartesian (x, y, z) point to be converted.
- radians
bool
, default=False Convert resultant longitude and latitude values to radians. Default units are degrees.
- radius
float
, optional The radius of the sphere. Defaults to
RADIUS
.- rtol
float
, optional The relative tolerance for longitudes close to the āwrap meridianā - see
geovista.common.wrap()
for more.- atol
float
, optional The absolute tolerance for longitudes close to the āwrap meridianā - see
geovista.common.wrap()
for more.
- xyz
- Returns:
ndarray
The longitude and latitude values.
Notes
Added in version 0.1.0.
- geovista.common.to_lonlats(xyz, radians=False, radius=None, stacked=True, rtol=None, atol=None)[source]#
Convert cartesian xyz points on sphere to geographic longitudes and latitudes.
- Parameters:
- xyz
ArrayLike
The cartesian (x, y, z) points to be converted.
- radians
bool
, default=False Convert resultant longitude and latitude values to radians. Default units are degrees.
- radius
float
orArrayLike
, optional The radius of the sphere. If radius is not a scalar, then its shape must match the number of xyz points i.e., radii with shape
(N,)
for xyz points with shape(N, 3)
. Defaults toRADIUS
.- stacked
bool
, default=True Default the resultant shape to be
(N, 2)
, otherwise(2, N)
.- rtol
float
, optional The relative tolerance for longitudes close to the āwrap meridianā - see
geovista.common.wrap()
for more.- atol
float
, optional The absolute tolerance for longitudes close to the āwrap meridianā - see
geovista.common.wrap()
for more.
- xyz
- Returns:
ndarray
The longitude and latitude values.
Notes
Added in version 0.1.0.
- geovista.common.triangulated(surface)[source]#
Determine whether the provided mesh is triangulated.
- Parameters:
- surface
PolyData
The surface mesh to check whether the geometry of all its cells are triangles.
- surface
- Returns:
bool
Whether the surface is fully triangulated.
Notes
Added in version 0.1.0.
- geovista.common.vtk_warnings_off()[source]#
Disable
vtk
warning messages.Notes
Added in version 0.1.0.
- geovista.common.vtk_warnings_on()[source]#
Enable
vtk
warning messages.Notes
Added in version 0.1.0.
- geovista.common.wrap(lons, base=None, period=None, rtol=None, atol=None, dtype=None)[source]#
Transform longitudes to be in the half-open interval
[base, base + period)
.- Parameters:
- lons
ArrayLike
One or more longitude values to be wrapped in the interval.
- base
float
, optional The start limit of the half-open interval. Defaults to
BASE
.- period
float
, optional The end limit of the half-open interval expressed as a length from the base, in the same units. Defaults to
PERIOD
.- rtol
float
, optional The relative tolerance for longitudes close to the āwrap meridianā - that is
base + period
- to be considered equal to the wrap meridian. Necessary to prevent cell smearing. See rtol innumpy.isclose()
. Defaults toWRAP_RTOL
.- atol
float
, optional The absolute tolerance for longitudes close to the āwrap meridianā - that is
base + period
- to be considered equal to the wrap meridian. Necessary to prevent cell smearing. See atol innumpy.isclose()
. Defaults toWRAP_ATOL
.- dtypedata-type, default=float64
The resultant longitude dtype.
- lons
- Returns:
ndarray
The transformed longitude values.
Notes
Added in version 0.1.0.
Examples
>>> from geovista.common import wrap >>> import numpy as np >>> wrap([179.0, 179.999, 180.0, 181.0]) array([ 179., -180., -180., -179.])
>>> wrap([179, 180, 181], period=90) array([ -91., -180., -179.])
>>> wrap([179, 180, 181], base=0, period=90) array([89., 0., 1.])
- geovista.common.GV_FIELD_NAME: str = 'gvName'#
The field array name of the mesh containing field, point and/or cell data.
- geovista.common.GV_FIELD_RESOLUTION: str = 'gvResolution'#
The field array name of the mesh resolution e.g., coastlines.
- geovista.common.GV_FIELD_ZSCALE: str = 'gvZScale'#
The field array name of the mesh proportional multiplier for z-axis levels.
- geovista.common.GV_REMESH_POINT_IDS: str = 'gvRemeshPointIds'#
Name of the geovista remesh point indices/marker array.
- geovista.common.PERIOD: float = 360.0#
Default period for wrapped longitude half-open interval, in degrees.
- geovista.common.WRAP_ATOL: float = 1e-08#
Absolute tolerance for longitudes close to āwrap meridianā.