sph.h File Reference

Go to the source code of this file.

Functions

int sphx2s (const double eul[5], int nphi, int ntheta, int spt, int sxy, const double phi[], const double theta[], double lng[], double lat[])
 Rotation in the pixel-to-world direction.
int sphs2x (const double eul[5], int nlng, int nlat, int sll, int spt, const double lng[], const double lat[], double phi[], double theta[])
 Rotation in the world-to-pixel direction.
int sphdpa (int nfield, double lng0, double lat0, const double lng[], const double lat[], double dist[], double pa[])
 Angular distance and position angle.


Detailed Description

The WCS spherical coordinate transformations are implemented via separate functions, sphx2s() and sphs2x(), for the transformation in each direction.

A utility function, sphdpa(), uses these to compute the angular distance and position angle from a given point on the sky to a number of other points.


Function Documentation

int sphx2s ( const double  eul[5],
int  nphi,
int  ntheta,
int  spt,
int  sxy,
const double  phi[],
const double  theta[],
double  lng[],
double  lat[] 
)

sphx2s() transforms native coordinates of a projection to celestial coordinates.

Parameters:
[in] eul Euler angles for the transformation:
  • 0: Celestial longitude of the native pole [deg].
  • 1: Celestial colatitude of the native pole, or native colatitude of the celestial pole [deg].
  • 2: Native longitude of the celestial pole [deg].
  • 3: $cos$(eul[1])
  • 4: $sin$(eul[1])
[in] nphi,ntheta Vector lengths.
[in] spt,sxy Vector strides.
[in] phi,theta Longitude and latitude in the native coordinate system of the projection [deg].
[out] lng,lat Celestial longitude and latitude [deg].
Returns:
Status return value:
  • 0: Success.

int sphs2x ( const double  eul[5],
int  nlng,
int  nlat,
int  sll,
int  spt,
const double  lng[],
const double  lat[],
double  phi[],
double  theta[] 
)

sphs2x() transforms celestial coordinates to the native coordinates of a projection.

Parameters:
[in] eul Euler angles for the transformation:
  • 0: Celestial longitude of the native pole [deg].
  • 1: Celestial colatitude of the native pole, or native colatitude of the celestial pole [deg].
  • 2: Native longitude of the celestial pole [deg].
  • 3: $cos$(eul[1])
  • 4: $sin$(eul[1])
[in] nlng,nlat Vector lengths.
[in] sll,spt Vector strides.
[in] lng,lat Celestial longitude and latitude [deg].
[out] phi,theta Longitude and latitude in the native coordinate system of the projection [deg].
Returns:
Status return value:
  • 0: Success.

int sphdpa ( int  nfield,
double  lng0,
double  lat0,
const double  lng[],
const double  lat[],
double  dist[],
double  pa[] 
)

sphdpa() computes the angular distance and generalized position angle (see notes) from a "reference" point to a number of "field" points on the sphere. The points must be specified consistently in any spherical coordinate system.

Parameters:
[in] nfield The number of field points.
[in] lng0,lat0 Spherical coordinates of the reference point [deg].
[in] lng,lat Spherical coordinates of the field points [deg].
[out] dist,pa Angular distance and position angle [deg].
Returns:
Status return value:
  • 0: Success.
Notes:
sphdpa() uses sphs2x() to rotate coordinates so that the reference point is at the north pole of the new system with the north pole of the old system at zero longitude in the new. The Euler angles required by sphs2x() for this rotation are
      eul[0] = lng0;
      eul[1] = 90.0 - lat0;
      eul[2] = 0.0;

The angular distance and generalized position angle are readily obtained from the longitude and latitude of the field point in the new system.

It is evident that the coordinate system in which the two points are expressed is irrelevant to the determination of the angular separation between the points. However, this is not true of the generalized position angle.

The generalized position angle is here defined as the angle of intersection of the great circle containing the reference and field points with that containing the reference point and the pole. It has its normal meaning when the the reference and field points are specified in equatorial coordinates (right ascension and declination).

Interchanging the reference and field points changes the position angle in a non-intuitive way (because the sum of the angles of a spherical triangle normally exceeds $180^\circ$).

The position angle is undefined if the reference and field points are coincident or antipodal. This may be detected by checking for a distance of $0^\circ$ or $180^\circ$ (within rounding tolerance). sphdpa() will return an arbitrary position angle in such circumstances.


Generated on Mon Sep 14 17:03:55 2009 for WCSLIB 4.4 by  doxygen 1.5.1