Package pygeodesy :: Module etm :: Class ExactTransverseMercator |
[frames] | no frames]

# Class ExactTransverseMercator

      object --+
               |
    named._Named --+
                   |
    named._NamedBase --+
                       |
                      ExactTransverseMercator

A Python version of Karney's TransverseMercatorExact C++ class, a numerically exact transverse Mercator projection, here referred to as `TMExact`.

Instance Methods
__init__(self, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran`...`, lon0=0, k0=0.9996, extendp=False, name='', raiser=False) New ExactTransverseMercator projection. |
forward(self, lat, lon, lon0=None, name='') Forward projection, from geographic to transverse Mercator. |
reverse(self, x, y, lon0=None, name='') Reverse projection, from Transverse Mercator to geographic. |
toStr(self, joined=', ', **kwds) Return a `str` representation. |
Inherited from `named._NamedBase`: `__repr__`, `__str__`, `others`, `toRepr` Inherited from `named._Named`: `__imatmul__`, `__matmul__`, `__rmatmul__`, `attrs`, `classof`, `copy`, `dup`, `rename`, `toStr2` Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

Properties
| datum Class `property` with retrievable name.
| ellipsoid Get the ellipsoid (Ellipsoid).
| equatoradius Get this `ellipsoid`'s equatorial radius, semi-axis (`meter`).
| a Get this `ellipsoid`'s equatorial radius, semi-axis (`meter`).
| extendp Get the domain (`bool`), extended or standard.
| flattening Get this `ellipsoid`'s flattening (`float`).
| f Get this `ellipsoid`'s flattening (`float`).
| iteration Get the most recent `ExactTransverseMercator.forward` or `ExactTransverseMercator.reverse` iteration number (`int`) or `None` if not available/applicable.
| k0 Class `property` with retrievable name.
| lon0 Class `property` with retrievable name.
| majoradius DEPRECATED, use property `equatoradius`.
| raiser Class `property` with retrievable name.
Inherited from `named._Named`: `classname`, `classnaming`, `name`, `named`, `named2`, `named3`, `named4` Inherited from `object`: `__class__`

Method Details

### __init__ (self, datum=Datum(name='WGS84', ellipsoid=Ellipsoids.WGS84, transform=Tran`...`, lon0=0, k0=0.9996, extendp=False, name='', raiser=False) (Constructor) |
New ExactTransverseMercator projection. Arguments: `datum` - The non-spherical datum or ellipsoid (Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple). `lon0` - Central meridian, default (`degrees180`). `k0` - Central scale factor (`float`). `extendp` - Use the extended domain (`bool`), standard otherwise. `name` - Optional name for the projection (`str`). `raiser` - If `True`, throw an ETMError for convergence failures (`bool`). Raises: `ETMError` - Near-spherical `datum` or `ellipsoid` or invalid `lon0` or `k0`. `TypeError` - Invalid or near-spherical `datum`. Overrides: object.__init__ See Also: Constructor TransverseMercatorExact<https://GeographicLib.SourceForge.io/ html/classGeographicLib_1_1TransverseMercatorExact.html for more details, especially on extendp. Note: For all 255.5K TMcoords.dat tests (with `0 <= lat <= 84` and `0 <= lon`) the maximum error is `5.2e-08 .forward` (or 52 nano-meter) easting and northing and `3.8e-13 .reverse` (or 0.38 pico-degrees) lat- and longitude (with Python 3.7.3+, 2.7.16+, PyPy6 3.5.3 and PyPy6 2.7.13, all in 64-bit on macOS 10.13.6 High Sierra `x86_64` and 12.2 Monterey `arm64` and `"arm64_x86_64"`).

### forward (self, lat, lon, lon0=None, name='') |
Forward projection, from geographic to transverse Mercator. Arguments: `lat` - Latitude of point (`degrees`). `lon` - Longitude of point (`degrees`). `lon0` - Central meridian (`degrees180`), overriding the default if not `None`. `name` - Optional name (`str`). Returns: Forward4Tuple`(easting, northing, convergence, scale)`. Raises: `ETMError` - No convergence, thrown if property `raiser` set, See Also: `void TMExact::Forward(real lon0, real lat, real lon, real &x, real &y, real &gamma, real &k)`.

### reverse (self, x, y, lon0=None, name='') |
Reverse projection, from Transverse Mercator to geographic. Arguments: `x` - Easting of point (`meters`). `y` - Northing of point (`meters`). `lon0` - Central meridian (`degrees180`), overriding the default if not `None`. `name` - Optional name (`str`). Returns: Reverse4Tuple`(lat, lon, convergence, scale)`. Raises: `ETMError` - No convergence, thrown if property `raiser` set, See Also: `void TMExact::Reverse(real lon0, real x, real y, real &lat, real &lon, real &gamma, real &k)`

### toStr (self, joined=', ', **kwds) |
Return a `str` representation. Arguments: `joined` - Separator to join the attribute strings (`str` or `None` or `NN` for non-joined). `kwds` - Optional, overriding keyword arguments. Overrides: named._Named.toStr

Property Details

### datum Class `property` with retrievable name. Get method: datum(self) - Get the datum (Datum) or `None`. Set method: datum(self, datum) - Set the datum and ellipsoid (Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple).

### ellipsoid Get the ellipsoid (Ellipsoid). Get method: ellipsoid(self) - Get the ellipsoid (Ellipsoid). Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### equatoradius Get this `ellipsoid`'s equatorial radius, semi-axis (`meter`). Get method: equatoradius(self) - Get this `ellipsoid`'s equatorial radius, semi-axis (`meter`). Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### a Get this `ellipsoid`'s equatorial radius, semi-axis (`meter`). Get method: equatoradius(self) - Get this `ellipsoid`'s equatorial radius, semi-axis (`meter`). Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### extendp Get the domain (`bool`), extended or standard. Get method: extendp(self) - Get the domain (`bool`), extended or standard. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### flattening Get this `ellipsoid`'s flattening (`float`). Get method: flattening(self) - Get this `ellipsoid`'s flattening (`float`). Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### f Get this `ellipsoid`'s flattening (`float`). Get method: flattening(self) - Get this `ellipsoid`'s flattening (`float`). Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### iteration Get the most recent `ExactTransverseMercator.forward` or `ExactTransverseMercator.reverse` iteration number (`int`) or `None` if not available/applicable. Get method: iteration(self) - Get the most recent `ExactTransverseMercator.forward` or `ExactTransverseMercator.reverse` iteration number (`int`) or `None` if not available/applicable. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### k0 Class `property` with retrievable name. Get method: k0(self) - Get the central scale factor (`float`), aka `scale0`. Set method: k0(self, k0) - Set the central scale factor (`float`), aka `scale0`.

### lon0 Class `property` with retrievable name. Get method: lon0(self) - Get the central meridian (`degrees180`). Set method: lon0(self, lon0) - Set the central meridian (`degrees180`).

### majoradius DEPRECATED, use property `equatoradius`. Get method: majoradius(self) - DEPRECATED, use property `equatoradius`. Set method: _fset_error(inst, val) - Throws an `AttributeError`, always. Delete Method: _fdel(inst) - Zap the cached/memoized `property` value.

### raiser Class `property` with retrievable name. Get method: raiser(self) - Get the error setting (`bool`). Set method: raiser(self, raiser) - Set the error setting (`bool`), if `True` throw an ETMError for convergence failures.