(self, *args, **kwds)
Use the rotator to rotate either spherical coordinates (theta, phi)
        or a vector (x,y,z). You can use lonla keyword to use longitude, latitude
        (in degree) instead of theta, phi (in radian). In this case, returns
        longitude, latitude in degree.

        Accepted forms:

        r(x,y,z)  # x,y,z either scalars or arrays
        r(theta,phi) # theta, phi scalars or arrays
        r(lon,lat,lonlat=True)  # lon, lat scalars or arrays
        r(vec) # vec 1-D array with 3 elements, or 2-D array 3xN
        r(direction) # direction 1-D array with 2 elements, or 2xN array

        Parameters
        ----------
        vec_or_dir : array or multiple arrays
          The direction to rotate. See above for accepted formats.
        lonlat : bool, optional
          If True, assumes the input direction is longitude/latitude in degrees.
          Otherwise, assumes co-latitude/longitude in radians. Default: False
        inv : bool, optional
          If True, applies the inverse rotation. Default: False.
Use the rotator to rotate either spherical coordinates (theta, phi)
        or a vector (x,y,z). You can use lonla keyword to use longitude, latitude
        (in degree) instead of theta, phi (in radian). In this case, returns
        longitude, latitude in degree.
Use the rotator to rotate either spherical coordinates ( theta phi ) or a vector ( x y z ) . You can use lonla keyword to use longitude latitude ( in degree ) instead of theta phi ( in radian ) . In this case returns longitude latitude in degree .
def __call__(self, *args, **kwds):
        """Use the rotator to rotate either spherical coordinates (theta, phi)
        or a vector (x,y,z). You can use lonla keyword to use longitude, latitude
        (in degree) instead of theta, phi (in radian). In this case, returns
        longitude, latitude in degree.

        Accepted forms:

        r(x,y,z)  # x,y,z either scalars or arrays
        r(theta,phi) # theta, phi scalars or arrays
        r(lon,lat,lonlat=True)  # lon, lat scalars or arrays
        r(vec) # vec 1-D array with 3 elements, or 2-D array 3xN
        r(direction) # direction 1-D array with 2 elements, or 2xN array

        Parameters
        ----------
        vec_or_dir : array or multiple arrays
          The direction to rotate. See above for accepted formats.
        lonlat : bool, optional
          If True, assumes the input direction is longitude/latitude in degrees.
          Otherwise, assumes co-latitude/longitude in radians. Default: False
        inv : bool, optional
          If True, applies the inverse rotation. Default: False.
        """
        if kwds.pop("inv", False):
            m = self._matrix.T
        else:
            m = self._matrix
        lonlat = kwds.pop("lonlat", False)
        if len(args) == 1:
            arg = args[0]
            if not hasattr(arg, "__len__") or len(arg) < 2 or len(arg) > 3:
                raise TypeError("Argument must be a sequence of 2 or 3 " "elements")
            if len(arg) == 2:
                return rotateDirection(
                    m, arg[0], arg[1], self._do_rotation, lonlat=lonlat
                )
            else:
                return rotateVector(m, arg[0], arg[1], arg[2], self._do_rotation)
        elif len(args) == 2:
            return rotateDirection(
                m, args[0], args[1], self._do_rotation, lonlat=lonlat
            )
        elif len(args) == 3:
            return rotateVector(m, args[0], args[1], args[2], self._do_rotation)
        else:
            raise TypeError("Either 1, 2 or 3 arguments accepted")
def __call__ ( self , * args , * * kwds ) : if kwds . pop ( "inv" , False ) : m = self . _matrix . T else : m = self . _matrix lonlat = kwds . pop ( "lonlat" , False ) if len ( args ) == 1 : arg = args [ 0 ] if not hasattr ( arg , "__len__" ) or len ( arg ) < 2 or len ( arg ) > 3 : raise TypeError ( "Argument must be a sequence of 2 or 3 " "elements" ) if len ( arg ) == 2 : return rotateDirection ( m , arg [ 0 ] , arg [ 1 ] , self . _do_rotation , lonlat = lonlat ) else : return rotateVector ( m , arg [ 0 ] , arg [ 1 ] , arg [ 2 ] , self . _do_rotation ) elif len ( args ) == 2 : return rotateDirection ( m , args [ 0 ] , args [ 1 ] , self . _do_rotation , lonlat = lonlat ) elif len ( args ) == 3 : return rotateVector ( m , args [ 0 ] , args [ 1 ] , args [ 2 ] , self . _do_rotation ) else : raise TypeError ( "Either 1, 2 or 3 arguments accepted" )