1 | #include <stdlib.h>
|
---|
2 | #include <math.h>
|
---|
3 | #include <math.h>
|
---|
4 |
|
---|
5 | #include "astro.h"
|
---|
6 |
|
---|
7 | /* given geocentric time jd and coords of a distant object at ra/dec (J2000),
|
---|
8 | * find the difference in time between light arriving at earth vs the sun.
|
---|
9 | * *hcp must be subtracted from geocentric jd to get heliocentric jd.
|
---|
10 | * From RLM Oct 12, 1995.
|
---|
11 | */
|
---|
12 | void
|
---|
13 | heliocorr (double jd, double ra, double dec, double *hcp)
|
---|
14 | {
|
---|
15 | double e; /* obliquity of ecliptic */
|
---|
16 | double n; /* day number */
|
---|
17 | double g; /* solar mean anomaly */
|
---|
18 | double L; /* solar ecliptic longitude */
|
---|
19 | double l; /* mean solar ecliptic longitude */
|
---|
20 | double R; /* sun distance, AU */
|
---|
21 | double X, Y; /* equatorial rectangular solar coords */
|
---|
22 | double cdec, sdec;
|
---|
23 | double cra, sra;
|
---|
24 |
|
---|
25 | /* following algorithm really wants EOD */
|
---|
26 | precess (J2000, jd - MJD0, &ra, &dec);
|
---|
27 |
|
---|
28 | cdec = cos(dec);
|
---|
29 | sdec = sin(dec);
|
---|
30 | cra = cos(ra);
|
---|
31 | sra = sin(ra);
|
---|
32 |
|
---|
33 | n = jd - 2451545.0; /* use epoch 2000 */
|
---|
34 | e = degrad(23.439 - 0.0000004*n);
|
---|
35 | g = degrad(357.528) + degrad(0.9856003)*n;
|
---|
36 | L = degrad(280.461) + degrad(0.9856474)*n;
|
---|
37 | l = L + degrad(1.915)*sin(g) + degrad(0.02)*sin(2.0*g);
|
---|
38 | R = 1.00014 - 0.01671*cos(g) - 0.00014*cos(2.0*g);
|
---|
39 | X = R*cos(l);
|
---|
40 | Y = R*cos(e)*sin(l);
|
---|
41 |
|
---|
42 | #if 0
|
---|
43 | printf ("n=%g g=%g L=%g l=%g R=%g X=%g Y=%g\n",
|
---|
44 | n, raddeg(g), raddeg(L), raddeg(l), R, X, Y);
|
---|
45 | #endif
|
---|
46 |
|
---|
47 | *hcp = 0.0057755 * (cdec*cra*X + (cdec*sra + tan(e)*sdec)*Y);
|
---|
48 | }
|
---|
49 |
|
---|
50 | /* For RCS Only -- Do Not Edit */
|
---|
51 | static char *rcsid[2] = {(char *)rcsid, "@(#) $RCSfile: helio.c,v $ $Date: 2005-01-17 10:13:05 $ $Revision: 1.4 $ $Name: not supported by cvs2svn $"};
|
---|