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

# Class EcefFarrell21

      object --+
               |
    named._Named --+
                   |
    named._NamedBase --+
                       |
               _EcefBase --+
                           |
                  EcefVeness --+
                               |
                              EcefFarrell21

Conversion between geodetic and geocentric, aka Earth-Centered, Earth-Fixed (ECEF) coordinates based on Jay A. Farrell's Table 2.1, page 29.

Instance Methods
__init__(self, a_ellipsoid, f=None, name='') New EcefVeness/EcefSudano converter. |
forward(self, latlonh, lon=None, height=0, M=False, name='') Convert from geodetic `(lat, lon, height)` to geocentric `(x, y, z)`. |
reverse(self, xyz, y=None, z=None, M=None, name='') Convert from geocentric `(x, y, z)` to geodetic `(lat, lon, height)` using Farrell's Table 2.1, page 29. |
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 EcefVeness/EcefSudano 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`, `f=0` represents a sphere, negative `f` a prolate ellipsoid. `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` not less than 1.0. Overrides: object.__init__

### forward (self, latlonh, lon=None, height=0, M=False, name='') |
Convert from 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`). `name` - Optional name (`str`). 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, M=None, name='') |
Convert from geocentric `(x, y, z)` to geodetic `(lat, lon, height)` using Farrell's Table 2.1, page 29. 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`). `M` - Ignored, rotation matrix `M` not available. `name` - Optional name (`str`). 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` or `sqrt` domain or zero division error. Overrides: _EcefBase.reverse See Also: EcefFarrell22 and EcefVeness.