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

# Class EcefSudano

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

Conversion between geodetic and geocentric, aka Earth-Centered, Earth-Fixed (ECEF) coordinates based on John J. Sudano's paper.

Instance Methods
__init__(self, a_ellipsoid, f=None, name=`'````'`) New EcefVeness/EcefSudano 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 Sudano's iterative method. |
Inherited from `_EcefBase`: `toStr` 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__`

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 EcefVeness/EcefSudano converter. Arguments: `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)`. Arguments: `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°. Overrides: _EcefBase.forward

### reverse (self, xyz, y=None, z=None, **no_M) |
Convert from geocentric `(x, y, z)` to geodetic `(lat, lon, height)` using Sudano's iterative method. Arguments: `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)`, iteration `C`, EcefMatrix `M` always `None` and `datum` if available. Raises: `EcefError` - If `xyz` not Ecef9Tuple or `scalar` `x` or `y` and/or `z` not `scalar` for `scalar` `xyz` or no convergence. Overrides: _EcefBase.reverse