| 1 | #include "slalib.h"
|
|---|
| 2 | #include "slamac.h"
|
|---|
| 3 | void slaFk52h ( double r5, double d5, double dr5, double dd5,
|
|---|
| 4 | double *rh, double *dh, double *drh, double *ddh )
|
|---|
| 5 | /*
|
|---|
| 6 | ** - - - - - - - - -
|
|---|
| 7 | ** s l a F k 5 2 h
|
|---|
| 8 | ** - - - - - - - - -
|
|---|
| 9 | **
|
|---|
| 10 | ** Transform FK5 (J2000) star data into the Hipparcos frame.
|
|---|
| 11 | **
|
|---|
| 12 | ** (double precision)
|
|---|
| 13 | **
|
|---|
| 14 | ** This routine transforms FK5 star positions and proper motions
|
|---|
| 15 | ** into the frame of the Hipparcos catalogue.
|
|---|
| 16 | **
|
|---|
| 17 | ** Given (all FK5, equinox J2000, epoch J2000):
|
|---|
| 18 | ** r5 double RA (radians)
|
|---|
| 19 | ** d5 double Dec (radians)
|
|---|
| 20 | ** dr5 double proper motion in RA (dRA/dt, rad/Jyear)
|
|---|
| 21 | ** dd5 double proper motion in Dec (dDec/dt, rad/Jyear)
|
|---|
| 22 | **
|
|---|
| 23 | ** Returned (all Hipparcos, epoch J2000):
|
|---|
| 24 | ** rh double RA (radians)
|
|---|
| 25 | ** dh double Dec (radians)
|
|---|
| 26 | ** drh double proper motion in RA (dRA/dt, rad/Jyear)
|
|---|
| 27 | ** ddh double proper motion in Dec (dDec/dt, rad/Jyear)
|
|---|
| 28 | **
|
|---|
| 29 | ** Called: slaDs2c6, slaDav2m, slaDmxv, slaDvxv, slaDc62s,
|
|---|
| 30 | ** slaDranrm
|
|---|
| 31 | **
|
|---|
| 32 | ** Notes:
|
|---|
| 33 | **
|
|---|
| 34 | ** 1) The proper motions in RA are dRA/dt rather than
|
|---|
| 35 | ** cos(Dec)*dRA/dt, and are per year rather than per century.
|
|---|
| 36 | **
|
|---|
| 37 | ** 2) The FK5 to Hipparcos transformation consists of a pure
|
|---|
| 38 | ** rotation and spin; zonal errors in the FK5 catalogue are
|
|---|
| 39 | ** not taken into account.
|
|---|
| 40 | **
|
|---|
| 41 | ** 3) The published orientation and spin components are interpreted
|
|---|
| 42 | ** as "axial vectors". An axial vector points at the pole of the
|
|---|
| 43 | ** rotation and its length is the amount of rotation in radians.
|
|---|
| 44 | **
|
|---|
| 45 | ** 4) See also slaH2fk5, slaFk5hz, slaHfk5z.
|
|---|
| 46 | **
|
|---|
| 47 | ** Reference:
|
|---|
| 48 | **
|
|---|
| 49 | ** M.Feissel & F.Mignard, Astron. Astrophys. 331, L33-L36 (1998).
|
|---|
| 50 | **
|
|---|
| 51 | ** Last revision: 22 June 1999
|
|---|
| 52 | **
|
|---|
| 53 | ** Copyright P.T.Wallace. All rights reserved.
|
|---|
| 54 | */
|
|---|
| 55 |
|
|---|
| 56 | #define AS2R 0.484813681109535994e-5 /* arcseconds to radians */
|
|---|
| 57 |
|
|---|
| 58 | {
|
|---|
| 59 | /* FK5 to Hipparcos orientation and spin (radians, radians/year) */
|
|---|
| 60 | static double ortn[3] = { -19.9e-3 * AS2R,
|
|---|
| 61 | -9.1e-3 * AS2R,
|
|---|
| 62 | 22.9e-3 * AS2R },
|
|---|
| 63 | s5[3] = { -0.30e-3 * AS2R,
|
|---|
| 64 | 0.60e-3 * AS2R,
|
|---|
| 65 | 0.70e-3 * AS2R };
|
|---|
| 66 |
|
|---|
| 67 | double pv5[6], r5h[3][3], vv[3], pvh[6], w, r, v;
|
|---|
| 68 | int i;
|
|---|
| 69 |
|
|---|
| 70 |
|
|---|
| 71 | /* FK5 barycentric position/velocity 6-vector (normalized). */
|
|---|
| 72 | slaDs2c6 ( r5, d5, 1.0, dr5, dd5, 0.0, pv5 );
|
|---|
| 73 |
|
|---|
| 74 | /* FK5 to Hipparcos orientation matrix. */
|
|---|
| 75 | slaDav2m ( ortn, r5h );
|
|---|
| 76 |
|
|---|
| 77 | /* Rotate & spin the 6-vector into the Hipparcos frame. */
|
|---|
| 78 | slaDmxv ( r5h, pv5, pvh );
|
|---|
| 79 | slaDvxv ( pv5, s5, vv );
|
|---|
| 80 | for ( i = 0; i < 3; i++ ) {
|
|---|
| 81 | vv [ i ] = pv5 [ i + 3 ] + vv [ i ];
|
|---|
| 82 | }
|
|---|
| 83 | slaDmxv ( r5h, vv, pvh + 3 );
|
|---|
| 84 |
|
|---|
| 85 | /* Hipparcos 6-vector to spherical. */
|
|---|
| 86 | slaDc62s ( pvh, &w, dh, &r, drh, ddh, &v );
|
|---|
| 87 | *rh = slaDranrm ( w );
|
|---|
| 88 | }
|
|---|