7
Ephemerides for Triton and Nereid are described in Jacobson,
8
Astron. Astrophys. 231, 241-250 (1990)
15
nepsat(const double jd, const body b, double &X, double &Y, double &Z)
17
double td; // Julian days from reference date
18
double ty; // Julian years from reference date
19
double tc; // Julian centuries from reference date
21
double a; // semimajor axis
22
double L; // mean longitude
23
double e; // eccentricity
24
double w; // longitude of periapse
25
double i; // inclination of orbit
26
double o; // longitude of ascending node
28
double ma; // mean anomaly
30
double N; // node of the orbital reference plane on the
31
// Earth equator B1950
32
double J; // inclination of orbital reference plane with
33
// respect to the Earth equator B1950
43
L = (49.85334766 + 61.25726751 * td) * deg_to_rad;
45
i = 157.6852321 * deg_to_rad;
46
o = (151.7973992 + 0.5430763965 * ty) * deg_to_rad;
48
w = (236.7318362 + 0.5295275852 * ty) * deg_to_rad;
54
// inclination and node of the invariable plane on the Earth
56
J = (90 - 42.51071244) * deg_to_rad;
57
N = (90 + 298.3065940) * deg_to_rad;
65
L = (251.14984688 + 0.9996465329 * td) * deg_to_rad;
67
i = 6.748231850 * deg_to_rad;
68
o = (315.9958928 - 3.650272562 * tc) * deg_to_rad;
70
w = (251.7242240 + 0.8696048083 * tc) * deg_to_rad;
76
// inclination and node of Neptune's orbit on the Earth
78
J = 22.313 * deg_to_rad;
79
N = 3.522 * deg_to_rad;
82
xpExit("Unknown Neptune satellite\n", __FILE__, __LINE__);
85
double E = kepler(e, ma);
87
// convert semi major axis from km to AU
90
// rectangular coordinates on the orbit plane, x-axis is toward
93
Y = a * sqrt(1 - e*e) * sin(E);
96
// rotate towards ascending node of the orbit
99
// rotate towards orbital reference plane
100
rotateX(X, Y, Z, -i);
102
// rotate towards ascending node of the orbital reference plane on
103
// the Earth equator B1950
104
rotateZ(X, Y, Z, -o);
106
// rotate towards Earth equator B1950
107
rotateX(X, Y, Z, -J);
109
// rotate to vernal equinox
110
rotateZ(X, Y, Z, -N);
113
precessB1950J2000(X, Y, Z);