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

Class Ellipsoid

 object --+        
          |        
 bases.Base --+    
              |    
 object --+   |    
          |   |    
bases.Named --+    
              |    
         _Based --+
                  |
                 Ellipsoid

Ellipsoid with semi-major, semi-minor axis, inverse flattening and a number of other pre-computed, frequently used values.

Instance Methods
 
__init__(self, a, b, f_, name='')
New ellipsoid.
 
__eq__(self, other)
Compare this and an other ellipsoid.
 
distance2(self, lat0, lon0, lat1, lon1)
Approximate the distance and bearing between two points based on the radii of curvature.
 
e2s(self, s)
Compute norm sqrt(1 - e2 * s**2).
 
e2s2(self, s)
Compute 1 - e2 * s**2.
 
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)
Compute the meridional and prime-vertical 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 radius of curvature at the given latitude.
 
toStr(self, prec=9)
Return this ellipsoid as a string.

Inherited from _Based: __ne__

Inherited from bases.Base: __repr__, __str__, classname, classof, others, toStr2

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __setattr__, __sizeof__, __subclasshook__

Class Variables
  a = 0
Semi-major, equatorial axis (meter).
  b = 0
Semi-minor, polar axis (meter): a * (f - 1) / f.
  a2_ = 0
(1 / a**2)
  a_b = 1
(a / b) = 1 / (1 - f)
  e = 0
1st Eccentricity: sqrt(1 - (b / a)**2))
  e2 = 0
1st Eccentricity squared: f * (2 - f) = 1 - (b / a)**2
  e4 = 0
e2**2
  e12 = 1
1 - e2
  e22 = 0
2nd Eccentricity squared: e2 / (1 - e2) = ab**2 - 1
  f = 0
Flattening: (a - b) / a
  f_ = 0
Inverse flattening: a / (a - b) = 1 / f
  n = 0
3rd Flattening: f / (2 - f) = (a - b) / (a + b)
Properties
  A
Get the UTM meridional radius (meter).
  a2_b
Get the polar meridional radius of curvature: a**2 / b (meter).
  Alpha6
Get the 6th-order Krüger Alpha series coefficients (7-tuple, 1-origin).
  b2_a
Get the equatorial meridional radius of curvature: b**2 / a (meter).
  Beta6
Get the 6th-order Krüger Beta series coefficients (7-tuple, 1-origin).
  isEllipsoidal
Check whether this model is ellipsoidal (bool).
  isSpherical
Check whether this model is spherical (bool).
  Mabcd
Get the OSGR meridional coefficients, Airy130 only (4-tuple).
  R1
Get the mean earth radius per IUGG: (2 * a + b) / 3 (meter).
  R2
Get the authalic earth radius: sqrt((a**2 + b**2 * atanh(e) / e) / 2) (meter).
  R3
Get the volumetric earth radius: (a * a * b)**1/3 (meter).
  Rr
Get the rectifying earth radius: ((a**3/2 + b**3/2) / 2)**2/3 (meter).
  Rs
Get another mean earth radius: sqrt(a * b) (meter).

Inherited from bases.Named: name

Inherited from object: __class__

Method Details

__init__(self, a, b, f_, name='')
(Constructor)

 

New ellipsoid.

Parameters:
  • a - Semi-major, equatorial axis (meter).
  • b - Semi-minor, polar axis (meter).
  • f_ - Inverse flattening: a / (a - b) (float >>> 1).
  • name - Optional, unique name (string).
Raises:
  • NameError - Ellipsoid with that name already exists.
Overrides: object.__init__

__eq__(self, other)
(Equality operator)

 

Compare this and an other ellipsoid.

Parameters:
Returns:
True if equal (bool).

distance2(self, lat0, lon0, lat1, lon1)

 

Approximate the distance and bearing between two points based on the radii of curvature.

Suitable only for short distances up to a few hundred Km or Miles and only between non-near-polar points.

Parameters:
  • lat0 - From latitude (degrees).
  • lon0 - From longitude (degrees).
  • lat1 - To latitude (degrees).
  • lon1 - To longitude (degrees).
Returns:
2-Tuple (distance, bearing) in (meter, degrees360).

See Also: Local, Flat Earth.

e2s(self, s)

 

Compute norm sqrt(1 - e2 * s**2).

Parameters:
  • s - S value (scalar).
Returns:
Norm (float).
Raises:
  • ValueError - Invalid s.

e2s2(self, s)

 

Compute 1 - e2 * s**2.

Parameters:
  • s - S value (scalar).
Returns:
Result (float).
Raises:
  • ValueError - Invalid s.

Rgeocentric(self, lat)

 

Compute the geocentric earth radius at the given latitude.

Parameters:
  • lat - Latitude (degrees90).
Returns:
Geocentric earth radius (meter).

See Also: Geocentric Radius

Rlat(self, lat)

 

Approximate the earth radius at the given latitude.

Parameters:
  • lat - Latitude (degrees90).
Returns:
Approximate earth radius (meter).

roc2(self, lat)

 

Compute the meridional and prime-vertical radii of curvature at the given latitude.

Parameters:
  • lat - Latitude (degrees90).
Returns:
2-Tuple (meridional, prime-vertical) with the radii of curvature (meter, meter).

rocBearing(self, lat, bearing)

 

Compute the directional radius of curvature at the given latitude and compass direction.

Parameters:
  • lat - Latitude (degrees90).
  • bearing - Direction (compass degrees).
Returns:
Directional radius of curvature (meter).

See Also: Radii of Curvature

rocGauss(self, lat)

 

Compute the Gaussian radius of curvature at the given latitude.

Parameters:
  • lat - Latitude (degrees90).
Returns:
Gaussian radius of curvature (meter).

See Also: Radii of Curvature

rocMean(self, lat)

 

Compute the mean radius of curvature at the given latitude.

Parameters:
  • lat - Latitude (degrees90).
Returns:
Mean radius of curvature (meter).

See Also: Radii of Curvature

rocMeridional(self, lat)

 

Compute the meridional radius of curvature at the given latitude.

Parameters:
  • lat - Latitude (degrees90).
Returns:
Meridional radius of curvature (meter).

rocPrimeVertical(self, lat)

 

Compute the prime-vertical radius of curvature at the given latitude.

Parameters:
  • lat - Latitude (degrees90).
Returns:
Prime-vertical radis of curvature (meter).

toStr(self, prec=9)

 

Return this ellipsoid as a string.

Parameters:
  • prec - Optional number of decimals, unstripped (int).
Returns:
Ellipsoid attributes (string).
Overrides: bases.Base.toStr

Property Details

A

Get the UTM meridional radius (meter).

Get Method:
A(self) - Get the UTM meridional radius (meter).

a2_b

Get the polar meridional radius of curvature: a**2 / b (meter).

Get Method:
a2_b(self) - Get the polar meridional radius of curvature: a**2 / b (meter).

See Also: Radii of Curvature.

Alpha6

Get the 6th-order Krüger Alpha series coefficients (7-tuple, 1-origin).

Get Method:
Alpha6(self) - Get the 6th-order Krüger Alpha series coefficients (7-tuple, 1-origin).

b2_a

Get the equatorial meridional radius of curvature: b**2 / a (meter).

Get Method:
b2_a(self) - Get the equatorial meridional radius of curvature: b**2 / a (meter).

See Also: Radii of Curvature.

Beta6

Get the 6th-order Krüger Beta series coefficients (7-tuple, 1-origin).

Get Method:
Beta6(self) - Get the 6th-order Krüger Beta series coefficients (7-tuple, 1-origin).

isEllipsoidal

Check whether this model is ellipsoidal (bool).

Get Method:
isEllipsoidal(self) - Check whether this model is ellipsoidal (bool).

isSpherical

Check whether this model is spherical (bool).

Get Method:
isSpherical(self) - Check whether this model is spherical (bool).

Mabcd

Get the OSGR meridional coefficients, Airy130 only (4-tuple).

Get Method:
Mabcd(self) - Get the OSGR meridional coefficients, Airy130 only (4-tuple).

R1

Get the mean earth radius per IUGG: (2 * a + b) / 3 (meter).

Get Method:
R1(self) - Get the mean earth radius per IUGG: (2 * a + b) / 3 (meter).

See Also: Earth radius.

R2

Get the authalic earth radius: sqrt((a**2 + b**2 * atanh(e) / e) / 2) (meter).

Get Method:
R2(self) - Get the authalic earth radius: sqrt((a**2 + b**2 * atanh(e) / e) / 2) (meter).

See Also: Earth radius.

R3

Get the volumetric earth radius: (a * a * b)**1/3 (meter).

Get Method:
R3(self) - Get the volumetric earth radius: (a * a * b)**1/3 (meter).

See Also: Earth radius.

Rr

Get the rectifying earth radius: ((a**3/2 + b**3/2) / 2)**2/3 (meter).

Get Method:
Rr(self) - Get the rectifying earth radius: ((a**3/2 + b**3/2) / 2)**2/3 (meter).

See Also: Earth radius.

Rs

Get another mean earth radius: sqrt(a * b) (meter).

Get Method:
Rs(self) - Get another mean earth radius: sqrt(a * b) (meter).