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/fk5hz.c
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
void iauFk5hz(double r5, double d5, double date1, double date2,
|
|
4
|
+
double *rh, double *dh)
|
|
5
|
+
/*
|
|
6
|
+
** - - - - - - - - -
|
|
7
|
+
** i a u F k 5 h z
|
|
8
|
+
** - - - - - - - - -
|
|
9
|
+
**
|
|
10
|
+
** Transform an FK5 (J2000.0) star position into the system of the
|
|
11
|
+
** Hipparcos catalogue, assuming zero Hipparcos proper motion.
|
|
12
|
+
**
|
|
13
|
+
** Status: support function.
|
|
14
|
+
**
|
|
15
|
+
** Given:
|
|
16
|
+
** r5 double FK5 RA (radians), equinox J2000.0, at date
|
|
17
|
+
** d5 double FK5 Dec (radians), equinox J2000.0, at date
|
|
18
|
+
** date1,date2 double TDB date (Notes 1,2)
|
|
19
|
+
**
|
|
20
|
+
** Returned:
|
|
21
|
+
** rh double Hipparcos RA (radians)
|
|
22
|
+
** dh double Hipparcos Dec (radians)
|
|
23
|
+
**
|
|
24
|
+
** Notes:
|
|
25
|
+
**
|
|
26
|
+
** 1) This function converts a star position from the FK5 system to
|
|
27
|
+
** the Hipparcos system, in such a way that the Hipparcos proper
|
|
28
|
+
** motion is zero. Because such a star has, in general, a non-zero
|
|
29
|
+
** proper motion in the FK5 system, the function requires the date
|
|
30
|
+
** at which the position in the FK5 system was determined.
|
|
31
|
+
**
|
|
32
|
+
** 2) The TT date date1+date2 is a Julian Date, apportioned in any
|
|
33
|
+
** convenient way between the two arguments. For example,
|
|
34
|
+
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
|
35
|
+
** among others:
|
|
36
|
+
**
|
|
37
|
+
** date1 date2
|
|
38
|
+
**
|
|
39
|
+
** 2450123.7 0.0 (JD method)
|
|
40
|
+
** 2451545.0 -1421.3 (J2000 method)
|
|
41
|
+
** 2400000.5 50123.2 (MJD method)
|
|
42
|
+
** 2450123.5 0.2 (date & time method)
|
|
43
|
+
**
|
|
44
|
+
** The JD method is the most natural and convenient to use in
|
|
45
|
+
** cases where the loss of several decimal digits of resolution
|
|
46
|
+
** is acceptable. The J2000 method is best matched to the way
|
|
47
|
+
** the argument is handled internally and will deliver the
|
|
48
|
+
** optimum resolution. The MJD method and the date & time methods
|
|
49
|
+
** are both good compromises between resolution and convenience.
|
|
50
|
+
**
|
|
51
|
+
** 3) The FK5 to Hipparcos transformation is modeled as a pure
|
|
52
|
+
** rotation and spin; zonal errors in the FK5 catalogue are not
|
|
53
|
+
** taken into account.
|
|
54
|
+
**
|
|
55
|
+
** 4) The position returned by this function is in the Hipparcos
|
|
56
|
+
** reference system but at date date1+date2.
|
|
57
|
+
**
|
|
58
|
+
** 5) See also iauFk52h, iauH2fk5, iauHfk5z.
|
|
59
|
+
**
|
|
60
|
+
** Called:
|
|
61
|
+
** iauS2c spherical coordinates to unit vector
|
|
62
|
+
** iauFk5hip FK5 to Hipparcos rotation and spin
|
|
63
|
+
** iauSxp multiply p-vector by scalar
|
|
64
|
+
** iauRv2m r-vector to r-matrix
|
|
65
|
+
** iauTrxp product of transpose of r-matrix and p-vector
|
|
66
|
+
** iauPxp vector product of two p-vectors
|
|
67
|
+
** iauC2s p-vector to spherical
|
|
68
|
+
** iauAnp normalize angle into range 0 to 2pi
|
|
69
|
+
**
|
|
70
|
+
** Reference:
|
|
71
|
+
**
|
|
72
|
+
** F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739.
|
|
73
|
+
**
|
|
74
|
+
** This revision: 2009 December 17
|
|
75
|
+
**
|
|
76
|
+
** Original version 2012-03-01
|
|
77
|
+
**
|
|
78
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
79
|
+
*/
|
|
80
|
+
{
|
|
81
|
+
double t, p5e[3], r5h[3][3], s5h[3], vst[3], rst[3][3], p5[3],
|
|
82
|
+
ph[3], w;
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
/* Interval from given date to fundamental epoch J2000.0 (JY). */
|
|
86
|
+
t = - ((date1 - DJ00) + date2) / DJY;
|
|
87
|
+
|
|
88
|
+
/* FK5 barycentric position vector. */
|
|
89
|
+
iauS2c(r5, d5, p5e);
|
|
90
|
+
|
|
91
|
+
/* FK5 to Hipparcos orientation matrix and spin vector. */
|
|
92
|
+
iauFk5hip(r5h, s5h);
|
|
93
|
+
|
|
94
|
+
/* Accumulated Hipparcos wrt FK5 spin over that interval. */
|
|
95
|
+
iauSxp(t, s5h, vst);
|
|
96
|
+
|
|
97
|
+
/* Express the accumulated spin as a rotation matrix. */
|
|
98
|
+
iauRv2m(vst, rst);
|
|
99
|
+
|
|
100
|
+
/* Derotate the vector's FK5 axes back to date. */
|
|
101
|
+
iauTrxp(rst, p5e, p5);
|
|
102
|
+
|
|
103
|
+
/* Rotate the vector into the Hipparcos system. */
|
|
104
|
+
iauRxp(r5h, p5, ph);
|
|
105
|
+
|
|
106
|
+
/* Hipparcos vector to spherical. */
|
|
107
|
+
iauC2s(ph, &w, dh);
|
|
108
|
+
*rh = iauAnp(w);
|
|
109
|
+
|
|
110
|
+
return;
|
|
111
|
+
|
|
112
|
+
/*----------------------------------------------------------------------
|
|
113
|
+
**
|
|
114
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
115
|
+
**
|
|
116
|
+
** This file is redistributed and relicensed in accordance with
|
|
117
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
118
|
+
**
|
|
119
|
+
** The original library is available from IAU Standards of
|
|
120
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
121
|
+
**
|
|
122
|
+
**
|
|
123
|
+
**
|
|
124
|
+
**
|
|
125
|
+
**
|
|
126
|
+
** Copyright (C) 2013, Naoki Arita
|
|
127
|
+
** All rights reserved.
|
|
128
|
+
**
|
|
129
|
+
** Redistribution and use in source and binary forms, with or without
|
|
130
|
+
** modification, are permitted provided that the following conditions
|
|
131
|
+
** are met:
|
|
132
|
+
**
|
|
133
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
134
|
+
** notice, this list of conditions and the following disclaimer.
|
|
135
|
+
**
|
|
136
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
137
|
+
** notice, this list of conditions and the following disclaimer in
|
|
138
|
+
** the documentation and/or other materials provided with the
|
|
139
|
+
** distribution.
|
|
140
|
+
**
|
|
141
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
142
|
+
** the International Astronomical Union nor the names of its
|
|
143
|
+
** contributors may be used to endorse or promote products derived
|
|
144
|
+
** from this software without specific prior written permission.
|
|
145
|
+
**
|
|
146
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
147
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
148
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
149
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
150
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
151
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
152
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
153
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
154
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
155
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
156
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
157
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
158
|
+
**
|
|
159
|
+
**--------------------------------------------------------------------*/
|
|
160
|
+
}
|
data/ext/celes/fw2m.c
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
void iauFw2m(double gamb, double phib, double psi, double eps,
|
|
4
|
+
double r[3][3])
|
|
5
|
+
/*
|
|
6
|
+
** - - - - - - - -
|
|
7
|
+
** i a u F w 2 m
|
|
8
|
+
** - - - - - - - -
|
|
9
|
+
**
|
|
10
|
+
** Form rotation matrix given the Fukushima-Williams angles.
|
|
11
|
+
**
|
|
12
|
+
** Status: support function.
|
|
13
|
+
**
|
|
14
|
+
** Given:
|
|
15
|
+
** gamb double F-W angle gamma_bar (radians)
|
|
16
|
+
** phib double F-W angle phi_bar (radians)
|
|
17
|
+
** psi double F-W angle psi (radians)
|
|
18
|
+
** eps double F-W angle epsilon (radians)
|
|
19
|
+
**
|
|
20
|
+
** Returned:
|
|
21
|
+
** r double[3][3] rotation matrix
|
|
22
|
+
**
|
|
23
|
+
** Notes:
|
|
24
|
+
**
|
|
25
|
+
** 1) Naming the following points:
|
|
26
|
+
**
|
|
27
|
+
** e = J2000.0 ecliptic pole,
|
|
28
|
+
** p = GCRS pole,
|
|
29
|
+
** E = ecliptic pole of date,
|
|
30
|
+
** and P = CIP,
|
|
31
|
+
**
|
|
32
|
+
** the four Fukushima-Williams angles are as follows:
|
|
33
|
+
**
|
|
34
|
+
** gamb = gamma = epE
|
|
35
|
+
** phib = phi = pE
|
|
36
|
+
** psi = psi = pEP
|
|
37
|
+
** eps = epsilon = EP
|
|
38
|
+
**
|
|
39
|
+
** 2) The matrix representing the combined effects of frame bias,
|
|
40
|
+
** precession and nutation is:
|
|
41
|
+
**
|
|
42
|
+
** NxPxB = R_1(-eps).R_3(-psi).R_1(phib).R_3(gamb)
|
|
43
|
+
**
|
|
44
|
+
** 3) Three different matrices can be constructed, depending on the
|
|
45
|
+
** supplied angles:
|
|
46
|
+
**
|
|
47
|
+
** o To obtain the nutation x precession x frame bias matrix,
|
|
48
|
+
** generate the four precession angles, generate the nutation
|
|
49
|
+
** components and add them to the psi_bar and epsilon_A angles,
|
|
50
|
+
** and call the present function.
|
|
51
|
+
**
|
|
52
|
+
** o To obtain the precession x frame bias matrix, generate the
|
|
53
|
+
** four precession angles and call the present function.
|
|
54
|
+
**
|
|
55
|
+
** o To obtain the frame bias matrix, generate the four precession
|
|
56
|
+
** angles for date J2000.0 and call the present function.
|
|
57
|
+
**
|
|
58
|
+
** The nutation-only and precession-only matrices can if necessary
|
|
59
|
+
** be obtained by combining these three appropriately.
|
|
60
|
+
**
|
|
61
|
+
** Called:
|
|
62
|
+
** iauIr initialize r-matrix to identity
|
|
63
|
+
** iauRz rotate around Z-axis
|
|
64
|
+
** iauRx rotate around X-axis
|
|
65
|
+
**
|
|
66
|
+
** Reference:
|
|
67
|
+
**
|
|
68
|
+
** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351
|
|
69
|
+
**
|
|
70
|
+
** This revision: 2009 December 17
|
|
71
|
+
**
|
|
72
|
+
** Original version 2012-03-01
|
|
73
|
+
**
|
|
74
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
75
|
+
*/
|
|
76
|
+
{
|
|
77
|
+
/* Construct the matrix. */
|
|
78
|
+
iauIr(r);
|
|
79
|
+
iauRz(gamb, r);
|
|
80
|
+
iauRx(phib, r);
|
|
81
|
+
iauRz(-psi, r);
|
|
82
|
+
iauRx(-eps, r);
|
|
83
|
+
|
|
84
|
+
return;
|
|
85
|
+
|
|
86
|
+
/*----------------------------------------------------------------------
|
|
87
|
+
**
|
|
88
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
89
|
+
**
|
|
90
|
+
** This file is redistributed and relicensed in accordance with
|
|
91
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
92
|
+
**
|
|
93
|
+
** The original library is available from IAU Standards of
|
|
94
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
95
|
+
**
|
|
96
|
+
**
|
|
97
|
+
**
|
|
98
|
+
**
|
|
99
|
+
**
|
|
100
|
+
** Copyright (C) 2013, Naoki Arita
|
|
101
|
+
** All rights reserved.
|
|
102
|
+
**
|
|
103
|
+
** Redistribution and use in source and binary forms, with or without
|
|
104
|
+
** modification, are permitted provided that the following conditions
|
|
105
|
+
** are met:
|
|
106
|
+
**
|
|
107
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
108
|
+
** notice, this list of conditions and the following disclaimer.
|
|
109
|
+
**
|
|
110
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
111
|
+
** notice, this list of conditions and the following disclaimer in
|
|
112
|
+
** the documentation and/or other materials provided with the
|
|
113
|
+
** distribution.
|
|
114
|
+
**
|
|
115
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
116
|
+
** the International Astronomical Union nor the names of its
|
|
117
|
+
** contributors may be used to endorse or promote products derived
|
|
118
|
+
** from this software without specific prior written permission.
|
|
119
|
+
**
|
|
120
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
121
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
122
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
123
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
124
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
125
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
126
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
127
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
128
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
129
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
130
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
131
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
132
|
+
**
|
|
133
|
+
**--------------------------------------------------------------------*/
|
|
134
|
+
}
|
data/ext/celes/fw2xy.c
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
void iauFw2xy(double gamb, double phib, double psi, double eps,
|
|
4
|
+
double *x, double *y)
|
|
5
|
+
/*
|
|
6
|
+
** - - - - - - - - -
|
|
7
|
+
** i a u F w 2 x y
|
|
8
|
+
** - - - - - - - - -
|
|
9
|
+
**
|
|
10
|
+
** CIP X,Y given Fukushima-Williams bias-precession-nutation angles.
|
|
11
|
+
**
|
|
12
|
+
** Status: support function.
|
|
13
|
+
**
|
|
14
|
+
** Given:
|
|
15
|
+
** gamb double F-W angle gamma_bar (radians)
|
|
16
|
+
** phib double F-W angle phi_bar (radians)
|
|
17
|
+
** psi double F-W angle psi (radians)
|
|
18
|
+
** eps double F-W angle epsilon (radians)
|
|
19
|
+
**
|
|
20
|
+
** Returned:
|
|
21
|
+
** x,y double CIP X,Y ("radians")
|
|
22
|
+
**
|
|
23
|
+
** Notes:
|
|
24
|
+
**
|
|
25
|
+
** 1) Naming the following points:
|
|
26
|
+
**
|
|
27
|
+
** e = J2000.0 ecliptic pole,
|
|
28
|
+
** p = GCRS pole
|
|
29
|
+
** E = ecliptic pole of date,
|
|
30
|
+
** and P = CIP,
|
|
31
|
+
**
|
|
32
|
+
** the four Fukushima-Williams angles are as follows:
|
|
33
|
+
**
|
|
34
|
+
** gamb = gamma = epE
|
|
35
|
+
** phib = phi = pE
|
|
36
|
+
** psi = psi = pEP
|
|
37
|
+
** eps = epsilon = EP
|
|
38
|
+
**
|
|
39
|
+
** 2) The matrix representing the combined effects of frame bias,
|
|
40
|
+
** precession and nutation is:
|
|
41
|
+
**
|
|
42
|
+
** NxPxB = R_1(-epsA).R_3(-psi).R_1(phib).R_3(gamb)
|
|
43
|
+
**
|
|
44
|
+
** X,Y are elements (3,1) and (3,2) of the matrix.
|
|
45
|
+
**
|
|
46
|
+
** Called:
|
|
47
|
+
** iauFw2m F-W angles to r-matrix
|
|
48
|
+
** iauBpn2xy extract CIP X,Y coordinates from NPB matrix
|
|
49
|
+
**
|
|
50
|
+
** Reference:
|
|
51
|
+
**
|
|
52
|
+
** Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351
|
|
53
|
+
**
|
|
54
|
+
** This revision: 2009 December 17
|
|
55
|
+
**
|
|
56
|
+
** Original version 2012-03-01
|
|
57
|
+
**
|
|
58
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
59
|
+
*/
|
|
60
|
+
{
|
|
61
|
+
double r[3][3];
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
/* Form NxPxB matrix. */
|
|
65
|
+
iauFw2m(gamb, phib, psi, eps, r);
|
|
66
|
+
|
|
67
|
+
/* Extract CIP X,Y. */
|
|
68
|
+
iauBpn2xy(r, x, y);
|
|
69
|
+
|
|
70
|
+
return;
|
|
71
|
+
|
|
72
|
+
/*----------------------------------------------------------------------
|
|
73
|
+
**
|
|
74
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
75
|
+
**
|
|
76
|
+
** This file is redistributed and relicensed in accordance with
|
|
77
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
78
|
+
**
|
|
79
|
+
** The original library is available from IAU Standards of
|
|
80
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
81
|
+
**
|
|
82
|
+
**
|
|
83
|
+
**
|
|
84
|
+
**
|
|
85
|
+
**
|
|
86
|
+
** Copyright (C) 2013, Naoki Arita
|
|
87
|
+
** All rights reserved.
|
|
88
|
+
**
|
|
89
|
+
** Redistribution and use in source and binary forms, with or without
|
|
90
|
+
** modification, are permitted provided that the following conditions
|
|
91
|
+
** are met:
|
|
92
|
+
**
|
|
93
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
94
|
+
** notice, this list of conditions and the following disclaimer.
|
|
95
|
+
**
|
|
96
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
97
|
+
** notice, this list of conditions and the following disclaimer in
|
|
98
|
+
** the documentation and/or other materials provided with the
|
|
99
|
+
** distribution.
|
|
100
|
+
**
|
|
101
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
102
|
+
** the International Astronomical Union nor the names of its
|
|
103
|
+
** contributors may be used to endorse or promote products derived
|
|
104
|
+
** from this software without specific prior written permission.
|
|
105
|
+
**
|
|
106
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
107
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
108
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
109
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
110
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
111
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
112
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
113
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
114
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
115
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
116
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
117
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
118
|
+
**
|
|
119
|
+
**--------------------------------------------------------------------*/
|
|
120
|
+
}
|
data/ext/celes/gc2gd.c
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
#include "sofam.h"
|
|
2
|
+
|
|
3
|
+
int iauGc2gd ( int n, double xyz[3],
|
|
4
|
+
double *elong, double *phi, double *height )
|
|
5
|
+
/*
|
|
6
|
+
** - - - - - - - - -
|
|
7
|
+
** i a u G c 2 g d
|
|
8
|
+
** - - - - - - - - -
|
|
9
|
+
**
|
|
10
|
+
** Transform geocentric coordinates to geodetic using the specified
|
|
11
|
+
** reference ellipsoid.
|
|
12
|
+
**
|
|
13
|
+
** Status: canonical transformation.
|
|
14
|
+
**
|
|
15
|
+
** Given:
|
|
16
|
+
** n int ellipsoid identifier (Note 1)
|
|
17
|
+
** xyz double[3] geocentric vector (Note 2)
|
|
18
|
+
**
|
|
19
|
+
** Returned:
|
|
20
|
+
** elong double longitude (radians, east +ve)
|
|
21
|
+
** phi double latitude (geodetic, radians, Note 3)
|
|
22
|
+
** height double height above ellipsoid (geodetic, Notes 2,3)
|
|
23
|
+
**
|
|
24
|
+
** Returned (function value):
|
|
25
|
+
** int status: 0 = OK
|
|
26
|
+
** -1 = illegal identifier (Note 3)
|
|
27
|
+
** -2 = internal error (Note 3)
|
|
28
|
+
**
|
|
29
|
+
** Notes:
|
|
30
|
+
**
|
|
31
|
+
** 1) The identifier n is a number that specifies the choice of
|
|
32
|
+
** reference ellipsoid. The following are supported:
|
|
33
|
+
**
|
|
34
|
+
** n ellipsoid
|
|
35
|
+
**
|
|
36
|
+
** 1 WGS84
|
|
37
|
+
** 2 GRS80
|
|
38
|
+
** 3 WGS72
|
|
39
|
+
**
|
|
40
|
+
** The n value has no significance outside the SOFA software. For
|
|
41
|
+
** convenience, symbols WGS84 etc. are defined in sofam.h.
|
|
42
|
+
**
|
|
43
|
+
** 2) The geocentric vector (xyz, given) and height (height, returned)
|
|
44
|
+
** are in meters.
|
|
45
|
+
**
|
|
46
|
+
** 3) An error status -1 means that the identifier n is illegal. An
|
|
47
|
+
** error status -2 is theoretically impossible. In all error cases,
|
|
48
|
+
** phi and height are both set to -1e9.
|
|
49
|
+
**
|
|
50
|
+
** 4) The inverse transformation is performed in the function iauGd2gc.
|
|
51
|
+
**
|
|
52
|
+
** Called:
|
|
53
|
+
** iauEform Earth reference ellipsoids
|
|
54
|
+
** iauGc2gde geocentric to geodetic transformation, general
|
|
55
|
+
**
|
|
56
|
+
** This revision: 2012 Febuary 23
|
|
57
|
+
**
|
|
58
|
+
** Original version 2012-03-01
|
|
59
|
+
**
|
|
60
|
+
** Copyright (C) 2013 Naoki Arita. See notes at end.
|
|
61
|
+
*/
|
|
62
|
+
{
|
|
63
|
+
int j;
|
|
64
|
+
double a, f;
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
/* Obtain reference ellipsoid parameters. */
|
|
68
|
+
j = iauEform ( n, &a, &f );
|
|
69
|
+
|
|
70
|
+
/* If OK, transform x,y,z to longitude, geodetic latitude, height. */
|
|
71
|
+
if ( j == 0 ) {
|
|
72
|
+
j = iauGc2gde ( a, f, xyz, elong, phi, height );
|
|
73
|
+
if ( j < 0 ) j = -2;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* Deal with any errors. */
|
|
77
|
+
if ( j < 0 ) {
|
|
78
|
+
*phi = -1e9;
|
|
79
|
+
*height = -1e9;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/* Return the status. */
|
|
83
|
+
return j;
|
|
84
|
+
|
|
85
|
+
/*----------------------------------------------------------------------
|
|
86
|
+
**
|
|
87
|
+
** Celes is a wrapper of the SOFA Library for Ruby.
|
|
88
|
+
**
|
|
89
|
+
** This file is redistributed and relicensed in accordance with
|
|
90
|
+
** the SOFA Software License (http://www.iausofa.org/tandc.html).
|
|
91
|
+
**
|
|
92
|
+
** The original library is available from IAU Standards of
|
|
93
|
+
** Fundamental Astronomy (http://www.iausofa.org/).
|
|
94
|
+
**
|
|
95
|
+
**
|
|
96
|
+
**
|
|
97
|
+
**
|
|
98
|
+
**
|
|
99
|
+
** Copyright (C) 2013, Naoki Arita
|
|
100
|
+
** All rights reserved.
|
|
101
|
+
**
|
|
102
|
+
** Redistribution and use in source and binary forms, with or without
|
|
103
|
+
** modification, are permitted provided that the following conditions
|
|
104
|
+
** are met:
|
|
105
|
+
**
|
|
106
|
+
** 1 Redistributions of source code must retain the above copyright
|
|
107
|
+
** notice, this list of conditions and the following disclaimer.
|
|
108
|
+
**
|
|
109
|
+
** 2 Redistributions in binary form must reproduce the above copyright
|
|
110
|
+
** notice, this list of conditions and the following disclaimer in
|
|
111
|
+
** the documentation and/or other materials provided with the
|
|
112
|
+
** distribution.
|
|
113
|
+
**
|
|
114
|
+
** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
|
|
115
|
+
** the International Astronomical Union nor the names of its
|
|
116
|
+
** contributors may be used to endorse or promote products derived
|
|
117
|
+
** from this software without specific prior written permission.
|
|
118
|
+
**
|
|
119
|
+
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
120
|
+
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
121
|
+
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
122
|
+
** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
123
|
+
** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
124
|
+
** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
125
|
+
** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
126
|
+
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
127
|
+
** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
128
|
+
** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
129
|
+
** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
130
|
+
** POSSIBILITY OF SUCH DAMAGE.
|
|
131
|
+
**
|
|
132
|
+
**--------------------------------------------------------------------*/
|
|
133
|
+
|
|
134
|
+
}
|