Package pygeodesy :: Module ecef :: Class EcefYou
[frames] | no frames]

Class EcefYou

  object --+            
           |            
named._Named --+        
               |        
named._NamedBase --+    
                   |    
           _EcefBase --+
                       |
                      EcefYou

Conversion between geodetic and geocentric, aka Earth-Centered, Earth-Fixed (ECEF) coordinates using Rey-Jer You's transformations.


See Also: W.E. Featherstone, S.J. (Sten) Claessens Closed-form transformation between geodetic and ellipsoidal coordinates Studia Geophysica et Geodaetica, 2008, 52, 1-18 and PyMap3D.

Instance Methods
 
__init__(self, a_ellipsoid, f=None, name='')
New EcefYou converter.
 
forward(self, latlonh, lon=None, height=0, M=False)
Convert from geodetic (lat, lon, height) to geocentric (x, y, z).
 
reverse(self, xyz, y=None, z=None, **no_M)
Convert from geocentric (x, y, z) to geodetic (lat, lon, height) using Rey-Jer You's transformation.

Inherited from _EcefBase: toStr

Inherited from named._NamedBase: __repr__, __str__, others, toStr2

Inherited from named._Named: classof, copy

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

Properties

Inherited from _EcefBase: a, datum, ellipsoid, equatorialRadius, f, flattening

Inherited from named._Named: classname, classnaming, name, named, named2

Inherited from object: __class__

Method Details

__init__(self, a_ellipsoid, f=None, name='')
(Constructor)

 

New EcefYou converter.

Parameters:
  • a_ellipsoid - An ellipsoid (Ellipsoid), a datum (Datum) or scalar for the major, equatorial radius of the ellipsoid (meter).
  • f - None or the ellipsoid flattening (scalar), required for scalar a_datum_ellipsoid, f=0 represents a sphere, negative f a prolate ellipsoid.
  • name - Optional name (str).
Raises:
  • EcefError - If a_ellipsoid not Ellipsoid, Datum or scalar or f not scalar or if scalar a_ellipsoid not positive or f not less than 1.0.
Overrides: object.__init__

forward(self, latlonh, lon=None, height=0, M=False)

 

Convert from geodetic (lat, lon, height) to geocentric (x, y, z).

Parameters:
  • latlonh - Either a LatLon, an Ecef9Tuple or scalar latitude in degrees.
  • lon - Optional scalar longitude in degrees for scalar latlonh.
  • height - Optional height in meter, vertically above (or below) the surface of the ellipsoid.
  • M - Optionally, return the rotation EcefMatrix (bool).
Returns:
An Ecef9Tuple(x, y, z, lat, lon, height, C, M, datum) with geocentric (x, y, z) coordinates for the given geodetic ones (lat, lon, height), case C 0, EcefMatrix M and datum if available.
Raises:
  • EcefError - If latlonh not LatLon, Ecef9Tuple or scalar or lon not scalar for scalar latlonh or abs(lat) exceeds 90°.

reverse(self, xyz, y=None, z=None, **no_M)

 

Convert from geocentric (x, y, z) to geodetic (lat, lon, height) using Rey-Jer You's transformation.

Parameters:
  • xyz - Either an Ecef9Tuple, an (x, y, z) 3-tuple or scalar ECEF x coordinate in meter.
  • y - ECEF y coordinate in meter for scalar xyz and z.
  • z - ECEF z coordinate in meter for scalar xyz and y.
  • no_M - Rotation matrix M not available.
Returns:
An Ecef9Tuple(x, y, z, lat, lon, height, C, M, datum) with geodetic coordinates (lat, lon, height) for the given geocentric ones (x, y, z), case C 1, EcefMatrix M always None and datum if available.
Raises: