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 geodetic `(lat, lon, height)` to geocentric `(x, y, z)`. |
reverse(self, xyz, y=None, z=None, **no_M) Convert 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`, `toRepr` Inherited from `named._Named`: `_DOT_`, `attrs`, `classof`, `copy`, `rename`, `toStr2` Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

Properties
Inherited from `_EcefBase`: `a`, `datum`, `ellipsoid`, `equatoradius`, `equatorialRadius`, `f`, `flattening` Inherited from `named._Named`: `classname`, `classnaming`, `name`, `named`, `named2`, `named3`, `named4` Inherited from `object`: `__class__`

Method Details

### __init__ (self, a_ellipsoid, f=None, name='') (Constructor) |
New EcefYou converter. Arguments: `a_ellipsoid` - A (non-prolate) ellipsoid (Ellipsoid, Ellipsoid2, Datum or a_f2Tuple) or `scalar` ellipsoid's equatorial radius (`meter`). `f` - `None` or the ellipsoid flattening (`scalar`), required for `scalar` `a_ellipsoid`, use `f=0` to represent a sphere. `name` - Optional name (`str`). Raises: `EcefError` - If `a_ellipsoid` not Ellipsoid, Ellipsoid2, Datum or a_f2Tuple or `scalar` or `f` not `scalar` or if `scalar` `a_ellipsoid` not positive or `f` negative or not less than 1.0. Overrides: object.__init__

### forward (self, latlonh, lon=None, height=0, M=False) |
Convert geodetic `(lat, lon, height)` to geocentric `(x, y, z)`. Arguments: `latlonh` - Either a `LatLon`, an Ecef9Tuple or `scalar` latitude (`degrees`). `lon` - Optional `scalar` longitude for `scalar` `latlonh` (`degrees`). `height` - Optional height (`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`, optional `M` (EcefMatrix) 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°. Overrides: _EcefBase.forward

### reverse (self, xyz, y=None, z=None, **no_M) |
Convert geocentric `(x, y, z)` to geodetic `(lat, lon, height)` using Rey-Jer You's transformation. Arguments: `xyz` - A geocentric (`Cartesian`, Ecef9Tuple) or `scalar` ECEF `x` coordinate (`meter`). `y` - ECEF `y` coordinate for `scalar` `xyz` and `z` (`meter`). `z` - ECEF `z` coordinate for `scalar` `xyz` and `y` (`meter`). `no_M` - Rotation matrix `M` not available, ignored. 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`, `M=None` always and `datum` if available. Raises: `EcefError` - Invalid `xyz` or `scalar` `x` or `y` and/or `z` not `scalar` for `scalar` `xyz`. Overrides: _EcefBase.reverse