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/ee00b.c
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
#include "sofa.h"
|
|
2
|
+
|
|
3
|
+
double iauEe00b(double date1, double date2)
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - - - - -
|
|
6
|
+
** i a u E e 0 0 b
|
|
7
|
+
** - - - - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** Equation of the equinoxes, compatible with IAU 2000 resolutions but
|
|
10
|
+
** using the truncated nutation model IAU 2000B.
|
|
11
|
+
**
|
|
12
|
+
** Status: support function.
|
|
13
|
+
**
|
|
14
|
+
** Given:
|
|
15
|
+
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
|
16
|
+
**
|
|
17
|
+
** Returned (function value):
|
|
18
|
+
** double equation of the equinoxes (Note 2)
|
|
19
|
+
**
|
|
20
|
+
** Notes:
|
|
21
|
+
**
|
|
22
|
+
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
|
23
|
+
** convenient way between the two arguments. For example,
|
|
24
|
+
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
|
25
|
+
** among others:
|
|
26
|
+
**
|
|
27
|
+
** date1 date2
|
|
28
|
+
**
|
|
29
|
+
** 2450123.7 0.0 (JD method)
|
|
30
|
+
** 2451545.0 -1421.3 (J2000 method)
|
|
31
|
+
** 2400000.5 50123.2 (MJD method)
|
|
32
|
+
** 2450123.5 0.2 (date & time method)
|
|
33
|
+
**
|
|
34
|
+
** The JD method is the most natural and convenient to use in
|
|
35
|
+
** cases where the loss of several decimal digits of resolution
|
|
36
|
+
** is acceptable. The J2000 method is best matched to the way
|
|
37
|
+
** the argument is handled internally and will deliver the
|
|
38
|
+
** optimum resolution. The MJD method and the date & time methods
|
|
39
|
+
** are both good compromises between resolution and convenience.
|
|
40
|
+
**
|
|
41
|
+
** 2) The result, which is in radians, operates in the following sense:
|
|
42
|
+
**
|
|
43
|
+
** Greenwich apparent ST = GMST + equation of the equinoxes
|
|
44
|
+
**
|
|
45
|
+
** 3) The result is compatible with the IAU 2000 resolutions except
|
|
46
|
+
** that accuracy has been compromised for the sake of speed. For
|
|
47
|
+
** further details, see McCarthy & Luzum (2001), IERS Conventions
|
|
48
|
+
** 2003 and Capitaine et al. (2003).
|
|
49
|
+
**
|
|
50
|
+
** Called:
|
|
51
|
+
** iauPr00 IAU 2000 precession adjustments
|
|
52
|
+
** iauObl80 mean obliquity, IAU 1980
|
|
53
|
+
** iauNut00b nutation, IAU 2000B
|
|
54
|
+
** iauEe00 equation of the equinoxes, IAU 2000
|
|
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. & Luzum, B.J., "An abridged model of the
|
|
63
|
+
** precession-nutation of the celestial pole", Celestial Mechanics &
|
|
64
|
+
** Dynamical Astronomy, 85, 37-49 (2003)
|
|
65
|
+
**
|
|
66
|
+
** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
67
|
+
** IERS Technical Note No. 32, BKG (2004)
|
|
68
|
+
**
|
|
69
|
+
** This revision: 2008 May 18
|
|
70
|
+
**
|
|
71
|
+
** Original version 2012-03-01
|
|
72
|
+
**
|
|
73
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
74
|
+
*/
|
|
75
|
+
{
|
|
76
|
+
double dpsipr, depspr, epsa, dpsi, deps, ee;
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
/* IAU 2000 precession-rate adjustments. */
|
|
80
|
+
iauPr00(date1, date2, &dpsipr, &depspr);
|
|
81
|
+
|
|
82
|
+
/* Mean obliquity, consistent with IAU 2000 precession-nutation. */
|
|
83
|
+
epsa = iauObl80(date1, date2) + depspr;
|
|
84
|
+
|
|
85
|
+
/* Nutation in longitude. */
|
|
86
|
+
iauNut00b(date1, date2, &dpsi, &deps);
|
|
87
|
+
|
|
88
|
+
/* Equation of the equinoxes. */
|
|
89
|
+
ee = iauEe00(date1, date2, epsa, dpsi);
|
|
90
|
+
|
|
91
|
+
return ee;
|
|
92
|
+
|
|
93
|
+
/*----------------------------------------------------------------------
|
|
94
|
+
**
|
|
95
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
96
|
+
**
|
|
97
|
+
** This file is redistributed and relicensed in accordance with
|
|
98
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
99
|
+
**
|
|
100
|
+
** The original library is available from IAU Standards of
|
|
101
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
102
|
+
**
|
|
103
|
+
**
|
|
104
|
+
**
|
|
105
|
+
**
|
|
106
|
+
**
|
|
107
|
+
** Copyright (C) 2013, Naoki Arita
|
|
108
|
+
** All rights reserved.
|
|
109
|
+
**
|
|
110
|
+
** Redistribution and use in source and binary forms, with or without
|
|
111
|
+
** modification, are permitted provided that the following conditions
|
|
112
|
+
** are met:
|
|
113
|
+
**
|
|
114
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
115
|
+
** notice, this list of conditions and the following disclaimer.
|
|
116
|
+
**
|
|
117
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
118
|
+
** notice, this list of conditions and the following disclaimer in
|
|
119
|
+
** the documentation and/or other materials provided with the
|
|
120
|
+
** distribution.
|
|
121
|
+
**
|
|
122
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
123
|
+
** the International Astronomical Union nor the names of its
|
|
124
|
+
** contributors may be used to endorse or promote products derived
|
|
125
|
+
** from this software without specific prior written permission.
|
|
126
|
+
**
|
|
127
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
128
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
129
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
130
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
131
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
132
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
133
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
134
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
135
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
136
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
137
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
138
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
139
|
+
**
|
|
140
|
+
**--------------------------------------------------------------------*/
|
|
141
|
+
}
|
data/ext/celes/ee06a.c
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
#include "sofa.h"
|
|
2
|
+
|
|
3
|
+
double iauEe06a(double date1, double date2)
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - - - - -
|
|
6
|
+
** i a u E e 0 6 a
|
|
7
|
+
** - - - - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** Equation of the equinoxes, compatible with IAU 2000 resolutions and
|
|
10
|
+
** IAU 2006/2000A precession-nutation.
|
|
11
|
+
**
|
|
12
|
+
** Status: support function.
|
|
13
|
+
**
|
|
14
|
+
** Given:
|
|
15
|
+
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
|
16
|
+
**
|
|
17
|
+
** Returned (function value):
|
|
18
|
+
** double equation of the equinoxes (Note 2)
|
|
19
|
+
**
|
|
20
|
+
** Notes:
|
|
21
|
+
**
|
|
22
|
+
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
|
23
|
+
** convenient way between the two arguments. For example,
|
|
24
|
+
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
|
25
|
+
** among others:
|
|
26
|
+
**
|
|
27
|
+
** date1 date2
|
|
28
|
+
**
|
|
29
|
+
** 2450123.7 0.0 (JD method)
|
|
30
|
+
** 2451545.0 -1421.3 (J2000 method)
|
|
31
|
+
** 2400000.5 50123.2 (MJD method)
|
|
32
|
+
** 2450123.5 0.2 (date & time method)
|
|
33
|
+
**
|
|
34
|
+
** The JD method is the most natural and convenient to use in
|
|
35
|
+
** cases where the loss of several decimal digits of resolution
|
|
36
|
+
** is acceptable. The J2000 method is best matched to the way
|
|
37
|
+
** the argument is handled internally and will deliver the
|
|
38
|
+
** optimum resolution. The MJD method and the date & time methods
|
|
39
|
+
** are both good compromises between resolution and convenience.
|
|
40
|
+
**
|
|
41
|
+
** 2) The result, which is in radians, operates in the following sense:
|
|
42
|
+
**
|
|
43
|
+
** Greenwich apparent ST = GMST + equation of the equinoxes
|
|
44
|
+
**
|
|
45
|
+
** Called:
|
|
46
|
+
** iauAnpm normalize angle into range +/- pi
|
|
47
|
+
** iauGst06a Greenwich apparent sidereal time, IAU 2006/2000A
|
|
48
|
+
** iauGmst06 Greenwich mean sidereal time, IAU 2006
|
|
49
|
+
**
|
|
50
|
+
** Reference:
|
|
51
|
+
**
|
|
52
|
+
** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003),
|
|
53
|
+
** IERS Technical Note No. 32, BKG
|
|
54
|
+
**
|
|
55
|
+
** This revision: 2008 May 18
|
|
56
|
+
**
|
|
57
|
+
** Original version 2012-03-01
|
|
58
|
+
**
|
|
59
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
60
|
+
*/
|
|
61
|
+
{
|
|
62
|
+
double gst06a, gmst06, ee;
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
/* Apparent and mean sidereal times. */
|
|
66
|
+
gst06a = iauGst06a(0.0, 0.0, date1, date2);
|
|
67
|
+
gmst06 = iauGmst06(0.0, 0.0, date1, date2);
|
|
68
|
+
|
|
69
|
+
/* Equation of the equinoxes. */
|
|
70
|
+
ee = iauAnpm(gst06a - gmst06);
|
|
71
|
+
|
|
72
|
+
return ee;
|
|
73
|
+
|
|
74
|
+
/*----------------------------------------------------------------------
|
|
75
|
+
**
|
|
76
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
77
|
+
**
|
|
78
|
+
** This file is redistributed and relicensed in accordance with
|
|
79
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
80
|
+
**
|
|
81
|
+
** The original library is available from IAU Standards of
|
|
82
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
83
|
+
**
|
|
84
|
+
**
|
|
85
|
+
**
|
|
86
|
+
**
|
|
87
|
+
**
|
|
88
|
+
** Copyright (C) 2013, Naoki Arita
|
|
89
|
+
** All rights reserved.
|
|
90
|
+
**
|
|
91
|
+
** Redistribution and use in source and binary forms, with or without
|
|
92
|
+
** modification, are permitted provided that the following conditions
|
|
93
|
+
** are met:
|
|
94
|
+
**
|
|
95
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
96
|
+
** notice, this list of conditions and the following disclaimer.
|
|
97
|
+
**
|
|
98
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
99
|
+
** notice, this list of conditions and the following disclaimer in
|
|
100
|
+
** the documentation and/or other materials provided with the
|
|
101
|
+
** distribution.
|
|
102
|
+
**
|
|
103
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
104
|
+
** the International Astronomical Union nor the names of its
|
|
105
|
+
** contributors may be used to endorse or promote products derived
|
|
106
|
+
** from this software without specific prior written permission.
|
|
107
|
+
**
|
|
108
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
109
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
110
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
111
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
112
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
113
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
114
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
115
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
116
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
117
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
118
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
119
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
120
|
+
**
|
|
121
|
+
**--------------------------------------------------------------------*/
|
|
122
|
+
}
|
data/ext/celes/eect00.c
ADDED
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
double iauEect00(double date1, double date2)
|
|
4
|
+
/*
|
|
5
|
+
** - - - - - - - - - -
|
|
6
|
+
** i a u E e c t 0 0
|
|
7
|
+
** - - - - - - - - - -
|
|
8
|
+
**
|
|
9
|
+
** Equation of the equinoxes complementary terms, consistent with
|
|
10
|
+
** IAU 2000 resolutions.
|
|
11
|
+
**
|
|
12
|
+
** Status: canonical model.
|
|
13
|
+
**
|
|
14
|
+
** Given:
|
|
15
|
+
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
|
16
|
+
**
|
|
17
|
+
** Returned (function value):
|
|
18
|
+
** double complementary terms (Note 2)
|
|
19
|
+
**
|
|
20
|
+
** Notes:
|
|
21
|
+
**
|
|
22
|
+
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
|
23
|
+
** convenient way between the two arguments. For example,
|
|
24
|
+
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
|
25
|
+
** among others:
|
|
26
|
+
**
|
|
27
|
+
** date1 date2
|
|
28
|
+
**
|
|
29
|
+
** 2450123.7 0.0 (JD method)
|
|
30
|
+
** 2451545.0 -1421.3 (J2000 method)
|
|
31
|
+
** 2400000.5 50123.2 (MJD method)
|
|
32
|
+
** 2450123.5 0.2 (date & time method)
|
|
33
|
+
**
|
|
34
|
+
** The JD method is the most natural and convenient to use in
|
|
35
|
+
** cases where the loss of several decimal digits of resolution
|
|
36
|
+
** is acceptable. The J2000 method is best matched to the way
|
|
37
|
+
** the argument is handled internally and will deliver the
|
|
38
|
+
** optimum resolution. The MJD method and the date & time methods
|
|
39
|
+
** are both good compromises between resolution and convenience.
|
|
40
|
+
**
|
|
41
|
+
** 2) The "complementary terms" are part of the equation of the
|
|
42
|
+
** equinoxes (EE), classically the difference between apparent and
|
|
43
|
+
** mean Sidereal Time:
|
|
44
|
+
**
|
|
45
|
+
** GAST = GMST + EE
|
|
46
|
+
**
|
|
47
|
+
** with:
|
|
48
|
+
**
|
|
49
|
+
** EE = dpsi * cos(eps)
|
|
50
|
+
**
|
|
51
|
+
** where dpsi is the nutation in longitude and eps is the obliquity
|
|
52
|
+
** of date. However, if the rotation of the Earth were constant in
|
|
53
|
+
** an inertial frame the classical formulation would lead to
|
|
54
|
+
** apparent irregularities in the UT1 timescale traceable to side-
|
|
55
|
+
** effects of precession-nutation. In order to eliminate these
|
|
56
|
+
** effects from UT1, "complementary terms" were introduced in 1994
|
|
57
|
+
** (IAU, 1994) and took effect from 1997 (Capitaine and Gontier,
|
|
58
|
+
** 1993):
|
|
59
|
+
**
|
|
60
|
+
** GAST = GMST + CT + EE
|
|
61
|
+
**
|
|
62
|
+
** By convention, the complementary terms are included as part of
|
|
63
|
+
** the equation of the equinoxes rather than as part of the mean
|
|
64
|
+
** Sidereal Time. This slightly compromises the "geometrical"
|
|
65
|
+
** interpretation of mean sidereal time but is otherwise
|
|
66
|
+
** inconsequential.
|
|
67
|
+
**
|
|
68
|
+
** The present function computes CT in the above expression,
|
|
69
|
+
** compatible with IAU 2000 resolutions (Capitaine et al., 2002, and
|
|
70
|
+
** IERS Conventions 2003).
|
|
71
|
+
**
|
|
72
|
+
** Called:
|
|
73
|
+
** iauFal03 mean anomaly of the Moon
|
|
74
|
+
** iauFalp03 mean anomaly of the Sun
|
|
75
|
+
** iauFaf03 mean argument of the latitude of the Moon
|
|
76
|
+
** iauFad03 mean elongation of the Moon from the Sun
|
|
77
|
+
** iauFaom03 mean longitude of the Moon's ascending node
|
|
78
|
+
** iauFave03 mean longitude of Venus
|
|
79
|
+
** iauFae03 mean longitude of Earth
|
|
80
|
+
** iauFapa03 general accumulated precession in longitude
|
|
81
|
+
**
|
|
82
|
+
** References:
|
|
83
|
+
**
|
|
84
|
+
** Capitaine, N. & Gontier, A.-M., Astron. Astrophys., 275,
|
|
85
|
+
** 645-650 (1993)
|
|
86
|
+
**
|
|
87
|
+
** Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to
|
|
88
|
+
** implement the IAU 2000 definition of UT1", Astronomy &
|
|
89
|
+
** Astrophysics, 406, 1135-1149 (2003)
|
|
90
|
+
**
|
|
91
|
+
** IAU Resolution C7, Recommendation 3 (1994)
|
|
92
|
+
**
|
|
93
|
+
** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
|
94
|
+
** IERS Technical Note No. 32, BKG (2004)
|
|
95
|
+
**
|
|
96
|
+
** This revision: 2009 December 17
|
|
97
|
+
**
|
|
98
|
+
** Original version 2012-03-01
|
|
99
|
+
**
|
|
100
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
101
|
+
*/
|
|
102
|
+
{
|
|
103
|
+
/* Time since J2000.0, in Julian centuries */
|
|
104
|
+
double t;
|
|
105
|
+
|
|
106
|
+
/* Miscellaneous */
|
|
107
|
+
int i, j;
|
|
108
|
+
double a, s0, s1;
|
|
109
|
+
|
|
110
|
+
/* Fundamental arguments */
|
|
111
|
+
double fa[14];
|
|
112
|
+
|
|
113
|
+
/* Returned value. */
|
|
114
|
+
double eect;
|
|
115
|
+
|
|
116
|
+
/* ----------------------------------------- */
|
|
117
|
+
/* The series for the EE complementary terms */
|
|
118
|
+
/* ----------------------------------------- */
|
|
119
|
+
|
|
120
|
+
typedef struct {
|
|
121
|
+
int nfa[8]; /* coefficients of l,l',F,D,Om,LVe,LE,pA */
|
|
122
|
+
double s, c; /* sine and cosine coefficients */
|
|
123
|
+
} TERM;
|
|
124
|
+
|
|
125
|
+
/* Terms of order t^0 */
|
|
126
|
+
static const TERM e0[] = {
|
|
127
|
+
|
|
128
|
+
/* 1-10 */
|
|
129
|
+
{{ 0, 0, 0, 0, 1, 0, 0, 0}, 2640.96e-6, -0.39e-6 },
|
|
130
|
+
{{ 0, 0, 0, 0, 2, 0, 0, 0}, 63.52e-6, -0.02e-6 },
|
|
131
|
+
{{ 0, 0, 2, -2, 3, 0, 0, 0}, 11.75e-6, 0.01e-6 },
|
|
132
|
+
{{ 0, 0, 2, -2, 1, 0, 0, 0}, 11.21e-6, 0.01e-6 },
|
|
133
|
+
{{ 0, 0, 2, -2, 2, 0, 0, 0}, -4.55e-6, 0.00e-6 },
|
|
134
|
+
{{ 0, 0, 2, 0, 3, 0, 0, 0}, 2.02e-6, 0.00e-6 },
|
|
135
|
+
{{ 0, 0, 2, 0, 1, 0, 0, 0}, 1.98e-6, 0.00e-6 },
|
|
136
|
+
{{ 0, 0, 0, 0, 3, 0, 0, 0}, -1.72e-6, 0.00e-6 },
|
|
137
|
+
{{ 0, 1, 0, 0, 1, 0, 0, 0}, -1.41e-6, -0.01e-6 },
|
|
138
|
+
{{ 0, 1, 0, 0, -1, 0, 0, 0}, -1.26e-6, -0.01e-6 },
|
|
139
|
+
|
|
140
|
+
/* 11-20 */
|
|
141
|
+
{{ 1, 0, 0, 0, -1, 0, 0, 0}, -0.63e-6, 0.00e-6 },
|
|
142
|
+
{{ 1, 0, 0, 0, 1, 0, 0, 0}, -0.63e-6, 0.00e-6 },
|
|
143
|
+
{{ 0, 1, 2, -2, 3, 0, 0, 0}, 0.46e-6, 0.00e-6 },
|
|
144
|
+
{{ 0, 1, 2, -2, 1, 0, 0, 0}, 0.45e-6, 0.00e-6 },
|
|
145
|
+
{{ 0, 0, 4, -4, 4, 0, 0, 0}, 0.36e-6, 0.00e-6 },
|
|
146
|
+
{{ 0, 0, 1, -1, 1, -8, 12, 0}, -0.24e-6, -0.12e-6 },
|
|
147
|
+
{{ 0, 0, 2, 0, 0, 0, 0, 0}, 0.32e-6, 0.00e-6 },
|
|
148
|
+
{{ 0, 0, 2, 0, 2, 0, 0, 0}, 0.28e-6, 0.00e-6 },
|
|
149
|
+
{{ 1, 0, 2, 0, 3, 0, 0, 0}, 0.27e-6, 0.00e-6 },
|
|
150
|
+
{{ 1, 0, 2, 0, 1, 0, 0, 0}, 0.26e-6, 0.00e-6 },
|
|
151
|
+
|
|
152
|
+
/* 21-30 */
|
|
153
|
+
{{ 0, 0, 2, -2, 0, 0, 0, 0}, -0.21e-6, 0.00e-6 },
|
|
154
|
+
{{ 0, 1, -2, 2, -3, 0, 0, 0}, 0.19e-6, 0.00e-6 },
|
|
155
|
+
{{ 0, 1, -2, 2, -1, 0, 0, 0}, 0.18e-6, 0.00e-6 },
|
|
156
|
+
{{ 0, 0, 0, 0, 0, 8,-13, -1}, -0.10e-6, 0.05e-6 },
|
|
157
|
+
{{ 0, 0, 0, 2, 0, 0, 0, 0}, 0.15e-6, 0.00e-6 },
|
|
158
|
+
{{ 2, 0, -2, 0, -1, 0, 0, 0}, -0.14e-6, 0.00e-6 },
|
|
159
|
+
{{ 1, 0, 0, -2, 1, 0, 0, 0}, 0.14e-6, 0.00e-6 },
|
|
160
|
+
{{ 0, 1, 2, -2, 2, 0, 0, 0}, -0.14e-6, 0.00e-6 },
|
|
161
|
+
{{ 1, 0, 0, -2, -1, 0, 0, 0}, 0.14e-6, 0.00e-6 },
|
|
162
|
+
{{ 0, 0, 4, -2, 4, 0, 0, 0}, 0.13e-6, 0.00e-6 },
|
|
163
|
+
|
|
164
|
+
/* 31-33 */
|
|
165
|
+
{{ 0, 0, 2, -2, 4, 0, 0, 0}, -0.11e-6, 0.00e-6 },
|
|
166
|
+
{{ 1, 0, -2, 0, -3, 0, 0, 0}, 0.11e-6, 0.00e-6 },
|
|
167
|
+
{{ 1, 0, -2, 0, -1, 0, 0, 0}, 0.11e-6, 0.00e-6 }
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
/* Terms of order t^1 */
|
|
171
|
+
static const TERM e1[] = {
|
|
172
|
+
{{ 0, 0, 0, 0, 1, 0, 0, 0}, -0.87e-6, 0.00e-6 }
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
/* Number of terms in the series */
|
|
176
|
+
const int NE0 = (int) (sizeof e0 / sizeof (TERM));
|
|
177
|
+
const int NE1 = (int) (sizeof e1 / sizeof (TERM));
|
|
178
|
+
|
|
179
|
+
/*--------------------------------------------------------------------*/
|
|
180
|
+
|
|
181
|
+
/* Interval between fundamental epoch J2000.0 and current date (JC). */
|
|
182
|
+
t = ((date1 - DJ00) + date2) / DJC;
|
|
183
|
+
|
|
184
|
+
/* Fundamental Arguments (from IERS Conventions 2003) */
|
|
185
|
+
|
|
186
|
+
/* Mean anomaly of the Moon. */
|
|
187
|
+
fa[0] = iauFal03(t);
|
|
188
|
+
|
|
189
|
+
/* Mean anomaly of the Sun. */
|
|
190
|
+
fa[1] = iauFalp03(t);
|
|
191
|
+
|
|
192
|
+
/* Mean longitude of the Moon minus that of the ascending node. */
|
|
193
|
+
fa[2] = iauFaf03(t);
|
|
194
|
+
|
|
195
|
+
/* Mean elongation of the Moon from the Sun. */
|
|
196
|
+
fa[3] = iauFad03(t);
|
|
197
|
+
|
|
198
|
+
/* Mean longitude of the ascending node of the Moon. */
|
|
199
|
+
fa[4] = iauFaom03(t);
|
|
200
|
+
|
|
201
|
+
/* Mean longitude of Venus. */
|
|
202
|
+
fa[5] = iauFave03(t);
|
|
203
|
+
|
|
204
|
+
/* Mean longitude of Earth. */
|
|
205
|
+
fa[6] = iauFae03(t);
|
|
206
|
+
|
|
207
|
+
/* General precession in longitude. */
|
|
208
|
+
fa[7] = iauFapa03(t);
|
|
209
|
+
|
|
210
|
+
/* Evaluate the EE complementary terms. */
|
|
211
|
+
s0 = 0.0;
|
|
212
|
+
s1 = 0.0;
|
|
213
|
+
|
|
214
|
+
for (i = NE0-1; i >= 0; i--) {
|
|
215
|
+
a = 0.0;
|
|
216
|
+
for (j = 0; j < 8; j++) {
|
|
217
|
+
a += (double)(e0[i].nfa[j]) * fa[j];
|
|
218
|
+
}
|
|
219
|
+
s0 += e0[i].s * sin(a) + e0[i].c * cos(a);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
for (i = NE1-1; i >= 0; i--) {
|
|
223
|
+
a = 0.0;
|
|
224
|
+
for (j = 0; j < 8; j++) {
|
|
225
|
+
a += (double)(e1[i].nfa[j]) * fa[j];
|
|
226
|
+
}
|
|
227
|
+
s1 += e1[i].s * sin(a) + e1[i].c * cos(a);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
eect = (s0 + s1 * t ) * DAS2R;
|
|
231
|
+
|
|
232
|
+
return eect;
|
|
233
|
+
|
|
234
|
+
/*----------------------------------------------------------------------
|
|
235
|
+
**
|
|
236
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
237
|
+
**
|
|
238
|
+
** This file is redistributed and relicensed in accordance with
|
|
239
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
240
|
+
**
|
|
241
|
+
** The original library is available from IAU Standards of
|
|
242
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
243
|
+
**
|
|
244
|
+
**
|
|
245
|
+
**
|
|
246
|
+
**
|
|
247
|
+
**
|
|
248
|
+
** Copyright (C) 2013, Naoki Arita
|
|
249
|
+
** All rights reserved.
|
|
250
|
+
**
|
|
251
|
+
** Redistribution and use in source and binary forms, with or without
|
|
252
|
+
** modification, are permitted provided that the following conditions
|
|
253
|
+
** are met:
|
|
254
|
+
**
|
|
255
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
256
|
+
** notice, this list of conditions and the following disclaimer.
|
|
257
|
+
**
|
|
258
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
259
|
+
** notice, this list of conditions and the following disclaimer in
|
|
260
|
+
** the documentation and/or other materials provided with the
|
|
261
|
+
** distribution.
|
|
262
|
+
**
|
|
263
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
264
|
+
** the International Astronomical Union nor the names of its
|
|
265
|
+
** contributors may be used to endorse or promote products derived
|
|
266
|
+
** from this software without specific prior written permission.
|
|
267
|
+
**
|
|
268
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
269
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
270
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
271
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
272
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
273
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
274
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
275
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
276
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
277
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
278
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
279
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
280
|
+
**
|
|
281
|
+
**--------------------------------------------------------------------*/
|
|
282
|
+
}
|