def __init__(self, x, y=None, z=None, h=0, ll=None, datum=None, name=NN): '''New n-vector normal to the earth's surface. @arg x: An C{Nvector}, L{Vector3Tuple}, L{Vector4Tuple} or the C{X} coordinate (C{scalar}). @arg y: The C{Y} coordinate (C{scalar}) if B{C{x}} C{scalar}. @arg z: The C{Z} coordinate (C{scalar}) if B{C{x}} C{scalar}. @kwarg h: Optional height above surface (C{meter}). @kwarg ll: Optional, original latlon (C{LatLon}). @kwarg datum: Optional, I{pass-thru} datum (L{Datum}). @kwarg name: Optional name (C{str}). @raise TypeError: Non-scalar B{C{x}}, B{C{y}} or B{C{z}} coordinate or B{C{x}} not an C{Nvector}, L{Vector3Tuple} or L{Vector4Tuple} or invalid B{C{datum}}. @example: >>> from pygeodesy.sphericalNvector import Nvector >>> v = Nvector(0.5, 0.5, 0.7071, 1) >>> v.toLatLon() # 45.0°N, 045.0°E, +1.00m ''' x, y, z, h, d, n = _xyzhdn6(x, y, z, h, datum, ll) Vector3d.__init__(self, x, y, z, ll=ll, name=name or n) if h: self.h = h if d not in (None, self._datum): _xinstanceof(Datum, datum=d) self._datum = d # pass-thru
def __init__(self, x, y=None, z=None, h=0, ll=None, datum=None, name=''): '''New n-vector normal to the earth's surface. @param x: An C{Nvector}, L{Vector3Tuple}, L{Vector4Tuple} or the C{X} coordinate (C{scalar}). @param y: The C{Y} coordinate (C{scalar}) if B{C{x}} C{scalar}. @param z: The C{Z} coordinate (C{scalar}) if B{C{x}} C{scalar}. @keyword h: Optional height above surface (C{meter}). @keyword ll: Optional, original latlon (C{LatLon}). @keyword datum: Optional, I{pass-thru} datum (C{Datum}). @keyword name: Optional name (C{str}). @raise TypeError: Non-scalar B{C{x}}, B{C{y}} or B{C{z}} coordinate or B{C{x}} not an C{Nvector}, L{Vector3Tuple} or L{Vector4Tuple}. @example: >>> from pygeodesy.sphericalNvector import Nvector >>> v = Nvector(0.5, 0.5, 0.7071, 1) >>> v.toLatLon() # 45.0°N, 045.0°E, +1.00m ''' x, y, z, h, d, n = _xyzhdn6(x, y, z, h, datum, ll) Vector3d.__init__(self, x, y, z, ll=ll, name=name or n) if h: self.h = h if d: # just pass-thru self._datum = d
def __init__(self, xyz, y=None, z=None, datum=None, ll=None, name=NN): '''New C{Cartesian...}. @arg xyz: An L{Ecef9Tuple}, L{Vector3Tuple}, L{Vector4Tuple} or the C{X} coordinate (C{scalar}). @arg y: The C{Y} coordinate (C{scalar}) if B{C{xyz}} C{scalar}. @arg z: The C{Z} coordinate (C{scalar}) if B{C{xyz}} C{scalar}. @kwarg datum: Optional datum (L{Datum}). @kwarg ll: Optional, original latlon (C{LatLon}). @kwarg name: Optional name (C{str}). @raise TypeError: Non-scalar B{C{xyz}}, B{C{y}} or B{C{z}} coordinate or B{C{xyz}} not an L{Ecef9Tuple}, L{Vector3Tuple} or L{Vector4Tuple}. ''' x, y, z, _, d, n = _xyzhdn6(xyz, y, z, None, datum, ll) Vector3d.__init__(self, x, y, z, ll=ll, name=name or n) if d: self.datum = d