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: 24.10.15

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.
  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(e2 - 1) + 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).

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)