Package pygeodesy :: Module ellipsoids |
[frames] | no frames]

# Module ellipsoids

Ellipsoidal and spherical earth models.

Classes a_f2Tuple, Ellipsoid and Ellipsoid2, an Ellipsoids registry and 2 dozen functions to convert equatorial radius, polar radius, eccentricities, flattenings and inverse flattening.

See module datums for Datum and Transform information and other details.

Following is the list of predefined Ellipsoids, all instantiated lazily.

Version: 25.04.28

Classes
| a_f2Tuple 2-Tuple `(a, f)` specifying an ellipsoid by equatorial radius `a` in `meter` and scalar flattening `f`.
| Circle4Tuple 4-Tuple `(radius, height, lat, beta)` of the `radius` and `height`, both conventionally in `meter` of a parallel circle of latitude at (geodetic) latitude `lat` and the parametric (or reduced) auxiliary latitude `beta`, both in `degrees90`.
| Curvature2Tuple 2-Tuple `(meridional, prime_vertical)` of radii of curvature, both in `meter`, conventionally.
| Ellipsoid Ellipsoid with equatorial and polar radii, flattening, inverse flattening and other, often used, cached attributes, supporting oblate and prolate ellipsoidal and spherical earth models.
| Ellipsoid2 An Ellipsoid specified by equatorial radius and flattening.

Functions
a_b2e(a, b) Return `e`, the 1st eccentricity for a given equatorial and polar radius. |
a_b2e2(a, b) Return `e2`, the 1st eccentricity squared for a given equatorial and polar radius. |
a_b2e22(a, b) Return `e22`, the 2nd eccentricity squared for a given equatorial and polar radius. |
a_b2e32(a, b) Return `e32`, the 3rd eccentricity squared for a given equatorial and polar radius. |
a_b2f(a, b) Return `f`, the flattening for a given equatorial and polar radius. |
a_b2f_(a, b) Return `f_`, the inverse flattening for a given equatorial and polar radius. |
a_b2f2(a, b) Return `f2`, the 2nd flattening for a given equatorial and polar radius. |
a_b2n(a, b) Return `n`, the 3rd flattening for a given equatorial and polar radius. |
a_f2b(a, f) Return `b`, the polar radius for a given equatorial radius and flattening. |
a_f_2b(a, f_) Return `b`, the polar radius for a given equatorial radius and inverse flattening. |
b_f2a(b, f) Return `a`, the equatorial radius for a given polar radius and flattening. |
b_f_2a(b, f_) Return `a`, the equatorial radius for a given polar radius and inverse flattening. |
e2f(e) Return `f`, the flattening for a given 1st eccentricity. |
e22f(e2) Return `f`, the flattening for a given 1st eccentricity squared. |
f2e2(f) Return `e2`, the 1st eccentricity squared for a given flattening. |
f2e22(f) Return `e22`, the 2nd eccentricity squared for a given flattening. |
f2e32(f) Return `e32`, the 3rd eccentricity squared for a given flattening. |
f_2f(f_) Return `f`, the flattening for a given inverse flattening. |
f2f_(f) Return `f_`, the inverse flattening for a given flattening. |
f2f2(f) Return `f2`, the 2nd flattening for a given flattening. |
f2n(f) Return `n`, the 3rd flattening for a given flattening. |
n2e2(n) Return `e2`, the 1st eccentricity squared for a given 3rd flattening. |
n2f(n) Return `f`, the flattening for a given 3rd flattening. |
n2f_(n) Return `f_`, the inverse flattening for a given 3rd flattening. |

Variables
| __all__ = `_ALL_LAZY.ellipsoids`
| Ellipsoids = `Ellipsoids.Sphere: Ellipsoid(name='Sphere', a=637`...`` Some pre-defined Ellipsoids, all lazily instantiated.
| t = `[NN]+ Ellipsoids.toRepr(all= True, asorted= True).split(_NL_)`
| Ellipsoids.ATS1977 Ellipsoid(name='ATS1977', a=6378135, f=0.00335281, f_=298.257, b=6356750.30492159)
| Ellipsoids.Airy1830 Ellipsoid(name='Airy1830', a=6377563.396, f=0.00334085, f_=299.3249646, b=6356256.90923729)
| Ellipsoids.AiryModified Ellipsoid(name='AiryModified', a=6377340.189, f=0.00334085, f_=299.3249646, b=6356034.44793853)
| Ellipsoids.Australia1966 Ellipsoid(name='Australia1966', a=6378160, f=0.00335289, f_=298.25, b=6356774.71919531)
| Ellipsoids.Bessel1841 Ellipsoid(name='Bessel1841', a=6377397.155, f=0.00334277, f_=299.1528128, b=6356078.962818)
| Ellipsoids.BesselModified Ellipsoid(name='BesselModified', a=6377492.018, f=0.00334277, f_=299.1528128, b=6356173.5087127)
| Ellipsoids.CGCS2000 Ellipsoid(name='CGCS2000', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414036)
| Ellipsoids.CPM1799 Ellipsoid(name='CPM1799', a=6375738.7, f=0.00299052, f_=334.39, b=6356671.92557493)
| Ellipsoids.Clarke1866 Ellipsoid(name='Clarke1866', a=6378206.4, f=0.00339008, f_=294.97869821, b=6356583.8)
| Ellipsoids.Clarke1880 Ellipsoid(name='Clarke1880', a=6378249.145, f=0.00340756, f_=293.465, b=6356514.86954978)
| Ellipsoids.Clarke1880IGN Ellipsoid(name='Clarke1880IGN', a=6378249.2, f=0.00340755, f_=293.46602129, b=6356515)
| Ellipsoids.Clarke1880Mod Ellipsoid(name='Clarke1880Mod', a=6378249.145, f=0.00340755, f_=293.46630766, b=6356514.96639549)
| Ellipsoids.Delambre1810 Ellipsoid(name='Delambre1810', a=6376428, f=0.00321027, f_=311.5, b=6355957.92616372)
| Ellipsoids.Engelis1985 Ellipsoid(name='Engelis1985', a=6378136.05, f=0.00335282, f_=298.2566, b=6356751.32272154)
| Ellipsoids.Everest1969 Ellipsoid(name='Everest1969', a=6377295.664, f=0.00332445, f_=300.8017, b=6356094.667915)
| Ellipsoids.Everest1975 Ellipsoid(name='Everest1975', a=6377299.151, f=0.00332445, f_=300.8017255, b=6356098.14512013)
| Ellipsoids.Fisher1968 Ellipsoid(name='Fisher1968', a=6378150, f=0.00335233, f_=298.3, b=6356768.33724438)
| Ellipsoids.GEM10C Ellipsoid(name='GEM10C', a=6378137, f=0.00335281, f_=298.2572236, b=6356752.31424783)
| Ellipsoids.GPES Ellipsoid(name='GPES', a=6378135, f=0, f_=0, b=6378135)
| Ellipsoids.GRS67 Ellipsoid(name='GRS67', a=6378160, f=0.00335292, f_=298.24716743, b=6356774.51609071)
| Ellipsoids.GRS80 Ellipsoid(name='GRS80', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035)
| Ellipsoids.Helmert1906 Ellipsoid(name='Helmert1906', a=6378200, f=0.00335233, f_=298.3, b=6356818.16962789)
| Ellipsoids.IAU76 Ellipsoid(name='IAU76', a=6378140, f=0.00335281, f_=298.257, b=6356755.28815753)
| Ellipsoids.IERS1989 Ellipsoid(name='IERS1989', a=6378136, f=0.00335281, f_=298.257, b=6356751.30156878)
| Ellipsoids.IERS1992TOPEX Ellipsoid(name='IERS1992TOPEX', a=6378136.3, f=0.00335281, f_=298.25722356, b=6356751.61659215)
| Ellipsoids.IERS2003 Ellipsoid(name='IERS2003', a=6378136.6, f=0.00335282, f_=298.25642, b=6356751.85797165)
| Ellipsoids.Intl1924 Ellipsoid(name='Intl1924', a=6378388, f=0.003367, f_=297, b=6356911.94612795)
| Ellipsoids.Intl1967 Ellipsoid(name='Intl1967', a=6378157.5, f=0.0033529, f_=298.24961539, b=6356772.2)
| Ellipsoids.Krassovski1940 Ellipsoid(name='Krassovski1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305)
| Ellipsoids.Krassowsky1940 Ellipsoid(name='Krassowsky1940', a=6378245, f=0.00335233, f_=298.3, b=6356863.01877305)
| Ellipsoids.Maupertuis1738 Ellipsoid(name='Maupertuis1738', a=6397300, f=0.0052356, f_=191, b=6363806.28272251)
| Ellipsoids.Mercury1960 Ellipsoid(name='Mercury1960', a=6378166, f=0.00335233, f_=298.3, b=6356784.28360711)
| Ellipsoids.Mercury1968Mod Ellipsoid(name='Mercury1968Mod', a=6378150, f=0.00335233, f_=298.3, b=6356768.33724438)
| Ellipsoids.NWL1965 Ellipsoid(name='NWL1965', a=6378145, f=0.00335289, f_=298.25, b=6356759.76948868)
| Ellipsoids.OSU86F Ellipsoid(name='OSU86F', a=6378136.2, f=0.00335281, f_=298.2572236, b=6356751.51693008)
| Ellipsoids.OSU91A Ellipsoid(name='OSU91A', a=6378136.3, f=0.00335281, f_=298.2572236, b=6356751.6165948)
| Ellipsoids.PZ90 Ellipsoid(name='PZ90', a=6378136, f=0.0033528, f_=298.2578393, b=6356751.36174571)
| Ellipsoids.Plessis1817 Ellipsoid(name='Plessis1817', a=6376523, f=0.00324002, f_=308.64, b=6355862.93325557)
| Ellipsoids.SGS85 Ellipsoid(name='SGS85', a=6378136, f=0.00335281, f_=298.257, b=6356751.30156878)
| Ellipsoids.SoAmerican1969 Ellipsoid(name='SoAmerican1969', a=6378160, f=0.00335289, f_=298.25, b=6356774.71919531)
| Ellipsoids.Sphere Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=0, b=6371008.771415)
| Ellipsoids.SphereAuthalic Ellipsoid(name='SphereAuthalic', a=6371000, f=0, f_=0, b=6371000)
| Ellipsoids.SpherePopular Ellipsoid(name='SpherePopular', a=6378137, f=0, f_=0, b=6378137)
| Ellipsoids.Struve1860 Ellipsoid(name='Struve1860', a=6378298.3, f=0.00339294, f_=294.73, b=6356657.14266956)
| Ellipsoids.WGS60 Ellipsoid(name='WGS60', a=6378165, f=0.00335233, f_=298.3, b=6356783.28695944)
| Ellipsoids.WGS66 Ellipsoid(name='WGS66', a=6378145, f=0.00335289, f_=298.25, b=6356759.76948868)
| Ellipsoids.WGS72 Ellipsoid(name='WGS72', a=6378135, f=0.00335278, f_=298.26, b=6356750.52001609)
| Ellipsoids.WGS84 Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=298.25722356, b=6356752.31424518)
| Ellipsoids.WGS84_NGS Ellipsoid(name='WGS84_NGS', a=6378137, f=0.00335281, f_=298.2572221, b=6356752.31414035)

Function Details

### a_b2e (a, b) |
Return `e`, the 1st eccentricity for a given equatorial and polar radius. Arguments: `a` - Equatorial radius (`scalar` > 0). `b` - Polar radius (`scalar` > 0). Returns: The unsigned, (1st) eccentricity (`float` or `0`), sqrt(1 - (b / a)**2). Note: The result is always non-negative and `0` for near-spherical ellipsoids.

### a_b2e2 (a, b) |
Return `e2`, the 1st eccentricity squared for a given equatorial and polar radius. Arguments: `a` - Equatorial radius (`scalar` > 0). `b` - Polar radius (`scalar` > 0). Returns: The signed, (1st) eccentricity squared (`float` or `0`), 1 - (b / a)**2. Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids.

### a_b2e22 (a, b) |
Return `e22`, the 2nd eccentricity squared for a given equatorial and polar radius. Arguments: `a` - Equatorial radius (`scalar` > 0). `b` - Polar radius (`scalar` > 0). Returns: The signed, 2nd eccentricity squared (`float` or `0`), (a / b)**2 - 1. Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids.

### a_b2e32 (a, b) |
Return `e32`, the 3rd eccentricity squared for a given equatorial and polar radius. Arguments: `a` - Equatorial radius (`scalar` > 0). `b` - Polar radius (`scalar` > 0). Returns: The signed, 3rd eccentricity squared (`float` or `0`), (a**2 - b**2) / (a**2 + b**2). Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids.

### a_b2f (a, b) |
Return `f`, the flattening for a given equatorial and polar radius. Arguments: `a` - Equatorial radius (`scalar` > 0). `b` - Polar radius (`scalar` > 0). Returns: The flattening (`scalar` or `0`), (a - b) / a. Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids.

### a_b2f_ (a, b) |
Return `f_`, the inverse flattening for a given equatorial and polar radius. Arguments: `a` - Equatorial radius (`scalar` > 0). `b` - Polar radius (`scalar` > 0). Returns: The inverse flattening (`scalar` or `0`), a / (a - b). Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids.

### a_b2f2 (a, b) |
Return `f2`, the 2nd flattening for a given equatorial and polar radius. Arguments: `a` - Equatorial radius (`scalar` > 0). `b` - Polar radius (`scalar` > 0). Returns: The signed, 2nd flattening (`scalar` or `0`), (a - b) / b. Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids.

### a_b2n (a, b) |
Return `n`, the 3rd flattening for a given equatorial and polar radius. Arguments: `a` - Equatorial radius (`scalar` > 0). `b` - Polar radius (`scalar` > 0). Returns: The signed, 3rd flattening (`scalar` or `0`), (a - b) / (a + b). Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids.

### a_f2b (a, f) |
Return `b`, the polar radius for a given equatorial radius and flattening. Arguments: `a` - Equatorial radius (`scalar` > 0). `f` - Flattening (`scalar` < 1, negative for prolate). Returns: The polar radius (`float`), a * (1 - f).

### a_f_2b (a, f_) |
Return `b`, the polar radius for a given equatorial radius and inverse flattening. Arguments: `a` - Equatorial radius (`scalar` > 0). `f_` - Inverse flattening (`scalar` >>> 1). Returns: The polar radius (`float`), a * (f_ - 1) / f_.

### b_f2a (b, f) |
Return `a`, the equatorial radius for a given polar radius and flattening. Arguments: `b` - Polar radius (`scalar` > 0). `f` - Flattening (`scalar` < 1, negative for prolate). Returns: The equatorial radius (`float`), b / (1 - f).

### b_f_2a (b, f_) |
Return `a`, the equatorial radius for a given polar radius and inverse flattening. Arguments: `b` - Polar radius (`scalar` > 0). `f_` - Inverse flattening (`scalar` >>> 1). Returns: The equatorial radius (`float`), b * f_ / (f_ - 1).

### e2f (e) |
Return `f`, the flattening for a given 1st eccentricity. Arguments: `e` - The (1st) eccentricity (0 <= `float` < 1) Returns: The flattening (`scalar` or `0`). See Also: Function e22f.

### e22f (e2) |
Return `f`, the flattening for a given 1st eccentricity squared. Arguments: `e2` - The (1st) eccentricity squared, signed (NINF < `float` < 1) Returns: The flattening (`float` or `0`), e2 / (sqrt(1 - e2) + 1).

### f2e2 (f) |
Return `e2`, the 1st eccentricity squared for a given flattening. Arguments: `f` - Flattening (`scalar` < 1, negative for prolate). Returns: The signed, (1st) eccentricity squared (`float` < 1), f * (2 - f). Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids. See Also: Eccentricity conversions and Flattening.

### f2e22 (f) |
Return `e22`, the 2nd eccentricity squared for a given flattening. Arguments: `f` - Flattening (`scalar` < 1, negative for prolate). Returns: The signed, 2nd eccentricity squared (`float` > -1 or `INF`), f * (2 - f) / (1 - f)**2. Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids. See Also: Eccentricity conversions.

### f2e32 (f) |
Return `e32`, the 3rd eccentricity squared for a given flattening. Arguments: `f` - Flattening (`scalar` < 1, negative for prolate). Returns: The signed, 3rd eccentricity squared (`float`), f * (2 - f) / (1 + (1 - f)**2). Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids. See Also: Eccentricity conversions.

### f_2f (f_) |
Return `f`, the flattening for a given inverse flattening. Arguments: `f_` - Inverse flattening (`scalar` >>> 1). Returns: The flattening (`scalar` or `0`), 1 / f_. Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids.

### f2f_ (f) |
Return `f_`, the inverse flattening for a given flattening. Arguments: `f` - Flattening (`scalar` < 1, negative for prolate). Returns: The inverse flattening (`scalar` or `0`), 1 / f. Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids.

### f2f2 (f) |
Return `f2`, the 2nd flattening for a given flattening. Arguments: `f` - Flattening (`scalar` < 1, negative for prolate). Returns: The signed, 2nd flattening (`scalar` or `INF`), f / (1 - f). Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids. See Also: Eccentricity conversions and Flattening.

### f2n (f) |
Return `n`, the 3rd flattening for a given flattening. Arguments: `f` - Flattening (`scalar` < 1, negative for prolate). Returns: The signed, 3rd flattening (-1 <= `float` < 1), f / (2 - f). Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids. See Also: Eccentricity conversions and Flattening.

### n2e2 (n) |
Return `e2`, the 1st eccentricity squared for a given 3rd flattening. Arguments: `n` - The 3rd flattening (-1 <= `scalar` < 1). Returns: The signed, (1st) eccentricity squared (`float` or NINF), 4 * n / (1 + n)**2. Note: The result is positive for oblate, negative for prolate or `0` for near-spherical ellipsoids. See Also: Flattening.

### n2f (n) |
Return `f`, the flattening for a given 3rd flattening. Arguments: `n` - The 3rd flattening (-1 <= `scalar` < 1). Returns: The flattening (`scalar` or NINF), 2 * n / (1 + n). See Also: Eccentricity conversions and Flattening.

### n2f_ (n) |
Return `f_`, the inverse flattening for a given 3rd flattening. Arguments: `n` - The 3rd flattening (-1 <= `scalar` < 1). Returns: The inverse flattening (`scalar` or `0`), 1 / f. See Also: n2f and f2f_.

Variables Details

  ### Ellipsoids Some pre-defined Ellipsoids, all lazily instantiated. Value:
      Ellipsoids.Sphere: Ellipsoid(name='Sphere', a=6371008.771415, f=0, f_=
      0, b=6371008.771415),
      Ellipsoids.GRS80: Ellipsoid(name='GRS80', a=6378137, f=0.00335281, f_=
      298.2572221, b=6356752.31414035),
      Ellipsoids.WGS84: Ellipsoid(name='WGS84', a=6378137, f=0.00335281, f_=
      298.25722356, b=6356752.31424518),
      Ellipsoids.Airy1830: Ellipsoid(name='Airy1830', a=6377563.396, f=0.003
      34085, f_=299.3249646, b=6356256.90923729)