1 | #include "slalib.h"
|
---|
2 | #include "slamac.h"
|
---|
3 | void slaMappa ( double eq, double date, double amprms[21] )
|
---|
4 | /*
|
---|
5 | ** - - - - - - - - -
|
---|
6 | ** s l a M a p p a
|
---|
7 | ** - - - - - - - - -
|
---|
8 | **
|
---|
9 | ** Compute star-independent parameters in preparation for
|
---|
10 | ** conversions between mean place and geocentric apparent place.
|
---|
11 | **
|
---|
12 | ** The parameters produced by this routine are required in the
|
---|
13 | ** parallax, light deflection, aberration, and precession/nutation
|
---|
14 | ** parts of the mean/apparent transformations.
|
---|
15 | **
|
---|
16 | ** The reference frames and timescales used are post IAU 1976.
|
---|
17 | **
|
---|
18 | ** Given:
|
---|
19 | ** eq double epoch of mean equinox to be used (Julian)
|
---|
20 | ** date double TDB (JD-2400000.5)
|
---|
21 | **
|
---|
22 | ** Returned:
|
---|
23 | ** amprms double[21] star-independent mean-to-apparent parameters:
|
---|
24 | **
|
---|
25 | ** (0) time interval for proper motion (Julian years)
|
---|
26 | ** (1-3) barycentric position of the Earth (AU)
|
---|
27 | ** (4-6) heliocentric direction of the Earth (unit vector)
|
---|
28 | ** (7) (grav rad Sun)*2/(Sun-Earth distance)
|
---|
29 | ** (8-10) abv: barycentric Earth velocity in units of c
|
---|
30 | ** (11) sqrt(1-v**2) where v=modulus(abv)
|
---|
31 | ** (12-20) precession/nutation (3,3) matrix
|
---|
32 | **
|
---|
33 | ** References:
|
---|
34 | ** 1984 Astronomical Almanac, pp B39-B41.
|
---|
35 | ** (also Lederle & Schwan, Astron. Astrophys. 134, 1-6, 1984)
|
---|
36 | **
|
---|
37 | ** Notes:
|
---|
38 | **
|
---|
39 | ** 1) For date, the distinction between the required TDB and TT
|
---|
40 | ** is always negligible. Moreover, for all but the most
|
---|
41 | ** critical applications UTC is adequate.
|
---|
42 | **
|
---|
43 | ** 2) The accuracy of the routines using the parameters amprms is
|
---|
44 | ** limited by the routine slaEvp, used here to compute the
|
---|
45 | ** Earth position and velocity by the methods of Stumpff.
|
---|
46 | ** The maximum error in the resulting aberration corrections is
|
---|
47 | ** about 0.3 milliarcsecond.
|
---|
48 | **
|
---|
49 | ** 3) The vectors amprms(1-3) and amprms(4-6) are referred to
|
---|
50 | ** the mean equinox and equator of epoch eq.
|
---|
51 | **
|
---|
52 | ** 4) The parameters amprms produced by this routine are used by
|
---|
53 | ** slaMapqk and slaMapqkz.
|
---|
54 | **
|
---|
55 | ** Called:
|
---|
56 | ** slaEpj, slaEvp, slaDvn, slaPrenut
|
---|
57 | **
|
---|
58 | ** Last revision: 26 September 1998
|
---|
59 | **
|
---|
60 | ** Copyright P.T.Wallace. All rights reserved.
|
---|
61 | */
|
---|
62 |
|
---|
63 | #define CR 499.004782 /* Light time for 1 AU (sec) */
|
---|
64 | #define GR2 1.974126e-8 /* Gravitational radius of the Sun x 2:
|
---|
65 | (2*mu/c**2, au) */
|
---|
66 | {
|
---|
67 | int i;
|
---|
68 |
|
---|
69 | double ebd[3], ehd[3], eh[3], e, vn[3], vm;
|
---|
70 |
|
---|
71 | /* Time interval for proper motion correction */
|
---|
72 | amprms[0] = slaEpj ( date ) - eq;
|
---|
73 |
|
---|
74 | /* Get Earth barycentric and heliocentric position and velocity */
|
---|
75 | slaEvp ( date, eq, ebd, &rms[1], ehd, eh );
|
---|
76 |
|
---|
77 | /* Heliocentric direction of Earth (normalized) and modulus */
|
---|
78 | slaDvn ( eh, &rms[4], &e );
|
---|
79 |
|
---|
80 | /* Light deflection parameter */
|
---|
81 | amprms[7] = GR2 / e;
|
---|
82 |
|
---|
83 | /* Aberration parameters */
|
---|
84 | for ( i = 0; i < 3; i++ ) {
|
---|
85 | amprms[i+8] = ebd[i] * CR;
|
---|
86 | }
|
---|
87 | slaDvn ( &rms[8], vn, &vm );
|
---|
88 | amprms[11] = sqrt ( 1.0 - vm * vm );
|
---|
89 |
|
---|
90 | /* Precession/nutation matrix */
|
---|
91 | slaPrenut ( eq, date, (double(*)[3]) &rms[12] );
|
---|
92 | }
|
---|