idlastro / FITS Astrometry and Calibration: WCS_ROTATE

[Source code]

NAME
WCS_ROTATE 
PURPOSE
Rotate between standard (e.g. celestial) and native coordinates
EXPLANATION
Computes a spherical coordinate rotation between native coordinates 
and  standard celestial coordinate system (celestial, Galactic, or
ecliptic).   Applies the equations in Appendix B of the paper 
"Representation of Celestial Coordinates in FITS" by Calabretta 
Greisen (2002, A&A, 395, 1077).    Also see 
http://fits.gsfc.nasa.gov/fits_wcs.html
CATEGORY
Mapping and Auxiliary FITS Routine
CALLING SEQUENCE
WCS_ROTATE, longitude, latitude, phi, theta, crval, theta0 = 
        [LONGPOLE = , LATPOLE = , PV1 = , /REVERSE, /ORIGIN ]
INPUT PARAMETERS
crval - 2 element vector containing standard system coordinates (the 
        longitude and latitude) of the reference point
INPUT OR OUTPUT PARAMETERS
longitude - longitude of data, scalar or vector, in degrees, in the
        standard celestial coordinate system
latitude - latitude of data, same number of elements as longitude, 
        in degrees
theta - latitude of data in the native system, in degrees, scalar or
        vector
If the keyword(REVERSE) is set then phi and theta are input parameters
and longitude and latitude are computed.    Otherwise, longitude and
latitude are input parameters and phi and theta are computed.
OPTIONAL KEYWORD INPUT PARAMETERS
THETA0   - Native latitude of the reference point (required unless PV1 set)
PV1      - Vector giving parameters of user-defined fiducial point
LONGPOLE - native longitude of standard system's North Pole
LATPOLE -  native latitude of the standard system's North Pole
/REVERSE - if set then phi and theta are input parameters and longitude
           and latitude are computed.    By default, longitude and
           latitude are input parameters and phi and theta are computed.
ORIGIN     This keyword is obsolete and is no longer used. Replaced by
           explicitly specifying theta0 and/or PV1
REVISION HISTORY
Written    W. Landsman               December, 1994
Fixed error in finding North Pole if /ORIGIN and LONGPOLE NE 180
Xiaoyi Wu and W. Landsman,   March, 1996
Fixed implementation of March 96 error, J. Thieler,  April 1996
Updated to IDL V5.0   W. Landsman    December 1997
Fixed determination of alpha_p if /ORIGIN and LONGPOLE EQ 180
        W. Landsman    May 1998
Ensure argument of ASIN() is -1