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/taiut1.c
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
int iauTaiut1(double tai1, double tai2, double dta,
|
|
4
|
+
double *ut11, double *ut12)
|
|
5
|
+
/*
|
|
6
|
+
** - - - - - - - - - -
|
|
7
|
+
** i a u T a i u t 1
|
|
8
|
+
** - - - - - - - - - -
|
|
9
|
+
**
|
|
10
|
+
** Time scale transformation: International Atomic Time, TAI, to
|
|
11
|
+
** Universal Time, UT1.
|
|
12
|
+
**
|
|
13
|
+
** Status: canonical.
|
|
14
|
+
**
|
|
15
|
+
** Given:
|
|
16
|
+
** tai1,tai2 double TAI as a 2-part Julian Date
|
|
17
|
+
** dta double UT1-TAI in seconds
|
|
18
|
+
**
|
|
19
|
+
** Returned:
|
|
20
|
+
** ut11,ut12 double UT1 as a 2-part Julian Date
|
|
21
|
+
**
|
|
22
|
+
** Returned (function value):
|
|
23
|
+
** int status: 0 = OK
|
|
24
|
+
**
|
|
25
|
+
** Notes:
|
|
26
|
+
**
|
|
27
|
+
** 1) tai1+tai2 is Julian Date, apportioned in any convenient way
|
|
28
|
+
** between the two arguments, for example where tai1 is the Julian
|
|
29
|
+
** Day Number and tai2 is the fraction of a day. The returned
|
|
30
|
+
** UT11,UT12 follow suit.
|
|
31
|
+
**
|
|
32
|
+
** 2) The argument dta, i.e. UT1-TAI, is an observed quantity, and is
|
|
33
|
+
** available from IERS tabulations.
|
|
34
|
+
**
|
|
35
|
+
** Reference:
|
|
36
|
+
**
|
|
37
|
+
** Explanatory Supplement to the Astronomical Almanac,
|
|
38
|
+
** P. Kenneth Seidelmann (ed), University Science Books (1992)
|
|
39
|
+
**
|
|
40
|
+
** This revision: 2011 May 14
|
|
41
|
+
**
|
|
42
|
+
** Original version 2012-03-01
|
|
43
|
+
**
|
|
44
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
45
|
+
**
|
|
46
|
+
*/
|
|
47
|
+
{
|
|
48
|
+
double dtad;
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
/* Result, safeguarding precision. */
|
|
52
|
+
dtad = dta / DAYSEC;
|
|
53
|
+
if ( tai1 > tai2 ) {
|
|
54
|
+
*ut11 = tai1;
|
|
55
|
+
*ut12 = tai2 + dtad;
|
|
56
|
+
} else {
|
|
57
|
+
*ut11 = tai1 + dtad;
|
|
58
|
+
*ut12 = tai2;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Status (always OK). */
|
|
62
|
+
return 0;
|
|
63
|
+
|
|
64
|
+
/*----------------------------------------------------------------------
|
|
65
|
+
**
|
|
66
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
67
|
+
**
|
|
68
|
+
** This file is redistributed and relicensed in accordance with
|
|
69
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
70
|
+
**
|
|
71
|
+
** The original library is available from IAU Standards of
|
|
72
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
73
|
+
**
|
|
74
|
+
**
|
|
75
|
+
**
|
|
76
|
+
**
|
|
77
|
+
**
|
|
78
|
+
** Copyright (C) 2013, Naoki Arita
|
|
79
|
+
** All rights reserved.
|
|
80
|
+
**
|
|
81
|
+
** Redistribution and use in source and binary forms, with or without
|
|
82
|
+
** modification, are permitted provided that the following conditions
|
|
83
|
+
** are met:
|
|
84
|
+
**
|
|
85
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
86
|
+
** notice, this list of conditions and the following disclaimer.
|
|
87
|
+
**
|
|
88
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
89
|
+
** notice, this list of conditions and the following disclaimer in
|
|
90
|
+
** the documentation and/or other materials provided with the
|
|
91
|
+
** distribution.
|
|
92
|
+
**
|
|
93
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
94
|
+
** the International Astronomical Union nor the names of its
|
|
95
|
+
** contributors may be used to endorse or promote products derived
|
|
96
|
+
** from this software without specific prior written permission.
|
|
97
|
+
**
|
|
98
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
99
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
100
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
101
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
102
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
103
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
104
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
105
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
106
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
107
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
108
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
109
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
110
|
+
**
|
|
111
|
+
**--------------------------------------------------------------------*/
|
|
112
|
+
}
|
data/ext/celes/taiutc.c
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
int iauTaiutc(double tai1, double tai2, double *utc1, double *utc2)
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - - - - - -
|
|
6
|
+
** i a u T a i u t c
|
|
7
|
+
** - - - - - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** Time scale transformation: International Atomic Time, TAI, to
|
|
10
|
+
** Coordinated Universal Time, UTC.
|
|
11
|
+
**
|
|
12
|
+
** Status: canonical.
|
|
13
|
+
**
|
|
14
|
+
** Given:
|
|
15
|
+
** tai1,tai2 double TAI as a 2-part Julian Date (Note 1)
|
|
16
|
+
**
|
|
17
|
+
** Returned:
|
|
18
|
+
** utc1,utc2 double UTC as a 2-part quasi Julian Date (Notes 1-3)
|
|
19
|
+
**
|
|
20
|
+
** Returned (function value):
|
|
21
|
+
** int status: +1 = dubious year (Note 4)
|
|
22
|
+
** 0 = OK
|
|
23
|
+
** -1 = unacceptable date
|
|
24
|
+
**
|
|
25
|
+
** Notes:
|
|
26
|
+
**
|
|
27
|
+
** 1) tai1+tai2 is Julian Date, apportioned in any convenient way
|
|
28
|
+
** between the two arguments, for example where tai1 is the Julian
|
|
29
|
+
** Day Number and tai2 is the fraction of a day. The returned utc1
|
|
30
|
+
** and utc2 form an analogous pair, except that a special convention
|
|
31
|
+
** is used, to deal with the problem of leap seconds - see the next
|
|
32
|
+
** note.
|
|
33
|
+
**
|
|
34
|
+
** 2) JD cannot unambiguously represent UTC during a leap second unless
|
|
35
|
+
** special measures are taken. The convention in the present
|
|
36
|
+
** function is that the JD day represents UTC days whether the
|
|
37
|
+
** length is 86399, 86400 or 86401 SI seconds.
|
|
38
|
+
**
|
|
39
|
+
** 3) The function iauD2dtf can be used to transform the UTC quasi-JD
|
|
40
|
+
** into calendar date and clock time, including UTC leap second
|
|
41
|
+
** handling.
|
|
42
|
+
**
|
|
43
|
+
** 4) The warning status "dubious year" flags UTCs that predate the
|
|
44
|
+
** introduction of the time scale and that are too far in the future
|
|
45
|
+
** to be trusted. See iauDat for further details.
|
|
46
|
+
**
|
|
47
|
+
** Called:
|
|
48
|
+
** iauJd2cal JD to Gregorian calendar
|
|
49
|
+
** iauDat delta(AT) = TAI-UTC
|
|
50
|
+
** iauCal2jd Gregorian calendar to JD
|
|
51
|
+
**
|
|
52
|
+
** References:
|
|
53
|
+
**
|
|
54
|
+
** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
55
|
+
** IERS Technical Note No. 32, BKG (2004)
|
|
56
|
+
**
|
|
57
|
+
** Explanatory Supplement to the Astronomical Almanac,
|
|
58
|
+
** P. Kenneth Seidelmann (ed), University Science Books (1992)
|
|
59
|
+
**
|
|
60
|
+
** This revision: 2011 May 14
|
|
61
|
+
**
|
|
62
|
+
** Original version 2012-03-01
|
|
63
|
+
**
|
|
64
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
65
|
+
*/
|
|
66
|
+
{
|
|
67
|
+
int big1;
|
|
68
|
+
int i, iy, im, id, js;
|
|
69
|
+
double a1, a2, d1, dats1, d2, fd, ddats, dats2, datd, as1, as2, da;
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
/* Put the two parts of the TAI into big-first order. */
|
|
73
|
+
big1 = ( tai1 >= tai2 );
|
|
74
|
+
if ( big1 ) {
|
|
75
|
+
a1 = tai1;
|
|
76
|
+
a2 = tai2;
|
|
77
|
+
} else {
|
|
78
|
+
a1 = tai2;
|
|
79
|
+
a2 = tai1;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* See if the TAI can possibly be in a leap-second day. */
|
|
83
|
+
d1 = a1;
|
|
84
|
+
dats1 = 0.0;
|
|
85
|
+
for ( i = -1; i <= 3; i++ ) {
|
|
86
|
+
d2 = a2 + (double) i;
|
|
87
|
+
if ( iauJd2cal(d1, d2, &iy, &im, &id, &fd) ) return -1;
|
|
88
|
+
js = iauDat(iy, im, id, 0.0, &dats2);
|
|
89
|
+
if ( js < 0 ) return -1;
|
|
90
|
+
if ( i == -1 ) dats1 = dats2;
|
|
91
|
+
ddats = dats2 - dats1;
|
|
92
|
+
datd = dats1 / DAYSEC;
|
|
93
|
+
if ( fabs(ddats) >= 0.5 ) {
|
|
94
|
+
|
|
95
|
+
/* Yes. Get TAI for the start of the UTC day that */
|
|
96
|
+
/* ends in a leap. */
|
|
97
|
+
if ( iauCal2jd(iy, im, id, &d1, &d2) ) return -1;
|
|
98
|
+
as1 = d1;
|
|
99
|
+
as2 = d2 - 1.0 + datd;
|
|
100
|
+
|
|
101
|
+
/* Is the TAI after this point? */
|
|
102
|
+
da = a1 - as1;
|
|
103
|
+
da = da + ( a2 - as2 );
|
|
104
|
+
if ( da > 0 ) {
|
|
105
|
+
|
|
106
|
+
/* Yes: fraction of the current UTC day that has elapsed. */
|
|
107
|
+
fd = da * DAYSEC / ( DAYSEC + ddats );
|
|
108
|
+
|
|
109
|
+
/* Ramp TAI-UTC to bring about SOFA's JD(UTC) convention. */
|
|
110
|
+
datd += ddats * ( fd <= 1.0 ? fd : 1.0 ) / DAYSEC;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* Done. */
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
dats1 = dats2;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/* Subtract the (possibly adjusted) TAI-UTC from TAI to give UTC. */
|
|
120
|
+
a2 -= datd;
|
|
121
|
+
|
|
122
|
+
/* Return the UTC result, preserving the TAI order. */
|
|
123
|
+
if ( big1 ) {
|
|
124
|
+
*utc1 = a1;
|
|
125
|
+
*utc2 = a2;
|
|
126
|
+
} else {
|
|
127
|
+
*utc1 = a2;
|
|
128
|
+
*utc2 = a1;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/* Status. */
|
|
132
|
+
return js;
|
|
133
|
+
|
|
134
|
+
/*----------------------------------------------------------------------
|
|
135
|
+
**
|
|
136
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
137
|
+
**
|
|
138
|
+
** This file is redistributed and relicensed in accordance with
|
|
139
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
140
|
+
**
|
|
141
|
+
** The original library is available from IAU Standards of
|
|
142
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
143
|
+
**
|
|
144
|
+
**
|
|
145
|
+
**
|
|
146
|
+
**
|
|
147
|
+
**
|
|
148
|
+
** Copyright (C) 2013, Naoki Arita
|
|
149
|
+
** All rights reserved.
|
|
150
|
+
**
|
|
151
|
+
** Redistribution and use in source and binary forms, with or without
|
|
152
|
+
** modification, are permitted provided that the following conditions
|
|
153
|
+
** are met:
|
|
154
|
+
**
|
|
155
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
156
|
+
** notice, this list of conditions and the following disclaimer.
|
|
157
|
+
**
|
|
158
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
159
|
+
** notice, this list of conditions and the following disclaimer in
|
|
160
|
+
** the documentation and/or other materials provided with the
|
|
161
|
+
** distribution.
|
|
162
|
+
**
|
|
163
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
164
|
+
** the International Astronomical Union nor the names of its
|
|
165
|
+
** contributors may be used to endorse or promote products derived
|
|
166
|
+
** from this software without specific prior written permission.
|
|
167
|
+
**
|
|
168
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
169
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
170
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
171
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
172
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
173
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
174
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
175
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
176
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
177
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
178
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
179
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
180
|
+
**
|
|
181
|
+
**--------------------------------------------------------------------*/
|
|
182
|
+
}
|
data/ext/celes/tcbtdb.c
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
int iauTcbtdb(double tcb1, double tcb2, double *tdb1, double *tdb2)
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - - - - - -
|
|
6
|
+
** i a u T c b t d b
|
|
7
|
+
** - - - - - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** Time scale transformation: Barycentric Coordinate Time, TCB, to
|
|
10
|
+
** Barycentric Dynamical Time, TDB.
|
|
11
|
+
**
|
|
12
|
+
** Status: canonical.
|
|
13
|
+
**
|
|
14
|
+
** Given:
|
|
15
|
+
** tcb1,tcb2 double TCB as a 2-part Julian Date
|
|
16
|
+
**
|
|
17
|
+
** Returned:
|
|
18
|
+
** tdb1,tdb2 double TDB as a 2-part Julian Date
|
|
19
|
+
**
|
|
20
|
+
** Returned (function value):
|
|
21
|
+
** int status: 0 = OK
|
|
22
|
+
**
|
|
23
|
+
** Notes:
|
|
24
|
+
**
|
|
25
|
+
** 1) tcb1+tcb2 is Julian Date, apportioned in any convenient way
|
|
26
|
+
** between the two arguments, for example where tcb1 is the Julian
|
|
27
|
+
** Day Number and tcb2 is the fraction of a day. The returned
|
|
28
|
+
** tdb1,tdb2 follow suit.
|
|
29
|
+
**
|
|
30
|
+
** 2) The 2006 IAU General Assembly introduced a conventional linear
|
|
31
|
+
** transformation between TDB and TCB. This transformation
|
|
32
|
+
** compensates for the drift between TCB and terrestrial time TT,
|
|
33
|
+
** and keeps TDB approximately centered on TT. Because the
|
|
34
|
+
** relationship between TT and TCB depends on the adopted solar
|
|
35
|
+
** system ephemeris, the degree of alignment between TDB and TT over
|
|
36
|
+
** long intervals will vary according to which ephemeris is used.
|
|
37
|
+
** Former definitions of TDB attempted to avoid this problem by
|
|
38
|
+
** stipulating that TDB and TT should differ only by periodic
|
|
39
|
+
** effects. This is a good description of the nature of the
|
|
40
|
+
** relationship but eluded precise mathematical formulation. The
|
|
41
|
+
** conventional linear relationship adopted in 2006 sidestepped
|
|
42
|
+
** these difficulties whilst delivering a TDB that in practice was
|
|
43
|
+
** consistent with values before that date.
|
|
44
|
+
**
|
|
45
|
+
** 3) TDB is essentially the same as Teph, the time argument for the
|
|
46
|
+
** JPL solar system ephemerides.
|
|
47
|
+
**
|
|
48
|
+
** Reference:
|
|
49
|
+
**
|
|
50
|
+
** IAU 2006 Resolution B3
|
|
51
|
+
**
|
|
52
|
+
** This revision: 2011 May 14
|
|
53
|
+
**
|
|
54
|
+
** Original version 2012-03-01
|
|
55
|
+
**
|
|
56
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
57
|
+
*/
|
|
58
|
+
{
|
|
59
|
+
|
|
60
|
+
/* 1977 Jan 1 00:00:32.184 TT, as two-part JD */
|
|
61
|
+
static const double t77td = DJM0 + DJM77;
|
|
62
|
+
static const double t77tf = TTMTAI/DAYSEC;
|
|
63
|
+
|
|
64
|
+
/* TDB (days) at TAI 1977 Jan 1.0 */
|
|
65
|
+
static const double tdb0 = TDB0/DAYSEC;
|
|
66
|
+
|
|
67
|
+
double d;
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
/* Result, safeguarding precision. */
|
|
71
|
+
if ( tcb1 > tcb2 ) {
|
|
72
|
+
d = tcb1 - t77td;
|
|
73
|
+
*tdb1 = tcb1;
|
|
74
|
+
*tdb2 = tcb2 + tdb0 - ( d + ( tcb2 - t77tf ) ) * ELB;
|
|
75
|
+
} else {
|
|
76
|
+
d = tcb2 - t77td;
|
|
77
|
+
*tdb1 = tcb1 + tdb0 - ( d + ( tcb1 - t77tf ) ) * ELB;
|
|
78
|
+
*tdb2 = tcb2;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* Status (always OK). */
|
|
82
|
+
return 0;
|
|
83
|
+
|
|
84
|
+
/*----------------------------------------------------------------------
|
|
85
|
+
**
|
|
86
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
87
|
+
**
|
|
88
|
+
** This file is redistributed and relicensed in accordance with
|
|
89
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
90
|
+
**
|
|
91
|
+
** The original library is available from IAU Standards of
|
|
92
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
93
|
+
**
|
|
94
|
+
**
|
|
95
|
+
**
|
|
96
|
+
**
|
|
97
|
+
**
|
|
98
|
+
** Copyright (C) 2013, Naoki Arita
|
|
99
|
+
** All rights reserved.
|
|
100
|
+
**
|
|
101
|
+
** Redistribution and use in source and binary forms, with or without
|
|
102
|
+
** modification, are permitted provided that the following conditions
|
|
103
|
+
** are met:
|
|
104
|
+
**
|
|
105
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
106
|
+
** notice, this list of conditions and the following disclaimer.
|
|
107
|
+
**
|
|
108
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
109
|
+
** notice, this list of conditions and the following disclaimer in
|
|
110
|
+
** the documentation and/or other materials provided with the
|
|
111
|
+
** distribution.
|
|
112
|
+
**
|
|
113
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
114
|
+
** the International Astronomical Union nor the names of its
|
|
115
|
+
** contributors may be used to endorse or promote products derived
|
|
116
|
+
** from this software without specific prior written permission.
|
|
117
|
+
**
|
|
118
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
119
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
120
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
121
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
122
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
123
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
124
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
125
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
126
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
127
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
128
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
129
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
130
|
+
**
|
|
131
|
+
**--------------------------------------------------------------------*/
|
|
132
|
+
}
|
data/ext/celes/tcgtt.c
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
int iauTcgtt(double tcg1, double tcg2, double *tt1, double *tt2)
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - - - - -
|
|
6
|
+
** i a u T c g t t
|
|
7
|
+
** - - - - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** Time scale transformation: Geocentric Coordinate Time, TCG, to
|
|
10
|
+
** Terrestrial Time, TT.
|
|
11
|
+
**
|
|
12
|
+
** Status: canonical.
|
|
13
|
+
**
|
|
14
|
+
** Given:
|
|
15
|
+
** tcg1,tcg2 double TCG as a 2-part Julian Date
|
|
16
|
+
**
|
|
17
|
+
** Returned:
|
|
18
|
+
** tt1,tt2 double TT as a 2-part Julian Date
|
|
19
|
+
**
|
|
20
|
+
** Returned (function value):
|
|
21
|
+
** int status: 0 = OK
|
|
22
|
+
**
|
|
23
|
+
** Note:
|
|
24
|
+
**
|
|
25
|
+
** tcg1+tcg2 is Julian Date, apportioned in any convenient way
|
|
26
|
+
** between the two arguments, for example where tcg1 is the Julian
|
|
27
|
+
** Day Number and tcg22 is the fraction of a day. The returned
|
|
28
|
+
** tt1,tt2 follow suit.
|
|
29
|
+
**
|
|
30
|
+
** References:
|
|
31
|
+
**
|
|
32
|
+
** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),.
|
|
33
|
+
** IERS Technical Note No. 32, BKG (2004)
|
|
34
|
+
**
|
|
35
|
+
** IAU 2000 Resolution B1.9
|
|
36
|
+
**
|
|
37
|
+
** This revision: 2010 May 14
|
|
38
|
+
**
|
|
39
|
+
** Original version 2012-03-01
|
|
40
|
+
**
|
|
41
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
42
|
+
*/
|
|
43
|
+
{
|
|
44
|
+
|
|
45
|
+
/* 1977 Jan 1 00:00:32.184 TT, as MJD */
|
|
46
|
+
static const double t77t = DJM77 + TTMTAI/DAYSEC;
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
/* Result, safeguarding precision. */
|
|
50
|
+
if ( tcg1 > tcg2 ) {
|
|
51
|
+
*tt1 = tcg1;
|
|
52
|
+
*tt2 = tcg2 - ( ( tcg1 - DJM0 ) + ( tcg2 - t77t ) ) * ELG;
|
|
53
|
+
} else {
|
|
54
|
+
*tt1 = tcg1 - ( ( tcg2 - DJM0 ) + ( tcg1 - t77t ) ) * ELG;
|
|
55
|
+
*tt2 = tcg2;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* OK status. */
|
|
59
|
+
return 0;
|
|
60
|
+
|
|
61
|
+
/*----------------------------------------------------------------------
|
|
62
|
+
**
|
|
63
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
64
|
+
**
|
|
65
|
+
** This file is redistributed and relicensed in accordance with
|
|
66
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
67
|
+
**
|
|
68
|
+
** The original library is available from IAU Standards of
|
|
69
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
70
|
+
**
|
|
71
|
+
**
|
|
72
|
+
**
|
|
73
|
+
**
|
|
74
|
+
**
|
|
75
|
+
** Copyright (C) 2013, Naoki Arita
|
|
76
|
+
** All rights reserved.
|
|
77
|
+
**
|
|
78
|
+
** Redistribution and use in source and binary forms, with or without
|
|
79
|
+
** modification, are permitted provided that the following conditions
|
|
80
|
+
** are met:
|
|
81
|
+
**
|
|
82
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
83
|
+
** notice, this list of conditions and the following disclaimer.
|
|
84
|
+
**
|
|
85
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
86
|
+
** notice, this list of conditions and the following disclaimer in
|
|
87
|
+
** the documentation and/or other materials provided with the
|
|
88
|
+
** distribution.
|
|
89
|
+
**
|
|
90
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
91
|
+
** the International Astronomical Union nor the names of its
|
|
92
|
+
** contributors may be used to endorse or promote products derived
|
|
93
|
+
** from this software without specific prior written permission.
|
|
94
|
+
**
|
|
95
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
96
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
97
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
98
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
99
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
100
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
101
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
102
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
103
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
104
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
105
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
106
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
107
|
+
**
|
|
108
|
+
**--------------------------------------------------------------------*/
|
|
109
|
+
}
|