l3py.utilities

Auxiliary functions.

utilities.colatitude(a=6378137.0, f=0.003352810681182319)

Co-latitude of a point on the ellipsoid.

Parameters:
  • latitude (float, array_like, shape(m, )) – latitude of evaluation point(s) in radians
  • a (float) – semi-major axis of ellipsoid (Default: GRS80)
  • f (float) – flattening of ellipsoid (Default: GRS80)
Returns:

psi – colatitude of evaluation point(s) in [rad]

Return type:

float, array_like, shape(m,) (depending on type latitude)

utilities.geocentric_radius(a=6378137.0, f=0.003352810681182319)

Geocentric radius of a point on the ellipsoid.

Parameters:
  • latitude (float, array_like, shape(m, )) – latitude of evaluation point(s) in radians
  • a (float) – semi-major axis of ellipsoid (Default: GRS80)
  • f (float) – flattening of ellipsoid (Default: GRS80)
Returns:

r – geocentric radius of evaluation point(s) in [m]

Return type:

float, array_like, shape(m,) (depending on type latitude)

utilities.legendre_functions(colat)

Associated fully normalized Legendre functions (1st kind).

Parameters:
  • nmax (int) – maximum spherical harmonic degree to compute
  • colat (float, array_like(m,)) – co-latitude of evaluation points in radians
Returns:

Pnm – Array containing the fully normalized Legendre functions. Pnm[:, n, m] returns the Legendre function of degree n and order m for all points, as does Pnm[:, m-1, n] (for m > 0).

Return type:

array_like(m, nmax + 1, nmax + 1)

utilities.normal_gravity(colat, a=6378137.0, f=0.003352810681182319, convergence_threshold=1e-09)

Normal gravity on the ellipsoid (GRS80).

Parameters:
  • r (float, array_like, shape(m, )) – radius of evaluation point(s) in meters
  • colat (float, array_like, shape (m,)) – co-latitude of evaluation points in radians
  • a (float) – semi-major axis of ellipsoid (Default: GRS80)
  • f (float) – flattening of ellipsoid (Default: GRS80)
  • convergence_threshold (float) – maximum absolute difference between latitude iterations in radians
Returns:

g – normal gravity at evaluation point(s) in [m/s**2]

Return type:

float, array_like, shape(m,) (depending on types of r and colat)