Package pygeodesy :: Module ellipsoidalNvector :: 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 ellipsoid. 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.

Note commonality with sphericalNvector.Nvector.

Instance Methods
 
__init__(self, x, y, z, h=0, datum=None, ll=None, name='')
New n-vector normal to the earth's surface.
 
toCartesian(self, **Cartesian_h_datum_kwds)
Convert this n-vector to Nvector-based cartesian (ECEF) coordinates.
 
toLatLon(self, **LatLon_height_datum_kwds)
Convert this n-vector to an Nvector-based geodetic point.
 
unit(self, ll=None)
Normalize this vector to unit length.

Inherited from nvectorBase.NvectorBase: hStr, to2ab, to2ll, to3abh, to3llh, to4xyzh, toStr, toVector3d

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, iscolinearWith, isequalTo, minus, nearestOn, negate, others, parse, plus, rotate, rotateAround, sum, times, to3xyz, trilaterate3d2

Inherited from named._NamedBase: __repr__, __str__, 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
  datum
Get this n-vector's datum (Datum).

Inherited from nvectorBase.NvectorBase: Ecef, H, h, isEllipsoidal, isSpherical, lam, lat, latlon, latlonheight, lon, phi, philam, philamheight, xyzh

Inherited from vector3d.Vector3d: crosserrors, euclid, length, length2, x, xyz, y, z

Inherited from named._Named: classname, classnaming, name, named, named2, named3, named4

Inherited from object: __class__

Method Details

__init__ (self, x, y, z, h=0, datum=None, ll=None, name='')
(Constructor)

 

New n-vector normal to the earth's surface.

Arguments:
  • x - X component (meter).
  • y - Y component (meter).
  • z - Z component (meter).
  • h - Optional height above model surface (meter).
  • datum - Optional datum this n-vector is defined in (Datum, Ellipsoid, Ellipsoid2 or a_f2Tuple).
  • ll - Optional, original latlon (LatLon).
  • name - Optional name (str).
Raises:
  • TypeError - If datum is not a Datum.
Overrides: object.__init__

Example:

>>> from ellipsoidalNvector import Nvector
>>> v = Nvector(0.5, 0.5, 0.7071, 1)
>>> v.toLatLon()  # 45.0°N, 045.0°E, +1.00m

toCartesian (self, **Cartesian_h_datum_kwds)

 

Convert this n-vector to Nvector-based cartesian (ECEF) coordinates.

Arguments:
  • Cartesian_h_datum_kwds - Optional Cartesian, h, datum 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, datum or other Cartesian_h_datum_kwds.
Overrides: nvectorBase.NvectorBase.toCartesian

Example:

>>> v = Nvector(0.5, 0.5, 0.7071)
>>> c = v.toCartesian()  # [3194434, 3194434, 4487327]
>>> p = c.toLatLon()  # 45.0°N, 45.0°E

toLatLon (self, **LatLon_height_datum_kwds)

 

Convert this n-vector to an Nvector-based geodetic point.

Arguments:
  • LatLon_height_datum_kwds - Optional LatLon, height, datum and other keyword arguments, ignored if LatLon=None. Use LatLon=... to override this LatLon class or set LatLon=None.
Returns:
The geodetic point (LatLon) or a LatLon3Tuple(lat, lon, height) if LatLon is None.
Raises:
  • TypeError - Invalid LatLon, height, datum or other LatLon_height_datum_kwds.
Overrides: nvectorBase.NvectorBase.toLatLon

Example:

>>> v = Nvector(0.5, 0.5, 0.7071)
>>> p = v.toLatLon()  # 45.0°N, 45.0°E

unit (self, ll=None)

 

Normalize this vector to unit length.

Arguments:
  • ll - Optional, original latlon (LatLon).
Returns:
Normalised vector (Nvector).
Overrides: vector3d.Vector3d.unit

Property Details

datum

Get this n-vector's datum (Datum).

Get method:
datum(self) - Get this n-vector's datum (Datum).
Set method:
immutable(inst, value) - Throws an AttributeError, always.