| 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 | }
|
|---|