diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
commit | fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch) | |
tree | bdda434976bc09c864f2e4fa6f16ba1952b1e555 /noao/astcat/src/awcs/trsteq.x | |
download | iraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz |
Initial commit
Diffstat (limited to 'noao/astcat/src/awcs/trsteq.x')
-rw-r--r-- | noao/astcat/src/awcs/trsteq.x | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/noao/astcat/src/awcs/trsteq.x b/noao/astcat/src/awcs/trsteq.x new file mode 100644 index 00000000..5fa5ea8e --- /dev/null +++ b/noao/astcat/src/awcs/trsteq.x @@ -0,0 +1,64 @@ +# This routine was copied from stsdas$pkg/asnalysis/gasp/gasplib/. See +# stsdas$copyright.stsdas for copyright restrictions. +# +include <math.h> + +define ARCSEC_PER_RADIAN 206264.8062470964d0 + +# TRSTEQ -- Procedure to compute the RA and DEC from the standard coordinates +# given the plate centre. + +procedure trsteq (plate_centre_ra, plate_centre_dec, xi, eta, ra, dec) + +double plate_centre_ra #I plate center ra (radians) +double plate_centre_dec #I plate center dec (radians) +double xi #I xi standard coordinate (arcsec) +double eta #I eta standard coordinate (arcsec) +double ra #O ra (radians) +double dec #O dec (radians) + +#double object_xi, object_eta, numerator, denominator +double object_xi, object_eta, x, y, z + +begin + # Convert from arcseconds to radians. + object_xi = xi/ARCSEC_PER_RADIAN + object_eta = eta/ARCSEC_PER_RADIAN + + # Convert to RA and Dec + x = cos (plate_centre_dec) - object_eta * sin (plate_centre_dec) + y = object_xi + z = sin (plate_centre_dec) + object_eta * cos (plate_centre_dec) + + if (x == 0.0d0 && y == 0.0d0) + ra = 0.0d0 + else + ra = atan2 (y, x) + dec = atan2 (z, sqrt (x * x + y * y)) + ra = ra + plate_centre_ra + if (ra < 0.0d0) + ra = ra + DTWOPI + else if (ra > DTWOPI) + ra = ra - DTWOPI + +## numerator = object_xi / dcos(plate_centre_dec) +# numerator = object_xi +# +## denominator = 1.0d0 - object_eta * dtan(plate_centre_dec) +# denominator = cos (plate_centre_dec) - +# object_eta * sin (plate_centre_dec) +# ra = atan2 (numerator,denominator) + plate_centre_ra +# if (ra < 0.0d0) +# ra = ra + DTWOPI +# else if (ra > DTWOPI) +# ra = ra - DTWOPI +# +## numerator = dcos(ra-plate_centre_ra) * +## (object_eta + dtan(plate_centre_dec)) +# numerator = cos (ra - plate_centre_ra) * +# (cos (plate_centre_dec) * object_eta + sin (plate_centre_dec)) +## denominator = 1.0d0 - object_eta * dtan(plate_centre_dec) +# denominator = cos (plate_centre_dec) - object_eta * +# sin (plate_centre_dec) +# dec = atan2 (numerator, denominator) +end |