celes 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +32 -0
- data/README.md +179 -0
- data/Rakefile +1 -0
- data/celes.gemspec +22 -0
- data/ext/celes/a2af.c +120 -0
- data/ext/celes/a2tf.c +116 -0
- data/ext/celes/af2a.c +107 -0
- data/ext/celes/anp.c +82 -0
- data/ext/celes/anpm.c +82 -0
- data/ext/celes/bi00.c +116 -0
- data/ext/celes/bp00.c +173 -0
- data/ext/celes/bp06.c +136 -0
- data/ext/celes/bpn2xy.c +100 -0
- data/ext/celes/c2i00a.c +139 -0
- data/ext/celes/c2i00b.c +139 -0
- data/ext/celes/c2i06a.c +136 -0
- data/ext/celes/c2ibpn.c +142 -0
- data/ext/celes/c2ixy.c +131 -0
- data/ext/celes/c2ixys.c +123 -0
- data/ext/celes/c2s.c +96 -0
- data/ext/celes/c2t00a.c +154 -0
- data/ext/celes/c2t00b.c +150 -0
- data/ext/celes/c2t06a.c +152 -0
- data/ext/celes/c2tcio.c +122 -0
- data/ext/celes/c2teqx.c +122 -0
- data/ext/celes/c2tpe.c +167 -0
- data/ext/celes/c2txy.c +159 -0
- data/ext/celes/cal2jd.c +139 -0
- data/ext/celes/celes_core.c +2522 -0
- data/ext/celes/cp.c +80 -0
- data/ext/celes/cpv.c +82 -0
- data/ext/celes/cr.c +83 -0
- data/ext/celes/d2dtf.c +206 -0
- data/ext/celes/d2tf.c +160 -0
- data/ext/celes/dat.c +289 -0
- data/ext/celes/depend +25 -0
- data/ext/celes/dtdb.c +1213 -0
- data/ext/celes/dtf2d.c +196 -0
- data/ext/celes/ee00.c +128 -0
- data/ext/celes/ee00a.c +135 -0
- data/ext/celes/ee00b.c +141 -0
- data/ext/celes/ee06a.c +122 -0
- data/ext/celes/eect00.c +282 -0
- data/ext/celes/eform.c +147 -0
- data/ext/celes/eo06a.c +131 -0
- data/ext/celes/eors.c +108 -0
- data/ext/celes/epb.c +96 -0
- data/ext/celes/epb2jd.c +91 -0
- data/ext/celes/epj.c +93 -0
- data/ext/celes/epj2jd.c +91 -0
- data/ext/celes/epv00.c +2589 -0
- data/ext/celes/eqeq94.c +131 -0
- data/ext/celes/era00.c +136 -0
- data/ext/celes/extconf.rb +4 -0
- data/ext/celes/fad03.c +103 -0
- data/ext/celes/fae03.c +102 -0
- data/ext/celes/faf03.c +106 -0
- data/ext/celes/faju03.c +102 -0
- data/ext/celes/fal03.c +103 -0
- data/ext/celes/falp03.c +103 -0
- data/ext/celes/fama03.c +102 -0
- data/ext/celes/fame03.c +102 -0
- data/ext/celes/fane03.c +99 -0
- data/ext/celes/faom03.c +104 -0
- data/ext/celes/fapa03.c +103 -0
- data/ext/celes/fasa03.c +102 -0
- data/ext/celes/faur03.c +99 -0
- data/ext/celes/fave03.c +102 -0
- data/ext/celes/fk52h.c +143 -0
- data/ext/celes/fk5hip.c +126 -0
- data/ext/celes/fk5hz.c +160 -0
- data/ext/celes/fw2m.c +134 -0
- data/ext/celes/fw2xy.c +120 -0
- data/ext/celes/gc2gd.c +134 -0
- data/ext/celes/gc2gde.c +200 -0
- data/ext/celes/gd2gc.c +134 -0
- data/ext/celes/gd2gce.c +138 -0
- data/ext/celes/gmst00.c +145 -0
- data/ext/celes/gmst06.c +136 -0
- data/ext/celes/gmst82.c +151 -0
- data/ext/celes/gst00a.c +138 -0
- data/ext/celes/gst00b.c +146 -0
- data/ext/celes/gst06.c +140 -0
- data/ext/celes/gst06a.c +131 -0
- data/ext/celes/gst94.c +131 -0
- data/ext/celes/h2fk5.c +148 -0
- data/ext/celes/hfk5z.c +175 -0
- data/ext/celes/ir.c +83 -0
- data/ext/celes/jd2cal.c +155 -0
- data/ext/celes/jdcalf.c +161 -0
- data/ext/celes/num00a.c +121 -0
- data/ext/celes/num00b.c +121 -0
- data/ext/celes/num06a.c +125 -0
- data/ext/celes/numat.c +109 -0
- data/ext/celes/nut00a.c +2047 -0
- data/ext/celes/nut00b.c +372 -0
- data/ext/celes/nut06a.c +153 -0
- data/ext/celes/nut80.c +325 -0
- data/ext/celes/nutm80.c +117 -0
- data/ext/celes/obl06.c +118 -0
- data/ext/celes/obl80.c +118 -0
- data/ext/celes/p06e.c +321 -0
- data/ext/celes/p2pv.c +83 -0
- data/ext/celes/p2s.c +91 -0
- data/ext/celes/pap.c +139 -0
- data/ext/celes/pas.c +96 -0
- data/ext/celes/pb06.c +144 -0
- data/ext/celes/pdp.c +84 -0
- data/ext/celes/pfw06.c +165 -0
- data/ext/celes/plan94.c +514 -0
- data/ext/celes/pm.c +83 -0
- data/ext/celes/pmat00.c +118 -0
- data/ext/celes/pmat06.c +122 -0
- data/ext/celes/pmat76.c +141 -0
- data/ext/celes/pmp.c +85 -0
- data/ext/celes/pn.c +109 -0
- data/ext/celes/pn00.c +177 -0
- data/ext/celes/pn00a.c +162 -0
- data/ext/celes/pn00b.c +162 -0
- data/ext/celes/pn06.c +187 -0
- data/ext/celes/pn06a.c +152 -0
- data/ext/celes/pnm00a.c +121 -0
- data/ext/celes/pnm00b.c +121 -0
- data/ext/celes/pnm06a.c +124 -0
- data/ext/celes/pnm80.c +126 -0
- data/ext/celes/pom00.c +115 -0
- data/ext/celes/ppp.c +85 -0
- data/ext/celes/ppsp.c +94 -0
- data/ext/celes/pr00.c +142 -0
- data/ext/celes/prec76.c +148 -0
- data/ext/celes/pv2p.c +81 -0
- data/ext/celes/pv2s.c +144 -0
- data/ext/celes/pvdpv.c +102 -0
- data/ext/celes/pvm.c +86 -0
- data/ext/celes/pvmpv.c +87 -0
- data/ext/celes/pvppv.c +87 -0
- data/ext/celes/pvstar.c +207 -0
- data/ext/celes/pvu.c +93 -0
- data/ext/celes/pvup.c +88 -0
- data/ext/celes/pvxpv.c +107 -0
- data/ext/celes/pxp.c +94 -0
- data/ext/celes/rm2v.c +111 -0
- data/ext/celes/rv2m.c +118 -0
- data/ext/celes/rx.c +110 -0
- data/ext/celes/rxp.c +99 -0
- data/ext/celes/rxpv.c +86 -0
- data/ext/celes/rxr.c +99 -0
- data/ext/celes/ry.c +110 -0
- data/ext/celes/rz.c +110 -0
- data/ext/celes/s00.c +371 -0
- data/ext/celes/s00a.c +143 -0
- data/ext/celes/s00b.c +143 -0
- data/ext/celes/s06.c +368 -0
- data/ext/celes/s06a.c +145 -0
- data/ext/celes/s2c.c +85 -0
- data/ext/celes/s2p.c +88 -0
- data/ext/celes/s2pv.c +103 -0
- data/ext/celes/s2xpv.c +87 -0
- data/ext/celes/sepp.c +105 -0
- data/ext/celes/seps.c +93 -0
- data/ext/celes/sofa.h +379 -0
- data/ext/celes/sofam.h +155 -0
- data/ext/celes/sp00.c +118 -0
- data/ext/celes/starpm.c +205 -0
- data/ext/celes/starpv.c +264 -0
- data/ext/celes/sxp.c +84 -0
- data/ext/celes/sxpv.c +85 -0
- data/ext/celes/taitt.c +110 -0
- data/ext/celes/taiut1.c +112 -0
- data/ext/celes/taiutc.c +182 -0
- data/ext/celes/tcbtdb.c +132 -0
- data/ext/celes/tcgtt.c +109 -0
- data/ext/celes/tdbtcb.c +137 -0
- data/ext/celes/tdbtt.c +122 -0
- data/ext/celes/tf2a.c +107 -0
- data/ext/celes/tf2d.c +107 -0
- data/ext/celes/tr.c +93 -0
- data/ext/celes/trxp.c +93 -0
- data/ext/celes/trxpv.c +93 -0
- data/ext/celes/tttai.c +110 -0
- data/ext/celes/tttcg.c +112 -0
- data/ext/celes/tttdb.c +121 -0
- data/ext/celes/ttut1.c +110 -0
- data/ext/celes/ut1tai.c +111 -0
- data/ext/celes/ut1tt.c +110 -0
- data/ext/celes/ut1utc.c +193 -0
- data/ext/celes/utctai.c +163 -0
- data/ext/celes/utcut1.c +151 -0
- data/ext/celes/xy06.c +2758 -0
- data/ext/celes/xys00a.c +133 -0
- data/ext/celes/xys00b.c +133 -0
- data/ext/celes/xys06a.c +133 -0
- data/ext/celes/zp.c +77 -0
- data/ext/celes/zpv.c +79 -0
- data/ext/celes/zr.c +83 -0
- data/lib/celes.rb +6 -0
- data/lib/celes/version.rb +3 -0
- data/sofa_20120301.diff +31384 -0
- data/test/t_sofa.rb +8228 -0
- metadata +251 -0
data/ext/celes/dtf2d.c
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
#include <string.h>
|
|
3
|
+
|
|
4
|
+
int iauDtf2d(const char *scale, int iy, int im, int id,
|
|
5
|
+
int ihr, int imn, double sec, double *d1, double *d2)
|
|
6
|
+
/*
|
|
7
|
+
** - - - - - - - - -
|
|
8
|
+
** i a u D t f 2 d
|
|
9
|
+
** - - - - - - - - -
|
|
10
|
+
**
|
|
11
|
+
** Encode date and time fields into 2-part Julian Date (or in the case
|
|
12
|
+
** of UTC a quasi-JD form that includes special provision for leap
|
|
13
|
+
** seconds).
|
|
14
|
+
**
|
|
15
|
+
** Status: support function.
|
|
16
|
+
**
|
|
17
|
+
** Given:
|
|
18
|
+
** scale char[] time scale ID (Note 1)
|
|
19
|
+
** iy,im,id int year, month, day in Gregorian calendar (Note 2)
|
|
20
|
+
** ihr,imn int hour, minute
|
|
21
|
+
** sec double seconds
|
|
22
|
+
**
|
|
23
|
+
** Returned:
|
|
24
|
+
** d1,d2 double 2-part Julian Date (Notes 3,4)
|
|
25
|
+
**
|
|
26
|
+
** Returned (function value):
|
|
27
|
+
** int status: +3 = both of next two
|
|
28
|
+
** +2 = time is after end of day (Note 5)
|
|
29
|
+
** +1 = dubious year (Note 6)
|
|
30
|
+
** 0 = OK
|
|
31
|
+
** -1 = bad year
|
|
32
|
+
** -2 = bad month
|
|
33
|
+
** -3 = bad day
|
|
34
|
+
** -4 = bad hour
|
|
35
|
+
** -5 = bad minute
|
|
36
|
+
** -6 = bad second (<0)
|
|
37
|
+
**
|
|
38
|
+
** Notes:
|
|
39
|
+
**
|
|
40
|
+
** 1) scale identifies the time scale. Only the value "UTC" (in upper
|
|
41
|
+
** case) is significant, and enables handling of leap seconds (see
|
|
42
|
+
** Note 4).
|
|
43
|
+
**
|
|
44
|
+
** 2) For calendar conventions and limitations, see iauCal2jd.
|
|
45
|
+
**
|
|
46
|
+
** 3) The sum of the results, d1+d2, is Julian Date, where normally d1
|
|
47
|
+
** is the Julian Day Number and d2 is the fraction of a day. In the
|
|
48
|
+
** case of UTC, where the use of JD is problematical, special
|
|
49
|
+
** conventions apply: see the next note.
|
|
50
|
+
**
|
|
51
|
+
** 4) JD cannot unambiguously represent UTC during a leap second unless
|
|
52
|
+
** special measures are taken. The SOFA internal convention is that
|
|
53
|
+
** the quasi-JD day represents UTC days whether the length is 86399,
|
|
54
|
+
** 86400 or 86401 SI seconds.
|
|
55
|
+
**
|
|
56
|
+
** 5) The warning status "time is after end of day" usually means that
|
|
57
|
+
** the sec argument is greater than 60.0. However, in a day ending
|
|
58
|
+
** in a leap second the limit changes to 61.0 (or 59.0 in the case
|
|
59
|
+
** of a negative leap second).
|
|
60
|
+
**
|
|
61
|
+
** 6) The warning status "dubious year" flags UTCs that predate the
|
|
62
|
+
** introduction of the time scale and that are too far in the future
|
|
63
|
+
** to be trusted. See iauDat for further details.
|
|
64
|
+
**
|
|
65
|
+
** 7) Only in the case of continuous and regular time scales (TAI, TT,
|
|
66
|
+
** TCG, TCB and TDB) is the result d1+d2 a Julian Date, strictly
|
|
67
|
+
** speaking. In the other cases (UT1 and UTC) the result must be
|
|
68
|
+
** used with circumspection; in particular the difference between
|
|
69
|
+
** two such results cannot be interpreted as a precise time
|
|
70
|
+
** interval.
|
|
71
|
+
**
|
|
72
|
+
** Called:
|
|
73
|
+
** iauCal2jd Gregorian calendar to JD
|
|
74
|
+
** iauDat delta(AT) = TAI-UTC
|
|
75
|
+
** iauJd2cal JD to Gregorian calendar
|
|
76
|
+
**
|
|
77
|
+
** This revision: 2012 February 12
|
|
78
|
+
**
|
|
79
|
+
** Original version 2012-03-01
|
|
80
|
+
**
|
|
81
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
82
|
+
*/
|
|
83
|
+
{
|
|
84
|
+
int js, iy2, im2, id2;
|
|
85
|
+
double dj, w, day, seclim, dat1, dat2, ddt, time;
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
/* Today's Julian Day Number. */
|
|
89
|
+
js = iauCal2jd(iy, im, id, &dj, &w);
|
|
90
|
+
if ( js ) return js;
|
|
91
|
+
dj += w;
|
|
92
|
+
|
|
93
|
+
/* Day length and final minute length in seconds (provisional). */
|
|
94
|
+
day = DAYSEC;
|
|
95
|
+
seclim = 60;
|
|
96
|
+
|
|
97
|
+
/* Deal with the UTC leap second case. */
|
|
98
|
+
if ( ! strcmp(scale,"UTC") ) {
|
|
99
|
+
|
|
100
|
+
/* TAI-UTC today. */
|
|
101
|
+
js = iauDat(iy, im, id, 0.0, &dat1);
|
|
102
|
+
if ( js < 0 ) return js;
|
|
103
|
+
|
|
104
|
+
/* TAI-UTC tomorrow. */
|
|
105
|
+
js = iauJd2cal ( dj, 1.0, &iy2, &im2, &id2, &w);
|
|
106
|
+
if ( js ) return js;
|
|
107
|
+
js = iauDat(iy2, im2, id2, 0.0, &dat2);
|
|
108
|
+
if ( js < 0 ) return js;
|
|
109
|
+
|
|
110
|
+
/* The change in TAI-UTC (seconds). */
|
|
111
|
+
ddt = dat2 - dat1;
|
|
112
|
+
|
|
113
|
+
/* If leap second day, correct the day and final minute lengths. */
|
|
114
|
+
if ( fabs(ddt) > 0.5 ) {
|
|
115
|
+
day += ddt;
|
|
116
|
+
if ( ihr == 23 && imn == 59 ) seclim += ddt;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* Validate the time. */
|
|
121
|
+
if ( ihr >= 0 && ihr <= 23 ) {
|
|
122
|
+
if ( imn >= 0 && imn <= 59 ) {
|
|
123
|
+
if ( sec >= 0 ) {
|
|
124
|
+
if ( sec >= seclim ) {
|
|
125
|
+
js += 2;
|
|
126
|
+
}
|
|
127
|
+
} else {
|
|
128
|
+
js = -6;
|
|
129
|
+
}
|
|
130
|
+
} else {
|
|
131
|
+
js = -5;
|
|
132
|
+
}
|
|
133
|
+
} else {
|
|
134
|
+
js = -4;
|
|
135
|
+
}
|
|
136
|
+
if ( js < 0 ) return js;
|
|
137
|
+
|
|
138
|
+
/* The time in days. */
|
|
139
|
+
time = ( 60.0 * ( (double) ( 60 * ihr + imn ) ) + sec ) / day;
|
|
140
|
+
|
|
141
|
+
/* Return the date and time. */
|
|
142
|
+
*d1 = dj;
|
|
143
|
+
*d2 = time;
|
|
144
|
+
|
|
145
|
+
/* Status. */
|
|
146
|
+
return js;
|
|
147
|
+
|
|
148
|
+
/*----------------------------------------------------------------------
|
|
149
|
+
**
|
|
150
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
151
|
+
**
|
|
152
|
+
** This file is redistributed and relicensed in accordance with
|
|
153
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
154
|
+
**
|
|
155
|
+
** The original library is available from IAU Standards of
|
|
156
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
157
|
+
**
|
|
158
|
+
**
|
|
159
|
+
**
|
|
160
|
+
**
|
|
161
|
+
**
|
|
162
|
+
** Copyright (C) 2013, Naoki Arita
|
|
163
|
+
** All rights reserved.
|
|
164
|
+
**
|
|
165
|
+
** Redistribution and use in source and binary forms, with or without
|
|
166
|
+
** modification, are permitted provided that the following conditions
|
|
167
|
+
** are met:
|
|
168
|
+
**
|
|
169
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
170
|
+
** notice, this list of conditions and the following disclaimer.
|
|
171
|
+
**
|
|
172
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
173
|
+
** notice, this list of conditions and the following disclaimer in
|
|
174
|
+
** the documentation and/or other materials provided with the
|
|
175
|
+
** distribution.
|
|
176
|
+
**
|
|
177
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
178
|
+
** the International Astronomical Union nor the names of its
|
|
179
|
+
** contributors may be used to endorse or promote products derived
|
|
180
|
+
** from this software without specific prior written permission.
|
|
181
|
+
**
|
|
182
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
183
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
184
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
185
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
186
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
187
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
188
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
189
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
190
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
191
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
192
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
193
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
194
|
+
**
|
|
195
|
+
**--------------------------------------------------------------------*/
|
|
196
|
+
}
|
data/ext/celes/ee00.c
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
#include "sofa.h"
|
|
2
|
+
|
|
3
|
+
double iauEe00(double date1, double date2, double epsa, double dpsi)
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - - - -
|
|
6
|
+
** i a u E e 0 0
|
|
7
|
+
** - - - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** The equation of the equinoxes, compatible with IAU 2000 resolutions,
|
|
10
|
+
** given the nutation in longitude and the mean obliquity.
|
|
11
|
+
**
|
|
12
|
+
** Status: canonical model.
|
|
13
|
+
**
|
|
14
|
+
** Given:
|
|
15
|
+
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
|
16
|
+
** epsa double mean obliquity (Note 2)
|
|
17
|
+
** dpsi double nutation in longitude (Note 3)
|
|
18
|
+
**
|
|
19
|
+
** Returned (function value):
|
|
20
|
+
** double equation of the equinoxes (Note 4)
|
|
21
|
+
**
|
|
22
|
+
** Notes:
|
|
23
|
+
**
|
|
24
|
+
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
|
25
|
+
** convenient way between the two arguments. For example,
|
|
26
|
+
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
|
27
|
+
** among others:
|
|
28
|
+
**
|
|
29
|
+
** date1 date2
|
|
30
|
+
**
|
|
31
|
+
** 2450123.7 0.0 (JD method)
|
|
32
|
+
** 2451545.0 -1421.3 (J2000 method)
|
|
33
|
+
** 2400000.5 50123.2 (MJD method)
|
|
34
|
+
** 2450123.5 0.2 (date & time method)
|
|
35
|
+
**
|
|
36
|
+
** The JD method is the most natural and convenient to use in
|
|
37
|
+
** cases where the loss of several decimal digits of resolution
|
|
38
|
+
** is acceptable. The J2000 method is best matched to the way
|
|
39
|
+
** the argument is handled internally and will deliver the
|
|
40
|
+
** optimum resolution. The MJD method and the date & time methods
|
|
41
|
+
** are both good compromises between resolution and convenience.
|
|
42
|
+
**
|
|
43
|
+
** 2) The obliquity, in radians, is mean of date.
|
|
44
|
+
**
|
|
45
|
+
** 3) The result, which is in radians, operates in the following sense:
|
|
46
|
+
**
|
|
47
|
+
** Greenwich apparent ST = GMST + equation of the equinoxes
|
|
48
|
+
**
|
|
49
|
+
** 4) The result is compatible with the IAU 2000 resolutions. For
|
|
50
|
+
** further details, see IERS Conventions 2003 and Capitaine et al.
|
|
51
|
+
** (2002).
|
|
52
|
+
**
|
|
53
|
+
** Called:
|
|
54
|
+
** iauEect00 equation of the equinoxes complementary terms
|
|
55
|
+
**
|
|
56
|
+
** References:
|
|
57
|
+
**
|
|
58
|
+
** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to
|
|
59
|
+
** implement the IAU 2000 definition of UT1", Astronomy &
|
|
60
|
+
** Astrophysics, 406, 1135-1149 (2003)
|
|
61
|
+
**
|
|
62
|
+
** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
63
|
+
** IERS Technical Note No. 32, BKG (2004)
|
|
64
|
+
**
|
|
65
|
+
** This revision: 2008 May 16
|
|
66
|
+
**
|
|
67
|
+
** Original version 2012-03-01
|
|
68
|
+
**
|
|
69
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
70
|
+
*/
|
|
71
|
+
{
|
|
72
|
+
double ee;
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
/* Equation of the equinoxes. */
|
|
76
|
+
ee = dpsi * cos(epsa) + iauEect00(date1, date2);
|
|
77
|
+
|
|
78
|
+
return ee;
|
|
79
|
+
|
|
80
|
+
/*----------------------------------------------------------------------
|
|
81
|
+
**
|
|
82
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
83
|
+
**
|
|
84
|
+
** This file is redistributed and relicensed in accordance with
|
|
85
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
86
|
+
**
|
|
87
|
+
** The original library is available from IAU Standards of
|
|
88
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
89
|
+
**
|
|
90
|
+
**
|
|
91
|
+
**
|
|
92
|
+
**
|
|
93
|
+
**
|
|
94
|
+
** Copyright (C) 2013, Naoki Arita
|
|
95
|
+
** All rights reserved.
|
|
96
|
+
**
|
|
97
|
+
** Redistribution and use in source and binary forms, with or without
|
|
98
|
+
** modification, are permitted provided that the following conditions
|
|
99
|
+
** are met:
|
|
100
|
+
**
|
|
101
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
102
|
+
** notice, this list of conditions and the following disclaimer.
|
|
103
|
+
**
|
|
104
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
105
|
+
** notice, this list of conditions and the following disclaimer in
|
|
106
|
+
** the documentation and/or other materials provided with the
|
|
107
|
+
** distribution.
|
|
108
|
+
**
|
|
109
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
110
|
+
** the International Astronomical Union nor the names of its
|
|
111
|
+
** contributors may be used to endorse or promote products derived
|
|
112
|
+
** from this software without specific prior written permission.
|
|
113
|
+
**
|
|
114
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
115
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
116
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
117
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
118
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
119
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
120
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
121
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
122
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
123
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
124
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
125
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
126
|
+
**
|
|
127
|
+
**--------------------------------------------------------------------*/
|
|
128
|
+
}
|
data/ext/celes/ee00a.c
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
#include "sofa.h"
|
|
2
|
+
|
|
3
|
+
double iauEe00a(double date1, double date2)
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - - - - -
|
|
6
|
+
** i a u E e 0 0 a
|
|
7
|
+
** - - - - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** Equation of the equinoxes, compatible with IAU 2000 resolutions.
|
|
10
|
+
**
|
|
11
|
+
** Status: support function.
|
|
12
|
+
**
|
|
13
|
+
** Given:
|
|
14
|
+
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
|
15
|
+
**
|
|
16
|
+
** Returned (function value):
|
|
17
|
+
** double equation of the equinoxes (Note 2)
|
|
18
|
+
**
|
|
19
|
+
** Notes:
|
|
20
|
+
**
|
|
21
|
+
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
|
22
|
+
** convenient way between the two arguments. For example,
|
|
23
|
+
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
|
24
|
+
** among others:
|
|
25
|
+
**
|
|
26
|
+
** date1 date2
|
|
27
|
+
**
|
|
28
|
+
** 2450123.7 0.0 (JD method)
|
|
29
|
+
** 2451545.0 -1421.3 (J2000 method)
|
|
30
|
+
** 2400000.5 50123.2 (MJD method)
|
|
31
|
+
** 2450123.5 0.2 (date & time method)
|
|
32
|
+
**
|
|
33
|
+
** The JD method is the most natural and convenient to use in
|
|
34
|
+
** cases where the loss of several decimal digits of resolution
|
|
35
|
+
** is acceptable. The J2000 method is best matched to the way
|
|
36
|
+
** the argument is handled internally and will deliver the
|
|
37
|
+
** optimum resolution. The MJD method and the date & time methods
|
|
38
|
+
** are both good compromises between resolution and convenience.
|
|
39
|
+
**
|
|
40
|
+
** 2) The result, which is in radians, operates in the following sense:
|
|
41
|
+
**
|
|
42
|
+
** Greenwich apparent ST = GMST + equation of the equinoxes
|
|
43
|
+
**
|
|
44
|
+
** 3) The result is compatible with the IAU 2000 resolutions. For
|
|
45
|
+
** further details, see IERS Conventions 2003 and Capitaine et al.
|
|
46
|
+
** (2002).
|
|
47
|
+
**
|
|
48
|
+
** Called:
|
|
49
|
+
** iauPr00 IAU 2000 precession adjustments
|
|
50
|
+
** iauObl80 mean obliquity, IAU 1980
|
|
51
|
+
** iauNut00a nutation, IAU 2000A
|
|
52
|
+
** iauEe00 equation of the equinoxes, IAU 2000
|
|
53
|
+
**
|
|
54
|
+
** References:
|
|
55
|
+
**
|
|
56
|
+
** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to
|
|
57
|
+
** implement the IAU 2000 definition of UT1", Astronomy &
|
|
58
|
+
** Astrophysics, 406, 1135-1149 (2003).
|
|
59
|
+
**
|
|
60
|
+
** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
61
|
+
** IERS Technical Note No. 32, BKG (2004).
|
|
62
|
+
**
|
|
63
|
+
** This revision: 2008 May 16
|
|
64
|
+
**
|
|
65
|
+
** Original version 2012-03-01
|
|
66
|
+
**
|
|
67
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
68
|
+
*/
|
|
69
|
+
{
|
|
70
|
+
double dpsipr, depspr, epsa, dpsi, deps, ee;
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
/* IAU 2000 precession-rate adjustments. */
|
|
74
|
+
iauPr00(date1, date2, &dpsipr, &depspr);
|
|
75
|
+
|
|
76
|
+
/* Mean obliquity, consistent with IAU 2000 precession-nutation. */
|
|
77
|
+
epsa = iauObl80(date1, date2) + depspr;
|
|
78
|
+
|
|
79
|
+
/* Nutation in longitude. */
|
|
80
|
+
iauNut00a(date1, date2, &dpsi, &deps);
|
|
81
|
+
|
|
82
|
+
/* Equation of the equinoxes. */
|
|
83
|
+
ee = iauEe00(date1, date2, epsa, dpsi);
|
|
84
|
+
|
|
85
|
+
return ee;
|
|
86
|
+
|
|
87
|
+
/*----------------------------------------------------------------------
|
|
88
|
+
**
|
|
89
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
90
|
+
**
|
|
91
|
+
** This file is redistributed and relicensed in accordance with
|
|
92
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
93
|
+
**
|
|
94
|
+
** The original library is available from IAU Standards of
|
|
95
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
96
|
+
**
|
|
97
|
+
**
|
|
98
|
+
**
|
|
99
|
+
**
|
|
100
|
+
**
|
|
101
|
+
** Copyright (C) 2013, Naoki Arita
|
|
102
|
+
** All rights reserved.
|
|
103
|
+
**
|
|
104
|
+
** Redistribution and use in source and binary forms, with or without
|
|
105
|
+
** modification, are permitted provided that the following conditions
|
|
106
|
+
** are met:
|
|
107
|
+
**
|
|
108
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
109
|
+
** notice, this list of conditions and the following disclaimer.
|
|
110
|
+
**
|
|
111
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
112
|
+
** notice, this list of conditions and the following disclaimer in
|
|
113
|
+
** the documentation and/or other materials provided with the
|
|
114
|
+
** distribution.
|
|
115
|
+
**
|
|
116
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
117
|
+
** the International Astronomical Union nor the names of its
|
|
118
|
+
** contributors may be used to endorse or promote products derived
|
|
119
|
+
** from this software without specific prior written permission.
|
|
120
|
+
**
|
|
121
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
122
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
123
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
124
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
125
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
126
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
127
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
128
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
129
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
130
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
131
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
132
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
133
|
+
**
|
|
134
|
+
**--------------------------------------------------------------------*/
|
|
135
|
+
}
|