Package pygeodesy :: Module datum :: Class Ellipsoid |
[frames] | no frames]

# Class Ellipsoid

      object --+
               |
    named._Named --+
                   |
    named._NamedBase --+
                       |
    named._NamedEnumItem --+
                           |
                          Ellipsoid

Ellipsoid with major and minor radius, semi-axis, (inverse) flattening and other pre-computed, frequently used attributes.

Instance Methods
__init__(self, a, b, f_, name=`'````'`) New Ellipsoid. |
__eq__(self, other) Compare this and an other ellipsoid. |
degrees2m(self, deg, lat=0) Convert angle to distance along the equator or along a parallel at an other latitude. |
distance2(self, lat0, lon0, lat1, lon1) Approximate the distance and (initial) bearing between two points based on the local, flat earth approximation aka Hubeny formula. |
ecef(self, Ecef=None) Return ECEF converter. |
e2s(self, s) Compute norm sqrt(1 - e2 * s**2). |
e2s2(self, s) Compute 1 - e2 * s**2. |
es_atanh(self, x) Compute es * atanh(es * x) where es is the signed 1st Eccentricity. |
es_tauf(self, taup) Compute Karney's equations (19), (20) and (21). |
es_taupf(self, tau) Compute Karney's equations (7), (8) and (9). |
_hubeny2_(self, phi2, phi1, lam21) (INTERNAL) like function flatLocal_/hubeny_ but returning the angular distance in `radians squared`. |
m2degrees(self, meter, lat=0) Convert distance to angle along equator or along a parallel at an other latitude. |
Rgeocentric(self, lat) Compute the geocentric earth radius at the given latitude. |
Rlat(self, lat) Approximate the earth radius at the given latitude. |
roc2(self, lat, scaled=False) Compute the meridional and prime-vertical, normal radii of curvature at the given latitude. |
roc2_(self, phi, scaled=False) Compute the meridional and prime-vertical, normal radii of curvature at the given latitude. |
rocBearing(self, lat, bearing) Compute the directional radius of curvature at the given latitude and compass direction. |
rocGauss(self, lat) Compute the Gaussian radius of curvature at the given latitude. |
rocMean(self, lat) Compute the mean radius of curvature at the given latitude. |
rocMeridional(self, lat) Compute the meridional radius of curvature at the given latitude. |
rocPrimeVertical(self, lat) Compute the prime-vertical, normal radius of curvature at the given latitude. |
toStr(self, prec=8) Return this ellipsoid as a text string. |
Inherited from `named._NamedEnumItem`: `__ne__`, `unregister` Inherited from `named._NamedBase`: `__repr__`, `__str__`, `others`, `toRepr` Inherited from `named._Named`: `_dot_`, `attrs`, `classof`, `copy`, `toStr2` Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

Class Variables
| _f_ = `0` Inverse flattening: a / (a - b) = 1 / f
| _a2_ = `None` (1 / a**2) # for ellipsiodalNvector.Cartesian.toNvector

Properties
| a Get the major (equatorial) radius, semi-axis (`meter`).
| a_b Get ratio a / b (`float`).
| a2 Get the major radius squared (`float`), a**2.
| a2_ Get the inverse of the major radius squared (`float`), 1 / a**2.
| a2_b Get the polar meridional radius of curvature (`meter`), a**2 / b, see `rocPolar`.
| area Get the ellipsoid's surface area (`meter**2`), 4 * PI * R2**2.
| A Get the UTM meridional radius (`meter`).
| AlphaKs Get the Krüger Alpha series coefficients (`KsOrder`-tuple).
| b Get the minor (polar) radius, semi-axis (`meter`).
| b_a Get ratio b / a (`float`), 1 - f.
| b2 Get the minor radius squared (`float`), b**2.
| b2_a Get the equatorial meridional radius of curvature (`meter`), b**2 / a.
| b2_a2 Get ratio b / a) squared (`float`), (1 - f)**2.
| BetaKs Get the Krüger Beta series coefficients (`KsOrder`-tuple).
| c Get the authalic earth radius (`meter`), see `R2`.
| e Get the (1st) Eccentricity (`float`), sqrt(1 - (b / a)**2)).
| e12 Get 1 - e**2 (`float`).
| e2 Get the (1st) Eccentricity squared (`float`), f * (2 - f) == 1 - (b / a)**2.
| e22 Get the 2nd Eccentricity squared (`float`), e2 / (1 - e2) == (a / b)**2 - 1.
| e4 Get the (1st) Eccentricity to 4th power (`float`), e**4 == e2**2.
| es Get the (1st) Eccentricity signed (`float`).
| es_c Get (1 - f) * exp(es_atanh(1)) (`float`), b_a * exp(es_atanh(1)).
| f Get the Flattening (`float`), (a - b) / a.
| f_ Get the Inverse flattening (`float`), 1 / f or a / (a - b).
| f2 Get the 2nd Flattening (`float`), (a - b) / b.
| geodesic Get this ellipsoid's wrapped Karney Geodesic, provided the geographiclib package is installed.
| isEllipsoidal Check whether this model is ellipsoidal (`bool`).
| isSpherical Check whether this model is spherical (`bool`).
| KsOrder Property to get and set the Krüger series' order (`int`).
| Mabcd Get the OSGR meridional coefficients (`4-Tuple`), `Airy130` only.
| n Get the 3rd Flattening (`float`), f / (2 - f) == (a - b) / (a + b).
| R1 Get the mean earth radius per IUGG (`meter`), (2 * a + b) / 3.
| R2 Get the authalic earth radius (`meter`), sqrt((a**2 + b**2 * atanh(e) / e) / 2).
| R3 Get the volumetric earth radius (`meter`), (a * a * b)**(1/3).
| Rr Get the rectifying earth radius (`meter`), ((a**(3/2) + b**(3/2)) / 2)**(2/3).
| Rs Get another mean earth radius (`meter`), sqrt(a * b).
| rocPolar Get the polar radius of curvature (`meter`), see `a2_b`.
| volume Get the ellipsoid's volume (`meter**3`), 4 / 3 * PI * a**2 * b.
Inherited from `named._NamedEnumItem`: `name` Inherited from `named._Named`: `classname`, `classnaming`, `named`, `named2` Inherited from `object`: `__class__`

Method Details

### __init__ (self, a, b, f_, name=`'````'`) (Constructor) |
New Ellipsoid. Arguments: `a` - Semi-major, equatorial axis (`meter`). `b` - Semi-minor, polar axis (`meter`). `f_` - Inverse flattening: a / (a - b) (`float` >>> 1.0). `name` - Optional, unique name (`str`). Raises: `NameError` - Ellipsoid with that `name` already exists. `ValueError` - Invalid `a`, `b` or `f_`. Overrides: object.__init__

### __eq__ (self, other) (Equality operator) |
Compare this and an other ellipsoid. Arguments: `other` - The other ellipsoid (Ellipsoid). Returns: `True` if equal, `False` otherwise.

### degrees2m (self, deg, lat=0) |
Convert angle to distance along the equator or along a parallel at an other latitude. Arguments: `deg` - Angle (`degrees`). `lat` - Parallel latitude (`degrees90`, `str`). Returns: Angle (`degrees`). Raises: `RangeError` - Latitude `lat` outside valid range and rangerrors set to `True`. `ValueError` - Invalid `deg` or `lat`.

### distance2 (self, lat0, lon0, lat1, lon1) |
Approximate the distance and (initial) bearing between two points based on the local, flat earth approximation aka Hubeny formula. Suitable only for distances of several hundred Km or Miles and only between points not near-polar. Arguments: `lat0` - From latitude (`degrees`). `lon0` - From longitude (`degrees`). `lat1` - To latitude (`degrees`). `lon1` - To longitude (`degrees`). Returns: A Distance2Tuple`(distance, initial)` with `distance` in same units as this ellipsoid's axes. Note: The meridional and prime_vertical radii of curvature are taken and scaled at the initial latitude. See Also: Function flatLocal/hubeny.

### ecef (self, Ecef=None) |
Return ECEF converter. Arguments: `Ecef` - ECEF class to use (EcefKarney, EcefVeness or EcefYou). Returns: An ECEF converter for this `ellipsoid` (EcefKarney, EcefVeness or EcefYou). Raises: `TypeError` - Invalid `Ecef`.

### e2s (self, s) |
Compute norm sqrt(1 - e2 * s**2). Arguments: `s` - S value (`scalar`). Returns: Norm (`float`). Raises: `ValueError` - Invalid `s`.

### e2s2 (self, s) |
Compute 1 - e2 * s**2. Arguments: `s` - S value (`scalar`). Returns: Result (`float`). Raises: `ValueError` - Invalid `s`.

### es_atanh (self, x) |
Compute es * atanh(es * x) where es is the signed 1st Eccentricity. Raises: `ValueError` - Invalid `x`. See Also: Function Math::eatanhe.

### es_tauf (self, taup) |
Compute Karney's equations (19), (20) and (21). See Also: Math::tauf.

### es_taupf (self, tau) |
Compute Karney's equations (7), (8) and (9). See Also: Math::taupf.

### m2degrees (self, meter, lat=0) |
Convert distance to angle along equator or along a parallel at an other latitude. Arguments: `meter` - Distance (`meter`). `lat` - Parallel latitude (`degrees90`, `str`). Returns: Angle (`degrees`). Raises: `RangeError` - Latitude `lat` outside valid range and rangerrors set to `True`. `ValueError` - Invalid `meter` or `lat`.

### Rgeocentric (self, lat) |
Compute the geocentric earth radius at the given latitude. Arguments: `lat` - Latitude (`degrees90`). Returns: Geocentric earth radius (`meter`). Raises: `ValueError` - Invalid `lat`. See Also: Geocentric Radius

### Rlat (self, lat) |
Approximate the earth radius at the given latitude. Arguments: `lat` - Latitude (`degrees90`). Returns: Approximate earth radius (`meter`). Raises: `ValueError` - Invalid `lat`.

### roc2 (self, lat, scaled=False) |
Compute the meridional and prime-vertical, normal radii of curvature at the given latitude. Arguments: `lat` - Latitude (`degrees90`). `scaled` - Scale prime_vertical by `cos(radians(lat))` (`bool`). Returns: An Curvature2Tuple`(meridional, prime_vertical)` with the radii of curvature. Raises: `ValueError` - Invalid `lat`. See Also: Method `.roc2_`, Local, flat earth approximation and Radii of Curvature.

### roc2_ (self, phi, scaled=False) |
Compute the meridional and prime-vertical, normal radii of curvature at the given latitude. Arguments: `phi` - Latitude (`radians`). `scaled` - Scale prime_vertical by `cos(phi)` (`bool`). Returns: An Curvature2Tuple`(meridional, prime_vertical)` with the radii of curvature. Raises: `ValueError` - Invalid `phi`. See Also: Method `.roc2`, Local, flat earth approximation and meridional and prime vertical Radii of Curvature.

### rocBearing (self, lat, bearing) |
Compute the directional radius of curvature at the given latitude and compass direction. Arguments: `lat` - Latitude (`degrees90`). `bearing` - Direction (compass `degrees360`). Returns: Directional radius of curvature (`meter`). Raises: `RangeError` - Latitude `lat` outside valid range and rangerrors set to `True`. `ValueError` - Invalid `lat` or `bearing`. See Also: Radii of Curvature

### rocGauss (self, lat) |
Compute the Gaussian radius of curvature at the given latitude. Arguments: `lat` - Latitude (`degrees90`). Returns: Gaussian radius of curvature (`meter`). Raises: `ValueError` - Invalid `lat`. See Also: Radii of Curvature

### rocMean (self, lat) |
Compute the mean radius of curvature at the given latitude. Arguments: `lat` - Latitude (`degrees90`). Returns: Mean radius of curvature (`meter`). Raises: `ValueError` - Invalid `lat`. See Also: Radii of Curvature

### rocMeridional (self, lat) |
Compute the meridional radius of curvature at the given latitude. Arguments: `lat` - Latitude (`degrees90`). Returns: Meridional radius of curvature (`meter`). Raises: `ValueError` - Invalid `lat`. See Also: Local, flat earth approximation and Radii of Curvature.

### rocPrimeVertical (self, lat) |
Compute the prime-vertical, normal radius of curvature at the given latitude. Arguments: `lat` - Latitude (`degrees90`). Returns: Prime-vertical radius of curvature (`meter`). Raises: `ValueError` - Invalid `lat`. See Also: Local, flat earth approximation and Radii of Curvature.

### toStr (self, prec=8) |
Return this ellipsoid as a text string. Arguments: `prec` - Optional number of decimals, unstripped (`int`). Returns: Ellipsoid attributes (`str`). Raises: `_AssertionError` - Always, see function notOverloaded. Overrides: named._Named.toStr

Property Details

### a Get the major (equatorial) radius, semi-axis (`meter`). Get method: a(self) - Get the major (equatorial) radius, semi-axis (`meter`). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### a_b Get ratio a / b (`float`). Get method: a_b(self) - Get ratio a / b (`float`). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### a2 Get the major radius squared (`float`), a**2. Get method: a2(self) - Get the major radius squared (`float`), a**2. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### a2_ Get the inverse of the major radius squared (`float`), 1 / a**2. Get method: a2_(self) - Get the inverse of the major radius squared (`float`), 1 / a**2. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### a2_b Get the polar meridional radius of curvature (`meter`), a**2 / b, see `rocPolar`. Get method: a2_b(self) - Get the polar meridional radius of curvature (`meter`), a**2 / b, see `rocPolar`. Set method: immutable(inst, value) - Throws an `AttributeError`, always. See Also: Radii of Curvature and Moritz, H. (1980), Geodetic Reference System 1980. Note: Symbol `c` is used by IUGG and IERS for the polar radius of curvature.

### area Get the ellipsoid's surface area (`meter**2`), 4 * PI * R2**2. Get method: area(self) - Get the ellipsoid's surface area (`meter**2`), 4 * PI * R2**2. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### A Get the UTM meridional radius (`meter`). Get method: A(self) - Get the UTM meridional radius (`meter`). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### AlphaKs Get the Krüger Alpha series coefficients (`KsOrder`-tuple). Get method: AlphaKs(self) - Get the Krüger Alpha series coefficients (`KsOrder`-tuple). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### b Get the minor (polar) radius, semi-axis (`meter`). Get method: b(self) - Get the minor (polar) radius, semi-axis (`meter`). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### b_a Get ratio b / a (`float`), 1 - f. Get method: b_a(self) - Get ratio b / a (`float`), 1 - f. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### b2 Get the minor radius squared (`float`), b**2. Get method: b2(self) - Get the minor radius squared (`float`), b**2. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### b2_a Get the equatorial meridional radius of curvature (`meter`), b**2 / a. Get method: b2_a(self) - Get the equatorial meridional radius of curvature (`meter`), b**2 / a. Set method: immutable(inst, value) - Throws an `AttributeError`, always. See Also: Radii of Curvature.

### b2_a2 Get ratio b / a) squared (`float`), (1 - f)**2. Get method: b2_a2(self) - Get ratio b / a) squared (`float`), (1 - f)**2. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### BetaKs Get the Krüger Beta series coefficients (`KsOrder`-tuple). Get method: BetaKs(self) - Get the Krüger Beta series coefficients (`KsOrder`-tuple). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### c Get the authalic earth radius (`meter`), see `R2`. Get method: c(self) - Get the authalic earth radius (`meter`), see `R2`. Set method: immutable(inst, value) - Throws an `AttributeError`, always. Notes: Symbol `c` in equation 60. Symbol `c` is used by IUGG and IERS for the polar radius of curvature, see `rocPolar`.

### e Get the (1st) Eccentricity (`float`), sqrt(1 - (b / a)**2)). Get method: e(self) - Get the (1st) Eccentricity (`float`), sqrt(1 - (b / a)**2)). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### e12 Get 1 - e**2 (`float`). Get method: e12(self) - Get 1 - e**2 (`float`). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### e2 Get the (1st) Eccentricity squared (`float`), f * (2 - f) == 1 - (b / a)**2. Get method: e2(self) - Get the (1st) Eccentricity squared (`float`), f * (2 - f) == 1 - (b / a)**2. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### e22 Get the 2nd Eccentricity squared (`float`), e2 / (1 - e2) == (a / b)**2 - 1. Get method: e22(self) - Get the 2nd Eccentricity squared (`float`), e2 / (1 - e2) == (a / b)**2 - 1. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### e4 Get the (1st) Eccentricity to 4th power (`float`), e**4 == e2**2. Get method: e4(self) - Get the (1st) Eccentricity to 4th power (`float`), e**4 == e2**2. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### es Get the (1st) Eccentricity signed (`float`). Get method: es(self) - Get the (1st) Eccentricity signed (`float`). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### es_c Get (1 - f) * exp(es_atanh(1)) (`float`), b_a * exp(es_atanh(1)). Get method: es_c(self) - Get (1 - f) * exp(es_atanh(1)) (`float`), b_a * exp(es_atanh(1)). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### f Get the Flattening (`float`), (a - b) / a. Get method: f(self) - Get the Flattening (`float`), (a - b) / a. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### f_ Get the Inverse flattening (`float`), 1 / f or a / (a - b). Get method: f_(self) - Get the Inverse flattening (`float`), 1 / f or a / (a - b). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### f2 Get the 2nd Flattening (`float`), (a - b) / b. Get method: f2(self) - Get the 2nd Flattening (`float`), (a - b) / b. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### geodesic Get this ellipsoid's wrapped Karney Geodesic, provided the geographiclib package is installed. Get method: geodesic(self) - Get this ellipsoid's wrapped Karney Geodesic, provided the geographiclib package is installed. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### isEllipsoidal Check whether this model is ellipsoidal (`bool`). Get method: isEllipsoidal(self) - Check whether this model is ellipsoidal (`bool`). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### isSpherical Check whether this model is spherical (`bool`). Get method: isSpherical(self) - Check whether this model is spherical (`bool`). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### KsOrder Property to get and set the Krüger series' order (`int`). Get method: KsOrder(self) - Get the Krüger series order (`int` 4, 6 or 8). Set method: KsOrder(self, order) - Set the Krüger series' order.

### Mabcd Get the OSGR meridional coefficients (`4-Tuple`), `Airy130` only. Get method: Mabcd(self) - Get the OSGR meridional coefficients (`4-Tuple`), `Airy130` only. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### n Get the 3rd Flattening (`float`), f / (2 - f) == (a - b) / (a + b). Get method: n(self) - Get the 3rd Flattening (`float`), f / (2 - f) == (a - b) / (a + b). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### R1 Get the mean earth radius per IUGG (`meter`), (2 * a + b) / 3. Get method: R1(self) - Get the mean earth radius per IUGG (`meter`), (2 * a + b) / 3. Set method: immutable(inst, value) - Throws an `AttributeError`, always. See Also: Earth radius.

### R2 Get the authalic earth radius (`meter`), sqrt((a**2 + b**2 * atanh(e) / e) / 2). Get method: R2(self) - Get the authalic earth radius (`meter`), sqrt((a**2 + b**2 * atanh(e) / e) / 2). Set method: immutable(inst, value) - Throws an `AttributeError`, always. See Also: Earth radius and c.

### R3 Get the volumetric earth radius (`meter`), (a * a * b)**(1/3). Get method: R3(self) - Get the volumetric earth radius (`meter`), (a * a * b)**(1/3). Set method: immutable(inst, value) - Throws an `AttributeError`, always. See Also: Earth radius.

### Rr Get the rectifying earth radius (`meter`), ((a**(3/2) + b**(3/2)) / 2)**(2/3). Get method: Rr(self) - Get the rectifying earth radius (`meter`), ((a**(3/2) + b**(3/2)) / 2)**(2/3). Set method: immutable(inst, value) - Throws an `AttributeError`, always. See Also: Earth radius.

### Rs Get another mean earth radius (`meter`), sqrt(a * b). Get method: Rs(self) - Get another mean earth radius (`meter`), sqrt(a * b). Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### rocPolar Get the polar radius of curvature (`meter`), see `a2_b`. Get method: rocPolar(self) - Get the polar radius of curvature (`meter`), see `a2_b`. Set method: immutable(inst, value) - Throws an `AttributeError`, always.

### volume Get the ellipsoid's volume (`meter**3`), 4 / 3 * PI * a**2 * b. Get method: volume(self) - Get the ellipsoid's volume (`meter**3`), 4 / 3 * PI * a**2 * b. Set method: immutable(inst, value) - Throws an `AttributeError`, always.