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.
Files changed (202) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +32 -0
  4. data/README.md +179 -0
  5. data/Rakefile +1 -0
  6. data/celes.gemspec +22 -0
  7. data/ext/celes/a2af.c +120 -0
  8. data/ext/celes/a2tf.c +116 -0
  9. data/ext/celes/af2a.c +107 -0
  10. data/ext/celes/anp.c +82 -0
  11. data/ext/celes/anpm.c +82 -0
  12. data/ext/celes/bi00.c +116 -0
  13. data/ext/celes/bp00.c +173 -0
  14. data/ext/celes/bp06.c +136 -0
  15. data/ext/celes/bpn2xy.c +100 -0
  16. data/ext/celes/c2i00a.c +139 -0
  17. data/ext/celes/c2i00b.c +139 -0
  18. data/ext/celes/c2i06a.c +136 -0
  19. data/ext/celes/c2ibpn.c +142 -0
  20. data/ext/celes/c2ixy.c +131 -0
  21. data/ext/celes/c2ixys.c +123 -0
  22. data/ext/celes/c2s.c +96 -0
  23. data/ext/celes/c2t00a.c +154 -0
  24. data/ext/celes/c2t00b.c +150 -0
  25. data/ext/celes/c2t06a.c +152 -0
  26. data/ext/celes/c2tcio.c +122 -0
  27. data/ext/celes/c2teqx.c +122 -0
  28. data/ext/celes/c2tpe.c +167 -0
  29. data/ext/celes/c2txy.c +159 -0
  30. data/ext/celes/cal2jd.c +139 -0
  31. data/ext/celes/celes_core.c +2522 -0
  32. data/ext/celes/cp.c +80 -0
  33. data/ext/celes/cpv.c +82 -0
  34. data/ext/celes/cr.c +83 -0
  35. data/ext/celes/d2dtf.c +206 -0
  36. data/ext/celes/d2tf.c +160 -0
  37. data/ext/celes/dat.c +289 -0
  38. data/ext/celes/depend +25 -0
  39. data/ext/celes/dtdb.c +1213 -0
  40. data/ext/celes/dtf2d.c +196 -0
  41. data/ext/celes/ee00.c +128 -0
  42. data/ext/celes/ee00a.c +135 -0
  43. data/ext/celes/ee00b.c +141 -0
  44. data/ext/celes/ee06a.c +122 -0
  45. data/ext/celes/eect00.c +282 -0
  46. data/ext/celes/eform.c +147 -0
  47. data/ext/celes/eo06a.c +131 -0
  48. data/ext/celes/eors.c +108 -0
  49. data/ext/celes/epb.c +96 -0
  50. data/ext/celes/epb2jd.c +91 -0
  51. data/ext/celes/epj.c +93 -0
  52. data/ext/celes/epj2jd.c +91 -0
  53. data/ext/celes/epv00.c +2589 -0
  54. data/ext/celes/eqeq94.c +131 -0
  55. data/ext/celes/era00.c +136 -0
  56. data/ext/celes/extconf.rb +4 -0
  57. data/ext/celes/fad03.c +103 -0
  58. data/ext/celes/fae03.c +102 -0
  59. data/ext/celes/faf03.c +106 -0
  60. data/ext/celes/faju03.c +102 -0
  61. data/ext/celes/fal03.c +103 -0
  62. data/ext/celes/falp03.c +103 -0
  63. data/ext/celes/fama03.c +102 -0
  64. data/ext/celes/fame03.c +102 -0
  65. data/ext/celes/fane03.c +99 -0
  66. data/ext/celes/faom03.c +104 -0
  67. data/ext/celes/fapa03.c +103 -0
  68. data/ext/celes/fasa03.c +102 -0
  69. data/ext/celes/faur03.c +99 -0
  70. data/ext/celes/fave03.c +102 -0
  71. data/ext/celes/fk52h.c +143 -0
  72. data/ext/celes/fk5hip.c +126 -0
  73. data/ext/celes/fk5hz.c +160 -0
  74. data/ext/celes/fw2m.c +134 -0
  75. data/ext/celes/fw2xy.c +120 -0
  76. data/ext/celes/gc2gd.c +134 -0
  77. data/ext/celes/gc2gde.c +200 -0
  78. data/ext/celes/gd2gc.c +134 -0
  79. data/ext/celes/gd2gce.c +138 -0
  80. data/ext/celes/gmst00.c +145 -0
  81. data/ext/celes/gmst06.c +136 -0
  82. data/ext/celes/gmst82.c +151 -0
  83. data/ext/celes/gst00a.c +138 -0
  84. data/ext/celes/gst00b.c +146 -0
  85. data/ext/celes/gst06.c +140 -0
  86. data/ext/celes/gst06a.c +131 -0
  87. data/ext/celes/gst94.c +131 -0
  88. data/ext/celes/h2fk5.c +148 -0
  89. data/ext/celes/hfk5z.c +175 -0
  90. data/ext/celes/ir.c +83 -0
  91. data/ext/celes/jd2cal.c +155 -0
  92. data/ext/celes/jdcalf.c +161 -0
  93. data/ext/celes/num00a.c +121 -0
  94. data/ext/celes/num00b.c +121 -0
  95. data/ext/celes/num06a.c +125 -0
  96. data/ext/celes/numat.c +109 -0
  97. data/ext/celes/nut00a.c +2047 -0
  98. data/ext/celes/nut00b.c +372 -0
  99. data/ext/celes/nut06a.c +153 -0
  100. data/ext/celes/nut80.c +325 -0
  101. data/ext/celes/nutm80.c +117 -0
  102. data/ext/celes/obl06.c +118 -0
  103. data/ext/celes/obl80.c +118 -0
  104. data/ext/celes/p06e.c +321 -0
  105. data/ext/celes/p2pv.c +83 -0
  106. data/ext/celes/p2s.c +91 -0
  107. data/ext/celes/pap.c +139 -0
  108. data/ext/celes/pas.c +96 -0
  109. data/ext/celes/pb06.c +144 -0
  110. data/ext/celes/pdp.c +84 -0
  111. data/ext/celes/pfw06.c +165 -0
  112. data/ext/celes/plan94.c +514 -0
  113. data/ext/celes/pm.c +83 -0
  114. data/ext/celes/pmat00.c +118 -0
  115. data/ext/celes/pmat06.c +122 -0
  116. data/ext/celes/pmat76.c +141 -0
  117. data/ext/celes/pmp.c +85 -0
  118. data/ext/celes/pn.c +109 -0
  119. data/ext/celes/pn00.c +177 -0
  120. data/ext/celes/pn00a.c +162 -0
  121. data/ext/celes/pn00b.c +162 -0
  122. data/ext/celes/pn06.c +187 -0
  123. data/ext/celes/pn06a.c +152 -0
  124. data/ext/celes/pnm00a.c +121 -0
  125. data/ext/celes/pnm00b.c +121 -0
  126. data/ext/celes/pnm06a.c +124 -0
  127. data/ext/celes/pnm80.c +126 -0
  128. data/ext/celes/pom00.c +115 -0
  129. data/ext/celes/ppp.c +85 -0
  130. data/ext/celes/ppsp.c +94 -0
  131. data/ext/celes/pr00.c +142 -0
  132. data/ext/celes/prec76.c +148 -0
  133. data/ext/celes/pv2p.c +81 -0
  134. data/ext/celes/pv2s.c +144 -0
  135. data/ext/celes/pvdpv.c +102 -0
  136. data/ext/celes/pvm.c +86 -0
  137. data/ext/celes/pvmpv.c +87 -0
  138. data/ext/celes/pvppv.c +87 -0
  139. data/ext/celes/pvstar.c +207 -0
  140. data/ext/celes/pvu.c +93 -0
  141. data/ext/celes/pvup.c +88 -0
  142. data/ext/celes/pvxpv.c +107 -0
  143. data/ext/celes/pxp.c +94 -0
  144. data/ext/celes/rm2v.c +111 -0
  145. data/ext/celes/rv2m.c +118 -0
  146. data/ext/celes/rx.c +110 -0
  147. data/ext/celes/rxp.c +99 -0
  148. data/ext/celes/rxpv.c +86 -0
  149. data/ext/celes/rxr.c +99 -0
  150. data/ext/celes/ry.c +110 -0
  151. data/ext/celes/rz.c +110 -0
  152. data/ext/celes/s00.c +371 -0
  153. data/ext/celes/s00a.c +143 -0
  154. data/ext/celes/s00b.c +143 -0
  155. data/ext/celes/s06.c +368 -0
  156. data/ext/celes/s06a.c +145 -0
  157. data/ext/celes/s2c.c +85 -0
  158. data/ext/celes/s2p.c +88 -0
  159. data/ext/celes/s2pv.c +103 -0
  160. data/ext/celes/s2xpv.c +87 -0
  161. data/ext/celes/sepp.c +105 -0
  162. data/ext/celes/seps.c +93 -0
  163. data/ext/celes/sofa.h +379 -0
  164. data/ext/celes/sofam.h +155 -0
  165. data/ext/celes/sp00.c +118 -0
  166. data/ext/celes/starpm.c +205 -0
  167. data/ext/celes/starpv.c +264 -0
  168. data/ext/celes/sxp.c +84 -0
  169. data/ext/celes/sxpv.c +85 -0
  170. data/ext/celes/taitt.c +110 -0
  171. data/ext/celes/taiut1.c +112 -0
  172. data/ext/celes/taiutc.c +182 -0
  173. data/ext/celes/tcbtdb.c +132 -0
  174. data/ext/celes/tcgtt.c +109 -0
  175. data/ext/celes/tdbtcb.c +137 -0
  176. data/ext/celes/tdbtt.c +122 -0
  177. data/ext/celes/tf2a.c +107 -0
  178. data/ext/celes/tf2d.c +107 -0
  179. data/ext/celes/tr.c +93 -0
  180. data/ext/celes/trxp.c +93 -0
  181. data/ext/celes/trxpv.c +93 -0
  182. data/ext/celes/tttai.c +110 -0
  183. data/ext/celes/tttcg.c +112 -0
  184. data/ext/celes/tttdb.c +121 -0
  185. data/ext/celes/ttut1.c +110 -0
  186. data/ext/celes/ut1tai.c +111 -0
  187. data/ext/celes/ut1tt.c +110 -0
  188. data/ext/celes/ut1utc.c +193 -0
  189. data/ext/celes/utctai.c +163 -0
  190. data/ext/celes/utcut1.c +151 -0
  191. data/ext/celes/xy06.c +2758 -0
  192. data/ext/celes/xys00a.c +133 -0
  193. data/ext/celes/xys00b.c +133 -0
  194. data/ext/celes/xys06a.c +133 -0
  195. data/ext/celes/zp.c +77 -0
  196. data/ext/celes/zpv.c +79 -0
  197. data/ext/celes/zr.c +83 -0
  198. data/lib/celes.rb +6 -0
  199. data/lib/celes/version.rb +3 -0
  200. data/sofa_20120301.diff +31384 -0
  201. data/test/t_sofa.rb +8228 -0
  202. metadata +251 -0
@@ -0,0 +1,122 @@
1
+ #include "sofam.h"
2
+
3
+ void iauC2tcio(double rc2i[3][3], double era, double rpom[3][3],
4
+ double rc2t[3][3])
5
+ /*
6
+ ** - - - - - - - - - -
7
+ ** i a u C 2 t c i o
8
+ ** - - - - - - - - - -
9
+ **
10
+ ** Assemble the celestial to terrestrial matrix from CIO-based
11
+ ** components (the celestial-to-intermediate matrix, the Earth Rotation
12
+ ** Angle and the polar motion matrix).
13
+ **
14
+ ** Status: support function.
15
+ **
16
+ ** Given:
17
+ ** rc2i double[3][3] celestial-to-intermediate matrix
18
+ ** era double Earth rotation angle
19
+ ** rpom double[3][3] polar-motion matrix
20
+ **
21
+ ** Returned:
22
+ ** rc2t double[3][3] celestial-to-terrestrial matrix
23
+ **
24
+ ** Notes:
25
+ **
26
+ ** 1) This function constructs the rotation matrix that transforms
27
+ ** vectors in the celestial system into vectors in the terrestrial
28
+ ** system. It does so starting from precomputed components, namely
29
+ ** the matrix which rotates from celestial coordinates to the
30
+ ** intermediate frame, the Earth rotation angle and the polar motion
31
+ ** matrix. One use of the present function is when generating a
32
+ ** series of celestial-to-terrestrial matrices where only the Earth
33
+ ** Rotation Angle changes, avoiding the considerable overhead of
34
+ ** recomputing the precession-nutation more often than necessary to
35
+ ** achieve given accuracy objectives.
36
+ **
37
+ ** 2) The relationship between the arguments is as follows:
38
+ **
39
+ ** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
40
+ **
41
+ ** = rc2t * [CRS]
42
+ **
43
+ ** where [CRS] is a vector in the Geocentric Celestial Reference
44
+ ** System and [TRS] is a vector in the International Terrestrial
45
+ ** Reference System (see IERS Conventions 2003).
46
+ **
47
+ ** Called:
48
+ ** iauCr copy r-matrix
49
+ ** iauRz rotate around Z-axis
50
+ ** iauRxr product of two r-matrices
51
+ **
52
+ ** Reference:
53
+ **
54
+ ** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003),
55
+ ** IERS Technical Note No. 32, BKG
56
+ **
57
+ ** This revision: 2008 May 11
58
+ **
59
+ ** Original version 2012-03-01
60
+ **
61
+ ** Copyright (C) 2013 Naoki Arita. See notes at end.
62
+ */
63
+ {
64
+ double r[3][3];
65
+
66
+
67
+ /* Construct the matrix. */
68
+ iauCr(rc2i, r);
69
+ iauRz(era, r);
70
+ iauRxr(rpom, r, rc2t);
71
+
72
+ return;
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
+ }
@@ -0,0 +1,122 @@
1
+ #include "sofam.h"
2
+
3
+ void iauC2teqx(double rbpn[3][3], double gst, double rpom[3][3],
4
+ double rc2t[3][3])
5
+ /*
6
+ ** - - - - - - - - - -
7
+ ** i a u C 2 t e q x
8
+ ** - - - - - - - - - -
9
+ **
10
+ ** Assemble the celestial to terrestrial matrix from equinox-based
11
+ ** components (the celestial-to-true matrix, the Greenwich Apparent
12
+ ** Sidereal Time and the polar motion matrix).
13
+ **
14
+ ** Status: support function.
15
+ **
16
+ ** Given:
17
+ ** rbpn double[3][3] celestial-to-true matrix
18
+ ** gst double Greenwich (apparent) Sidereal Time
19
+ ** rpom double[3][3] polar-motion matrix
20
+ **
21
+ ** Returned:
22
+ ** rc2t double[3][3] celestial-to-terrestrial matrix (Note 2)
23
+ **
24
+ ** Notes:
25
+ **
26
+ ** 1) This function constructs the rotation matrix that transforms
27
+ ** vectors in the celestial system into vectors in the terrestrial
28
+ ** system. It does so starting from precomputed components, namely
29
+ ** the matrix which rotates from celestial coordinates to the
30
+ ** true equator and equinox of date, the Greenwich Apparent Sidereal
31
+ ** Time and the polar motion matrix. One use of the present function
32
+ ** is when generating a series of celestial-to-terrestrial matrices
33
+ ** where only the Sidereal Time changes, avoiding the considerable
34
+ ** overhead of recomputing the precession-nutation more often than
35
+ ** necessary to achieve given accuracy objectives.
36
+ **
37
+ ** 2) The relationship between the arguments is as follows:
38
+ **
39
+ ** [TRS] = rpom * R_3(gst) * rbpn * [CRS]
40
+ **
41
+ ** = rc2t * [CRS]
42
+ **
43
+ ** where [CRS] is a vector in the Geocentric Celestial Reference
44
+ ** System and [TRS] is a vector in the International Terrestrial
45
+ ** Reference System (see IERS Conventions 2003).
46
+ **
47
+ ** Called:
48
+ ** iauCr copy r-matrix
49
+ ** iauRz rotate around Z-axis
50
+ ** iauRxr product of two r-matrices
51
+ **
52
+ ** Reference:
53
+ **
54
+ ** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
55
+ ** IERS Technical Note No. 32, BKG (2004)
56
+ **
57
+ ** This revision: 2008 May 11
58
+ **
59
+ ** Original version 2012-03-01
60
+ **
61
+ ** Copyright (C) 2013 Naoki Arita. See notes at end.
62
+ */
63
+ {
64
+ double r[3][3];
65
+
66
+
67
+ /* Construct the matrix. */
68
+ iauCr(rbpn, r);
69
+ iauRz(gst, r);
70
+ iauRxr(rpom, r, rc2t);
71
+
72
+ return;
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
+ }
@@ -0,0 +1,167 @@
1
+ #include "sofam.h"
2
+
3
+ void iauC2tpe(double tta, double ttb, double uta, double utb,
4
+ double dpsi, double deps, double xp, double yp,
5
+ double rc2t[3][3])
6
+ /*
7
+ ** - - - - - - - - -
8
+ ** i a u C 2 t p e
9
+ ** - - - - - - - - -
10
+ **
11
+ ** Form the celestial to terrestrial matrix given the date, the UT1,
12
+ ** the nutation and the polar motion. IAU 2000.
13
+ **
14
+ ** Status: support function.
15
+ **
16
+ ** Given:
17
+ ** tta,ttb double TT as a 2-part Julian Date (Note 1)
18
+ ** uta,utb double UT1 as a 2-part Julian Date (Note 1)
19
+ ** dpsi,deps double nutation (Note 2)
20
+ ** xp,yp double coordinates of the pole (radians, Note 3)
21
+ **
22
+ ** Returned:
23
+ ** rc2t double[3][3] celestial-to-terrestrial matrix (Note 4)
24
+ **
25
+ ** Notes:
26
+ **
27
+ ** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates,
28
+ ** apportioned in any convenient way between the arguments uta and
29
+ ** utb. For example, JD(UT1)=2450123.7 could be expressed in any of
30
+ ** these ways, among others:
31
+ **
32
+ ** uta utb
33
+ **
34
+ ** 2450123.7 0.0 (JD method)
35
+ ** 2451545.0 -1421.3 (J2000 method)
36
+ ** 2400000.5 50123.2 (MJD method)
37
+ ** 2450123.5 0.2 (date & time method)
38
+ **
39
+ ** The JD method is the most natural and convenient to use in
40
+ ** cases where the loss of several decimal digits of resolution is
41
+ ** acceptable. The J2000 and MJD methods are good compromises
42
+ ** between resolution and convenience. In the case of uta,utb, the
43
+ ** date & time method is best matched to the Earth rotation angle
44
+ ** algorithm used: maximum precision is delivered when the uta
45
+ ** argument is for 0hrs UT1 on the day in question and the utb
46
+ ** argument lies in the range 0 to 1, or vice versa.
47
+ **
48
+ ** 2) The caller is responsible for providing the nutation components;
49
+ ** they are in longitude and obliquity, in radians and are with
50
+ ** respect to the equinox and ecliptic of date. For high-accuracy
51
+ ** applications, free core nutation should be included as well as
52
+ ** any other relevant corrections to the position of the CIP.
53
+ **
54
+ ** 3) The arguments xp and yp are the coordinates (in radians) of the
55
+ ** Celestial Intermediate Pole with respect to the International
56
+ ** Terrestrial Reference System (see IERS Conventions 2003),
57
+ ** measured along the meridians to 0 and 90 deg west respectively.
58
+ **
59
+ ** 4) The matrix rc2t transforms from celestial to terrestrial
60
+ ** coordinates:
61
+ **
62
+ ** [TRS] = RPOM * R_3(GST) * RBPN * [CRS]
63
+ **
64
+ ** = rc2t * [CRS]
65
+ **
66
+ ** where [CRS] is a vector in the Geocentric Celestial Reference
67
+ ** System and [TRS] is a vector in the International Terrestrial
68
+ ** Reference System (see IERS Conventions 2003), RBPN is the
69
+ ** bias-precession-nutation matrix, GST is the Greenwich (apparent)
70
+ ** Sidereal Time and RPOM is the polar motion matrix.
71
+ **
72
+ ** 5) Although its name does not include "00", This function is in fact
73
+ ** specific to the IAU 2000 models.
74
+ **
75
+ ** Called:
76
+ ** iauPn00 bias/precession/nutation results, IAU 2000
77
+ ** iauGmst00 Greenwich mean sidereal time, IAU 2000
78
+ ** iauSp00 the TIO locator s', IERS 2000
79
+ ** iauEe00 equation of the equinoxes, IAU 2000
80
+ ** iauPom00 polar motion matrix
81
+ ** iauC2teqx form equinox-based celestial-to-terrestrial matrix
82
+ **
83
+ ** Reference:
84
+ **
85
+ ** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
86
+ ** IERS Technical Note No. 32, BKG (2004)
87
+ **
88
+ ** This revision: 2009 April 1
89
+ **
90
+ ** Original version 2012-03-01
91
+ **
92
+ ** Copyright (C) 2013 Naoki Arita. See notes at end.
93
+ */
94
+ {
95
+ double epsa, rb[3][3], rp[3][3], rbp[3][3], rn[3][3],
96
+ rbpn[3][3], gmst, ee, sp, rpom[3][3];
97
+
98
+
99
+ /* Form the celestial-to-true matrix for this TT. */
100
+ iauPn00(tta, ttb, dpsi, deps, &epsa, rb, rp, rbp, rn, rbpn);
101
+
102
+ /* Predict the Greenwich Mean Sidereal Time for this UT1 and TT. */
103
+ gmst = iauGmst00(uta, utb, tta, ttb);
104
+
105
+ /* Predict the equation of the equinoxes given TT and nutation. */
106
+ ee = iauEe00(tta, ttb, epsa, dpsi);
107
+
108
+ /* Estimate s'. */
109
+ sp = iauSp00(tta, ttb);
110
+
111
+ /* Form the polar motion matrix. */
112
+ iauPom00(xp, yp, sp, rpom);
113
+
114
+ /* Combine to form the celestial-to-terrestrial matrix. */
115
+ iauC2teqx(rbpn, gmst + ee, rpom, rc2t);
116
+
117
+ return;
118
+
119
+ /*----------------------------------------------------------------------
120
+ **
121
+ ** Celes is a wrapper of the SOFA Library for Ruby.
122
+ **
123
+ ** This file is redistributed and relicensed in accordance with
124
+ ** the SOFA Software License (http://www.iausofa.org/tandc.html).
125
+ **
126
+ ** The original library is available from IAU Standards of
127
+ ** Fundamental Astronomy (http://www.iausofa.org/).
128
+ **
129
+ **
130
+ **
131
+ **
132
+ **
133
+ ** Copyright (C) 2013, Naoki Arita
134
+ ** All rights reserved.
135
+ **
136
+ ** Redistribution and use in source and binary forms, with or without
137
+ ** modification, are permitted provided that the following conditions
138
+ ** are met:
139
+ **
140
+ ** 1 Redistributions of source code must retain the above copyright
141
+ ** notice, this list of conditions and the following disclaimer.
142
+ **
143
+ ** 2 Redistributions in binary form must reproduce the above copyright
144
+ ** notice, this list of conditions and the following disclaimer in
145
+ ** the documentation and/or other materials provided with the
146
+ ** distribution.
147
+ **
148
+ ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
149
+ ** the International Astronomical Union nor the names of its
150
+ ** contributors may be used to endorse or promote products derived
151
+ ** from this software without specific prior written permission.
152
+ **
153
+ ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
154
+ ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
155
+ ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
156
+ ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
157
+ ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
158
+ ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
159
+ ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
160
+ ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
161
+ ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
162
+ ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
163
+ ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
164
+ ** POSSIBILITY OF SUCH DAMAGE.
165
+ **
166
+ **--------------------------------------------------------------------*/
167
+ }
@@ -0,0 +1,159 @@
1
+ #include "sofam.h"
2
+
3
+ void iauC2txy(double tta, double ttb, double uta, double utb,
4
+ double x, double y, double xp, double yp,
5
+ double rc2t[3][3])
6
+ /*
7
+ ** - - - - - - - - -
8
+ ** i a u C 2 t x y
9
+ ** - - - - - - - - -
10
+ **
11
+ ** Form the celestial to terrestrial matrix given the date, the UT1,
12
+ ** the CIP coordinates and the polar motion. IAU 2000.
13
+ **
14
+ ** Status: support function.
15
+ **
16
+ ** Given:
17
+ ** tta,ttb double TT as a 2-part Julian Date (Note 1)
18
+ ** uta,utb double UT1 as a 2-part Julian Date (Note 1)
19
+ ** x,y double Celestial Intermediate Pole (Note 2)
20
+ ** xp,yp double coordinates of the pole (radians, Note 3)
21
+ **
22
+ ** Returned:
23
+ ** rc2t double[3][3] celestial-to-terrestrial matrix (Note 4)
24
+ **
25
+ ** Notes:
26
+ **
27
+ ** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates,
28
+ ** apportioned in any convenient way between the arguments uta and
29
+ ** utb. For example, JD(UT1)=2450123.7 could be expressed in any o
30
+ ** these ways, among others:
31
+ **
32
+ ** uta utb
33
+ **
34
+ ** 2450123.7 0.0 (JD method)
35
+ ** 2451545.0 -1421.3 (J2000 method)
36
+ ** 2400000.5 50123.2 (MJD method)
37
+ ** 2450123.5 0.2 (date & time method)
38
+ **
39
+ ** The JD method is the most natural and convenient to use in
40
+ ** cases where the loss of several decimal digits of resolution is
41
+ ** acceptable. The J2000 and MJD methods are good compromises
42
+ ** between resolution and convenience. In the case of uta,utb, the
43
+ ** date & time method is best matched to the Earth rotation angle
44
+ ** algorithm used: maximum precision is delivered when the uta
45
+ ** argument is for 0hrs UT1 on the day in question and the utb
46
+ ** argument lies in the range 0 to 1, or vice versa.
47
+ **
48
+ ** 2) The Celestial Intermediate Pole coordinates are the x,y
49
+ ** components of the unit vector in the Geocentric Celestial
50
+ ** Reference System.
51
+ **
52
+ ** 3) The arguments xp and yp are the coordinates (in radians) of the
53
+ ** Celestial Intermediate Pole with respect to the International
54
+ ** Terrestrial Reference System (see IERS Conventions 2003),
55
+ ** measured along the meridians to 0 and 90 deg west respectively.
56
+ **
57
+ ** 4) The matrix rc2t transforms from celestial to terrestrial
58
+ ** coordinates:
59
+ **
60
+ ** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS]
61
+ **
62
+ ** = rc2t * [CRS]
63
+ **
64
+ ** where [CRS] is a vector in the Geocentric Celestial Reference
65
+ ** System and [TRS] is a vector in the International Terrestrial
66
+ ** Reference System (see IERS Conventions 2003), ERA is the Earth
67
+ ** Rotation Angle and RPOM is the polar motion matrix.
68
+ **
69
+ ** 5) Although its name does not include "00", This function is in fact
70
+ ** specific to the IAU 2000 models.
71
+ **
72
+ ** Called:
73
+ ** iauC2ixy celestial-to-intermediate matrix, given X,Y
74
+ ** iauEra00 Earth rotation angle, IAU 2000
75
+ ** iauSp00 the TIO locator s', IERS 2000
76
+ ** iauPom00 polar motion matrix
77
+ ** iauC2tcio form CIO-based celestial-to-terrestrial matrix
78
+ **
79
+ ** Reference:
80
+ **
81
+ ** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
82
+ ** IERS Technical Note No. 32, BKG (2004)
83
+ **
84
+ ** This revision: 2009 April 1
85
+ **
86
+ ** Original version 2012-03-01
87
+ **
88
+ ** Copyright (C) 2013 Naoki Arita. See notes at end.
89
+ */
90
+ {
91
+ double rc2i[3][3], era, sp, rpom[3][3];
92
+
93
+
94
+ /* Form the celestial-to-intermediate matrix for this TT. */
95
+ iauC2ixy(tta, ttb, x, y, rc2i);
96
+
97
+ /* Predict the Earth rotation angle for this UT1. */
98
+ era = iauEra00(uta, utb);
99
+
100
+ /* Estimate s'. */
101
+ sp = iauSp00(tta, ttb);
102
+
103
+ /* Form the polar motion matrix. */
104
+ iauPom00(xp, yp, sp, rpom);
105
+
106
+ /* Combine to form the celestial-to-terrestrial matrix. */
107
+ iauC2tcio(rc2i, era, rpom, rc2t);
108
+
109
+ return;
110
+
111
+ /*----------------------------------------------------------------------
112
+ **
113
+ ** Celes is a wrapper of the SOFA Library for Ruby.
114
+ **
115
+ ** This file is redistributed and relicensed in accordance with
116
+ ** the SOFA Software License (http://www.iausofa.org/tandc.html).
117
+ **
118
+ ** The original library is available from IAU Standards of
119
+ ** Fundamental Astronomy (http://www.iausofa.org/).
120
+ **
121
+ **
122
+ **
123
+ **
124
+ **
125
+ ** Copyright (C) 2013, Naoki Arita
126
+ ** All rights reserved.
127
+ **
128
+ ** Redistribution and use in source and binary forms, with or without
129
+ ** modification, are permitted provided that the following conditions
130
+ ** are met:
131
+ **
132
+ ** 1 Redistributions of source code must retain the above copyright
133
+ ** notice, this list of conditions and the following disclaimer.
134
+ **
135
+ ** 2 Redistributions in binary form must reproduce the above copyright
136
+ ** notice, this list of conditions and the following disclaimer in
137
+ ** the documentation and/or other materials provided with the
138
+ ** distribution.
139
+ **
140
+ ** 3 Neither the name of the Standards Of Fundamental Astronomy Board,
141
+ ** the International Astronomical Union nor the names of its
142
+ ** contributors may be used to endorse or promote products derived
143
+ ** from this software without specific prior written permission.
144
+ **
145
+ ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
146
+ ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
147
+ ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
148
+ ** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
149
+ ** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
150
+ ** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
151
+ ** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
152
+ ** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
153
+ ** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
154
+ ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
155
+ ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
156
+ ** POSSIBILITY OF SUCH DAMAGE.
157
+ **
158
+ **--------------------------------------------------------------------*/
159
+ }