spatial
Utilities for operating on spatial data
General Methods
- spatial_interpolators.spatial.data_type(x: ndarray, y: ndarray, t: ndarray) str [source]
Determines input data type based on variable dimensions
- Parameters
- x: np.ndarray
x-dimension coordinates
- y: np.ndarray
y-dimension coordinates
- t: np.ndarray
time-dimension coordinates
- Returns
- string denoting input data type
'time series'
'drift'
'grid'
- spatial_interpolators.spatial.convert_ellipsoid(phi1: ndarray, h1: ndarray, a1: float, f1: float, a2: float, f2: float, eps: float = 1e-12, itmax: int = 10)[source]
Convert latitudes and heights to a different ellipsoid using Newton-Raphson
- Parameters
- phi1: np.ndarray
latitude of input ellipsoid in degrees
- h1: np.ndarray
height above input ellipsoid in meters
- a1: float
semi-major axis of input ellipsoid
- f1: float
flattening of input ellipsoid
- a2: float
semi-major axis of output ellipsoid
- f2: float
flattening of output ellipsoid
- eps: float, default 1e-12
tolerance to prevent division by small numbers and to determine convergence
- itmax: int, default 10
maximum number of iterations to use in Newton-Raphson
- Returns
- phi2: np.ndarray
latitude of output ellipsoid in degrees
- h2: np.ndarray
height above output ellipsoid in meters
References
- 1
Meeus, Astronomical Algorithms, 2nd edition, 477 pp., (1998).
- spatial_interpolators.spatial.compute_delta_h(a1: float, f1: float, a2: float, f2: float, lat: ndarray)[source]
- Compute difference in elevation for two ellipsoids at a given
latitude using a simplified empirical equation
- Parameters
- a1: float
semi-major axis of input ellipsoid
- f1: float
flattening of input ellipsoid
- a2: float
semi-major axis of output ellipsoid
- f2: float
flattening of output ellipsoid
- lat: np.ndarray
latitudes (degrees north)
- Returns
- delta_h: np.ndarray
difference in elevation for two ellipsoids
References
- 1
J Meeus, Astronomical Algorithms, pp. 77–82, (1991).
- spatial_interpolators.spatial.wrap_longitudes(lon: float | numpy.ndarray)[source]
Wraps longitudes to range from -180 to +180
- Parameters
- lon: float or np.ndarray
longitude (degrees east)
- spatial_interpolators.spatial.to_cartesian(lon: ndarray, lat: ndarray, h: float | numpy.ndarray = 0.0, a_axis: float = 6378137.0, flat: float = 0.0033528106647474805)[source]
Converts geodetic coordinates to Cartesian coordinates
- Parameters
- lon: np.ndarray
longitude (degrees east)
- lat: np.ndarray
latitude (degrees north)
- h: float or np.ndarray, default 0.0
height above ellipsoid (or sphere)
- a_axis: float, default 6378137.0
semimajor axis of the ellipsoid
for spherical coordinates set to radius of the Earth
- flat: float, default 1.0/298.257223563
ellipsoidal flattening
for spherical coordinates set to 0
- spatial_interpolators.spatial.to_sphere(x: ndarray, y: ndarray, z: ndarray)[source]
Convert from cartesian coordinates to spherical coordinates
- Parameters
- x, np.ndarray
cartesian x-coordinates
- y, np.ndarray
cartesian y-coordinates
- z, np.ndarray
cartesian z-coordinates
- spatial_interpolators.spatial.to_geodetic(x: ndarray, y: ndarray, z: ndarray, a_axis: float = 6378137.0, flat: float = 0.0033528106647474805, method: str = 'bowring', eps: float = 2.220446049250313e-16, iterations: int = 10)[source]
Convert from cartesian coordinates to geodetic coordinates using either iterative or closed-form methods
- Parameters
- x, float
cartesian x-coordinates
- y, float
cartesian y-coordinates
- z, float
cartesian z-coordinates
- a_axis: float, default 6378137.0
semimajor axis of the ellipsoid
- flat: float, default 1.0/298.257223563
ellipsoidal flattening
- method: str, default ‘bowring’
method to use for conversion
'moritz'
: iterative solution'bowring'
: iterative solution'zhu'
: closed-form solution
- eps: float, default np.finfo(np.float64).eps
tolerance for iterative methods
- iterations: int, default 10
maximum number of iterations
- spatial_interpolators.spatial.scale_areas(lat: ndarray, flat: float = 0.0033528106647474805, ref: float = 70.0)[source]
Calculates area scaling factors for a polar stereographic projection including special case of at the exact pole [1] [2]
- Parameters
- lat: np.ndarray
latitude (degrees north)
- flat: float, default 1.0/298.257223563
ellipsoidal flattening
- ref: float, default 70.0
reference latitude (true scale latitude)
- Returns
- scale: np.ndarray
area scaling factors at input latitudes
References