def __new__(cls, sa, ca, sb, cb, *_m): '''New L{EcefMatrix} matrix. @arg sa: C{sin(phi)} (C{float}). @arg ca: C{cos(phi)} (C{float}). @arg sb: C{sin(lambda)} (C{float}). @arg cb: C{cos(lambda)} (C{float}). @arg _m: (INTERNAL) from C{.multiply}. @raise EcefError: If B{C{sa}}, B{C{ca}}, B{C{sb}} or B{C{cb}} outside M{[-1.0, +1.0]}. ''' t = sa, ca, sb, cb if _m: # all 9 matrix elements ... t += _m # ... from .multiply elif max(map(abs, t)) > 1: raise EcefError('%s invalid: %r' % (EcefMatrix.__name__, t)) else: # build matrix from the following quaternion operations # qrot(lam, [0,0,1]) * qrot(phi, [0,-1,0]) * [1,1,1,1]/2 # or # qrot(pi/2 + lam, [0,0,1]) * qrot(-pi/2 + phi, [-1,0,0]) # where # qrot(t,v) = [cos(t/2), sin(t/2)*v[1], sin(t/2)*v[2], sin(t/2)*v[3]] # Local X axis (east) in geocentric coords # M[0] = -slam; M[3] = clam; M[6] = 0; # Local Y axis (north) in geocentric coords # M[1] = -clam * sphi; M[4] = -slam * sphi; M[7] = cphi; # Local Z axis (up) in geocentric coords # M[2] = clam * cphi; M[5] = slam * cphi; M[8] = sphi; t = (-sb, -cb * sa, cb * ca, cb, -sb * sa, sb * ca, 0, ca, sa) return _NamedTuple.__new__(cls, *t)
def __new__(cls, z, h, e, n, B, d, c, s, Error=None): if Error is not None: e = Easting(e, Error=Error) n = Northing(n, Error=Error) c = Scalar(c, name=_convergence_, Error=Error) s = Scalar(s, name=_scale_, Error=Error) return _NamedTuple.__new__(cls, z, h, e, n, B, d, c, s)
def __new__(cls, sa, ca, sb, cb, *_m): '''New L{EcefMatrix} matrix. @param sa: C{sin(phi)} (C{float}). @param ca: C{cos(phi)} (C{float}). @param sb: C{sin(lambda)} (C{float}). @param cb: C{cos(lambda)} (C{float}). @param _m: (INTERNAL) from C{.multiply}. @raise EcefError: If B{C{sa}}, B{C{ca}}, B{C{sb}} or B{C{cb}} outside M{[-1.0, +1.0]}. ''' t = sa, ca, sb, cb if _m: # all 9 matrix elements ... t += _m # ... from .multiply elif max(map(abs, t)) > 1: raise EcefError('%s invalid: %r' % ('sa, ca, sb or cb', t)) else: # build matrix t = (-sb, -cb * sa, cb * ca, cb, -sb * sa, sb * ca, 0, ca, sa) return _NamedTuple.__new__(cls, *t)
def __new__(cls, z, h, e, n, B, d, c, s, Error=None): if Error is not None: e = Easting(e, Error=Error) n = Northing(n, Error=Error) c = Degrees(convergence=c, Error=Error) s = Scalar(scale=s, Error=Error) return _NamedTuple.__new__(cls, z, h, e, n, B, d, c, s)
def __new__(cls, x, y, lat, lon, azi, s, datum): return _NamedTuple.__new__( cls, Scalar(x, name=_x_, Error=AzimuthalError), Scalar(y, name=_y_, Error=AzimuthalError), # PYCHOK indent Lat_(lat, Error=AzimuthalError), Lon_(lon, Error=AzimuthalError), Bearing(azi, name=_azimuth_, Error=AzimuthalError), Scalar(s, name=_scale_, Error=AzimuthalError), datum)
def __new__(cls, x, y, lat, lon, g, k, datum): return _NamedTuple.__new__(cls, Scalar(x, name=_x_, Error=AlbersError), Scalar(y, name=_y_, Error=AlbersError), _Lat_(lat), _Lon_(lon), Degrees(g, name=_gamma_, Error=AlbersError), _Ks(k, _scale_), datum)
def __new__(cls, z, B, h, lat, lon, Error=None): if Error is not None: lat = Lat(lat, Error=Error) lon = Lon(lon, Error=Error) return _NamedTuple.__new__(cls, z, B, h, lat, lon)
def __new__(cls, z, h, e, n, B, Error=None): if Error is not None: e = Easting(e, Error=Error) n = Northing(n, Error=Error) return _NamedTuple.__new__(cls, z, h, e, n, B)
def __new__(cls, lat, lon, d, c, s): return _NamedTuple.__new__(cls, Lat(lat), Lon(lon), d, Scalar(c, name=_convergence_), Scalar(s, name=_scale_))
def __new__(cls, z, di, e, n, Error=MGRSError): if Error is not None: e = Easting(e, Error=Error) n = Northing(n, Error=Error) return _NamedTuple.__new__(cls, z, di, e, n)
def __new__(cls, lat, lon, azi, rk): return _NamedTuple.__new__(cls, Lat(lat, Error=CSSError), Lon(lon, Error=CSSError), Bearing(azi, Error=CSSError), Scalar(rk, Error=CSSError))
def __new__(cls, e, n, azi, rk): return _NamedTuple.__new__(cls, Easting(e, Error=CSSError), Northing(n, Error=CSSError), Bearing(azi, Error=CSSError), Scalar(rk, Error=CSSError))
def __new__(cls, e, n, r): return _NamedTuple.__new__(cls, Easting(e, Error=WebMercatorError), Northing(n, Error=WebMercatorError), Radius(r, Error=WebMercatorError))