Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include "astro.h"
2
 
3
void
4
helio(void)
5
{
6
/*
7
 *	uses lambda, beta, rad, motion
8
 *	sets alpha, delta, rp
9
 */
10
 
11
/*
12
 *	helio converts from ecliptic heliocentric coordinates
13
 *	referred to the mean equinox of date
14
 *	to equatorial geocentric coordinates referred to
15
 *	the true equator and equinox
16
 */
17
 
18
	double xmp, ymp, zmp;
19
	double beta2;
20
 
21
/*
22
 *	compute geocentric distance of object and
23
 *	compute light-time correction (i.i. planetary aberration)
24
 */
25
 
26
	xmp = rad*cos(beta)*cos(lambda);
27
	ymp = rad*cos(beta)*sin(lambda);
28
	zmp = rad*sin(beta);
29
	rp = sqrt((xmp+xms)*(xmp+xms) +
30
		(ymp+yms)*(ymp+yms) +
31
		(zmp+zms)*(zmp+zms));
32
	lmb2 = lambda - .0057756e0*rp*motion;
33
 
34
	xmp = rad*cos(beta)*cos(lmb2);
35
	ymp = rad*cos(beta)*sin(lmb2);
36
	zmp = rad*sin(beta);
37
 
38
/*
39
 *	compute annual parallax from the position of the sun
40
 */
41
 
42
	xmp += xms;
43
	ymp += yms;
44
	zmp += zms;
45
	rp = sqrt(xmp*xmp + ymp*ymp + zmp*zmp);
46
 
47
/*
48
 *	compute annual (i.e. stellar) aberration
49
 *	from the orbital velocity of the earth
50
 *	(by an incorrect method)
51
 */
52
 
53
	xmp -= xdot*rp;
54
	ymp -= ydot*rp;
55
	zmp -= zdot*rp;
56
 
57
/*
58
 *	perform the nutation and so convert from the mean
59
 *	equator and equinox to the true
60
 */
61
 
62
	lmb2 = atan2(ymp, xmp);
63
	beta2 = atan2(zmp, sqrt(xmp*xmp+ymp*ymp));
64
	lmb2 += phi;
65
 
66
/*
67
 *	change to equatorial coordinates
68
 */
69
 
70
	xmp = rp*cos(lmb2)*cos(beta2);
71
	ymp = rp*(sin(lmb2)*cos(beta2)*cos(tobliq) - sin(tobliq)*sin(beta2));
72
	zmp = rp*(sin(lmb2)*cos(beta2)*sin(tobliq) + cos(tobliq)*sin(beta2));
73
 
74
	alpha = atan2(ymp, xmp);
75
	delta = atan2(zmp, sqrt(xmp*xmp+ymp*ymp));
76
 
77
	hp = 8.794e0*radsec/rp;
78
	semi /= rp;
79
	if(rad > 0 && rad < 2.e5)
80
		mag += 2.17*log(rad*rp);
81
}