1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
use crate*;
use crate*;
use crateUrsaASTROM;
use cratecp;
use cratepn;
use crateir;
/*
** - - - - - - - -
** e r a A p c s
** - - - - - - - -
**
** For an observer whose geocentric position and velocity are known,
** prepare star-independent astrometry parameters for transformations
** between ICRS and GCRS. The Earth ephemeris is supplied by the
** caller.
**
** The parameters produced by this function are required in the space
** motion, parallax, light deflection and aberration parts of the
** astrometric transformation chain.
**
** Given:
** date1 double TDB as a 2-part...
** date2 double ...Julian Date (Note 1)
** pv double[2][3] observer's geocentric pos/vel (m, m/s)
** ebpv double[2][3] Earth barycentric PV (au, au/day)
** ehp double[3] Earth heliocentric P (au)
**
** Returned:
** astrom eraASTROM* star-independent astrometry parameters:
** pmt double PM time interval (SSB, Julian years)
** eb double[3] SSB to observer (vector, au)
** eh double[3] Sun to observer (unit vector)
** em double distance from Sun to observer (au)
** v double[3] barycentric observer velocity (vector, c)
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
** bpn double[3][3] bias-precession-nutation matrix
** along double unchanged
** xpl double unchanged
** ypl double unchanged
** sphi double unchanged
** cphi double unchanged
** diurab double unchanged
** eral double unchanged
** refa double unchanged
** refb double unchanged
**
** Notes:
**
** 1) The TDB date date1+date2 is a Julian Date, apportioned in any
** convenient way between the two arguments. For example,
** JD(TDB)=2450123.7 could be expressed in any of these ways, among
** others:
**
** date1 date2
**
** 2450123.7 0.0 (JD method)
** 2451545.0 -1421.3 (J2000 method)
** 2400000.5 50123.2 (MJD method)
** 2450123.5 0.2 (date & time method)
**
** The JD method is the most natural and convenient to use in cases
** where the loss of several decimal digits of resolution is
** acceptable. The J2000 method is best matched to the way the
** argument is handled internally and will deliver the optimum
** resolution. The MJD method and the date & time methods are both
** good compromises between resolution and convenience. For most
** applications of this function the choice will not be at all
** critical.
**
** TT can be used instead of TDB without any significant impact on
** accuracy.
**
** 2) All the vectors are with respect to BCRS axes.
**
** 3) Providing separate arguments for (i) the observer's geocentric
** position and velocity and (ii) the Earth ephemeris is done for
** convenience in the geocentric, terrestrial and Earth orbit cases.
** For deep space applications it maybe more convenient to specify
** zero geocentric position and velocity and to supply the
** observer's position and velocity information directly instead of
** with respect to the Earth. However, note the different units:
** m and m/s for the geocentric vectors, au and au/day for the
** heliocentric and barycentric vectors.
**
** 4) In cases where the caller does not wish to provide the Earth
** ephemeris, the function eraApcs13 can be used instead of the
** present function. This computes the Earth ephemeris using the
** ERFA function eraEpv00.
**
** 5) This is one of several functions that inserts into the astrom
** structure star-independent parameters needed for the chain of
** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
**
** The various functions support different classes of observer and
** portions of the transformation chain:
**
** functions observer transformation
**
** eraApcg eraApcg13 geocentric ICRS <-> GCRS
** eraApci eraApci13 terrestrial ICRS <-> CIRS
** eraApco eraApco13 terrestrial ICRS <-> observed
** eraApcs eraApcs13 space ICRS <-> GCRS
** eraAper eraAper13 terrestrial update Earth rotation
** eraApio eraApio13 terrestrial CIRS <-> observed
**
** Those with names ending in "13" use contemporary ERFA models to
** compute the various ephemerides. The others accept ephemerides
** supplied by the caller.
**
** The transformation from ICRS to GCRS covers space motion,
** parallax, light deflection, and aberration. From GCRS to CIRS
** comprises frame bias and precession-nutation. From CIRS to
** observed takes account of Earth rotation, polar motion, diurnal
** aberration and parallax (unless subsumed into the ICRS <-> GCRS
** transformation), and atmospheric refraction.
**
** 6) The context structure astrom produced by this function is used by
** eraAtciq* and eraAticq*.
**
** Called:
** eraCp copy p-vector
** eraPm modulus of p-vector
** eraPn decompose p-vector into modulus and direction
** eraIr initialize r-matrix to identity
**
** This revision: 2021 February 24
**
** Copyright (C) 2013-2021, NumFOCUS Foundation.
** Derived, with permission, from the SOFA library. See notes at end of file.
*/