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. |
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.
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.
[in] | eul | Euler angles for the transformation:
|
[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]. |
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.
[in] | eul | Euler angles for the transformation:
|
[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]. |
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.
[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]. |
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 ).
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 or
(within rounding tolerance). sphdpa() will return an arbitrary position angle in such circumstances.