aboutsummaryrefslogtreecommitdiff
path: root/noao/astcat/src/awcs/trsteq.x
blob: 5fa5ea8efe9074e15fb9d3325cb11329bed92be6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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