Package pygeodesy :: Module sphericalNvector :: Class Nvector |
[frames] | no frames]

# Class Nvector

      object --+
               |
    named._Named --+
                   |
    named._NamedBase --+
                       |
       vector3d.Vector3d --+
                           |
     nvectorBase.NvectorBase --+
                               |
                              Nvector

An n-vector is a position representation using a (unit) vector normal to the earth's surface. Unlike lat-/longitude points, n-vectors have no singularities or discontinuities.

For many applications, n-vectors are more convenient to work with than other position representations like lat-/longitude, earth-centred earth-fixed (ECEF) vectors, UTM coordinates, etc.

On a spherical model earth, an n-vector is equivalent to an earth-centred earth-fixed (ECEF) vector.

Note commonality with ellipsoidalNvector.Nvector.

Instance Methods
toCartesian(self, **Cartesian_h_kwds) Convert this n-vector to `Nvector`-based cartesian (ECEF) coordinates. |
toLatLon(self, **LatLon_height_kwds) Convert this n-vector to an `Nvector`-based geodetic point. |
greatCircle(self, bearing) Compute the n-vector normal to great circle obtained by heading on given compass bearing from this point as its n-vector. |
Inherited from `nvectorBase.NvectorBase`: `__init__`, `to2ab`, `to2ll`, `to3abh`, `to3llh`, `to4xyzh`, `toStr`, `toVector3d`, `unit` Inherited from `vector3d.Vector3d`: `__abs__`, `__add__`, `__cmp__`, `__div__`, `__eq__`, `__ge__`, `__gt__`, `__le__`, `__lt__`, `__matmul__`, `__mul__`, `__ne__`, `__neg__`, `__pos__`, `__radd__`, `__rmatmul__`, `__rsub__`, `__sub__`, `__truediv__`, `angleTo`, `cmp`, `cross`, `dividedBy`, `dot`, `equals`, `isequalTo`, `minus`, `negate`, `others`, `parse`, `plus`, `rotate`, `rotateAround`, `sum`, `times`, `to3xyz` Inherited from `named._NamedBase`: `__repr__`, `__str__`, `toStr2` Inherited from `named._Named`: `_dot_`, `attrs`, `classof`, `copy` Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__setattr__`, `__sizeof__`, `__subclasshook__`

Properties
Inherited from `nvectorBase.NvectorBase`: `Ecef`, `H`, `datum`, `h`, `isEllipsoidal`, `isSpherical`, `lam`, `lat`, `latlon`, `latlonheight`, `lon`, `phi`, `philam`, `philamheight`, `xyzh` Inherited from `vector3d.Vector3d`: `crosserrors`, `length`, `x`, `xyz`, `y`, `z` Inherited from `named._Named`: `classname`, `classnaming`, `name`, `named`, `named2` Inherited from `object`: `__class__`

Method Details

### toCartesian(self, **Cartesian_h_kwds) |
Convert this n-vector to `Nvector`-based cartesian (ECEF) coordinates. Parameters: `Cartesian_h_kwds` - Optional Cartesian, `h` and other keyword arguments, ignored if `Cartesian=None`. Use `Cartesian=...` to override this Cartesian class or specify `Cartesian=None`. Returns: The cartesian point (Cartesian) or if `Cartesian` is `None`, an Ecef9Tuple`(x, y, z, lat, lon, height, C, M, datum)` with `C` and `M` if available. Raises: `TypeError` - Invalid `Cartesian`, `h` or other `Cartesian_h_kwds`. Overrides: nvectorBase.NvectorBase.toCartesian

### toLatLon(self, **LatLon_height_kwds) |
Convert this n-vector to an `Nvector`-based geodetic point. Parameters: `LatLon_height_kwds` - Optional LatLon, `height` and other keyword arguments, ignored if `LatLon=None`. Use `LatLon=...` to override this LatLon class or specify `LatLon=None`. Returns: The geodetic point (LatLon) or if `LatLon` is `None`, a LatLon3Tuple`(lat, lon, height)`. Raises: `TypeError` - Invalid `LatLon`, `height` or other `LatLon_height_kwds`. Overrides: nvectorBase.NvectorBase.toLatLon

### greatCircle(self, bearing) |
Compute the n-vector normal to great circle obtained by heading on given compass bearing from this point as its n-vector. Direction of vector is such that initial bearing vector b = c × p. Parameters: `bearing` - Initial compass bearing (`degrees`). Returns: N-vector representing great circle (Nvector). Raises: `Valuerror` - Polar coincidence. Example:
    >>> n = LatLon(53.3206, -1.7297).toNvector()
    >>> gc = n.greatCircle(96.0)  # [-0.794, 0.129, 0.594]