when_exe 0.2.100 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (193) hide show
  1. data/LICENSE.ja.txt +25 -25
  2. data/LICENSE.txt +31 -31
  3. data/bin/irb.rc +5 -0
  4. data/bin/locales.rb +2 -2
  5. data/bin/when.rb +16 -0
  6. data/bin/when.rb.config +7 -0
  7. data/lib/when_exe.rb +616 -14
  8. data/lib/when_exe/basictypes.rb +615 -0
  9. data/lib/when_exe/calendartypes.rb +1700 -0
  10. data/lib/when_exe/coordinates.rb +1936 -0
  11. data/lib/when_exe/core/compatibility.rb +54 -0
  12. data/lib/when_exe/core/duration.rb +72 -72
  13. data/lib/when_exe/core/extension.rb +382 -0
  14. data/lib/when_exe/ephemeris.rb +1845 -0
  15. data/lib/when_exe/googlecalendar.rb +140 -0
  16. data/lib/when_exe/icalendar.rb +1587 -0
  17. data/lib/when_exe/inspect.rb +1237 -0
  18. data/lib/when_exe/locales/af.rb +90 -0
  19. data/lib/when_exe/locales/ar.rb +145 -0
  20. data/lib/when_exe/locales/az.rb +90 -0
  21. data/lib/when_exe/locales/bg.rb +90 -0
  22. data/lib/when_exe/locales/bn.rb +94 -0
  23. data/lib/when_exe/locales/bs.rb +121 -0
  24. data/lib/when_exe/locales/ca.rb +92 -0
  25. data/lib/when_exe/locales/cs.rb +107 -0
  26. data/lib/when_exe/locales/cy.rb +150 -0
  27. data/lib/when_exe/locales/da.rb +84 -0
  28. data/lib/when_exe/locales/de.rb +92 -0
  29. data/lib/when_exe/locales/de_AT.rb +92 -0
  30. data/lib/when_exe/locales/de_CH.rb +92 -0
  31. data/lib/when_exe/locales/el.rb +93 -0
  32. data/lib/when_exe/locales/en.rb +88 -0
  33. data/lib/when_exe/locales/en_AU.rb +88 -0
  34. data/lib/when_exe/locales/en_CA.rb +88 -0
  35. data/lib/when_exe/locales/en_GB.rb +88 -0
  36. data/lib/when_exe/locales/en_IN.rb +88 -0
  37. data/lib/when_exe/locales/en_NZ.rb +88 -0
  38. data/lib/when_exe/locales/eo.rb +89 -0
  39. data/lib/when_exe/locales/es.rb +84 -0
  40. data/lib/when_exe/locales/es_419.rb +84 -0
  41. data/lib/when_exe/locales/es_AR.rb +84 -0
  42. data/lib/when_exe/locales/es_CL.rb +84 -0
  43. data/lib/when_exe/locales/es_CO.rb +84 -0
  44. data/lib/when_exe/locales/es_MX.rb +84 -0
  45. data/lib/when_exe/locales/es_PE.rb +85 -0
  46. data/lib/when_exe/locales/es_VE.rb +84 -0
  47. data/lib/when_exe/locales/et.rb +94 -0
  48. data/lib/when_exe/locales/eu.rb +95 -0
  49. data/lib/when_exe/locales/fa.rb +80 -0
  50. data/lib/when_exe/locales/fi.rb +89 -0
  51. data/lib/when_exe/locales/fr.rb +88 -0
  52. data/lib/when_exe/locales/fr_CA.rb +88 -0
  53. data/lib/when_exe/locales/fr_CH.rb +88 -0
  54. data/lib/when_exe/locales/gl.rb +81 -0
  55. data/lib/when_exe/locales/he.rb +84 -0
  56. data/lib/when_exe/locales/hi.rb +80 -0
  57. data/lib/when_exe/locales/hi_IN.rb +84 -0
  58. data/lib/when_exe/locales/hr.rb +128 -0
  59. data/lib/when_exe/locales/hu.rb +84 -0
  60. data/lib/when_exe/locales/id.rb +89 -0
  61. data/lib/when_exe/locales/is.rb +89 -0
  62. data/lib/when_exe/locales/it.rb +87 -0
  63. data/lib/when_exe/locales/it_CH.rb +87 -0
  64. data/lib/when_exe/locales/ja.rb +78 -0
  65. data/lib/when_exe/locales/kn.rb +86 -0
  66. data/lib/when_exe/locales/ko.rb +78 -0
  67. data/lib/when_exe/locales/links.rb +2342 -0
  68. data/lib/when_exe/locales/lo.rb +123 -0
  69. data/lib/when_exe/locales/locales.rb +91 -0
  70. data/lib/when_exe/locales/lt.rb +111 -0
  71. data/lib/when_exe/locales/lv.rb +118 -0
  72. data/lib/when_exe/locales/mk.rb +93 -0
  73. data/lib/when_exe/locales/mn.rb +80 -0
  74. data/lib/when_exe/locales/nb.rb +81 -0
  75. data/lib/when_exe/locales/ne.rb +81 -0
  76. data/lib/when_exe/locales/nl.rb +92 -0
  77. data/lib/when_exe/locales/nn.rb +73 -0
  78. data/lib/when_exe/locales/or.rb +84 -0
  79. data/lib/when_exe/locales/pl.rb +128 -0
  80. data/lib/when_exe/locales/pt.rb +88 -0
  81. data/lib/when_exe/locales/pt_BR.rb +88 -0
  82. data/lib/when_exe/locales/rm.rb +143 -0
  83. data/lib/when_exe/locales/ro.rb +105 -0
  84. data/lib/when_exe/locales/ru.rb +128 -0
  85. data/lib/when_exe/locales/sk.rb +109 -0
  86. data/lib/when_exe/locales/sl.rb +122 -0
  87. data/lib/when_exe/locales/sr.rb +122 -0
  88. data/lib/when_exe/locales/sv.rb +83 -0
  89. data/lib/when_exe/locales/sw.rb +89 -0
  90. data/lib/when_exe/locales/th.rb +78 -0
  91. data/lib/when_exe/locales/tl.rb +99 -0
  92. data/lib/when_exe/locales/tr.rb +96 -0
  93. data/lib/when_exe/locales/uk.rb +128 -0
  94. data/lib/when_exe/locales/uz.rb +128 -0
  95. data/lib/when_exe/locales/vi.rb +94 -0
  96. data/lib/when_exe/locales/wo.rb +82 -0
  97. data/lib/when_exe/locales/zh_CN.rb +77 -0
  98. data/lib/when_exe/locales/zh_HK.rb +77 -0
  99. data/lib/when_exe/locales/zh_TW.rb +77 -0
  100. data/lib/when_exe/mini_application.rb +252 -0
  101. data/lib/when_exe/parts/enumerator.rb +472 -0
  102. data/lib/when_exe/parts/geometric_complex.rb +379 -0
  103. data/lib/when_exe/parts/locale.rb +513 -0
  104. data/lib/when_exe/parts/method_cash.rb +207 -0
  105. data/lib/when_exe/parts/resource.rb +806 -0
  106. data/lib/when_exe/parts/timezone.rb +182 -0
  107. data/lib/when_exe/region/bahai.rb +145 -0
  108. data/lib/when_exe/region/balinese.rb +627 -0
  109. data/lib/when_exe/region/chinese.rb +896 -0
  110. data/lib/when_exe/region/chinese_calendar.rb +919 -0
  111. data/lib/when_exe/region/chinese_epoch.rb +1245 -0
  112. data/lib/when_exe/region/christian.rb +644 -0
  113. data/lib/when_exe/region/far_east.rb +192 -0
  114. data/lib/when_exe/region/french.rb +66 -0
  115. data/lib/when_exe/region/geologicalage.rb +639 -0
  116. data/lib/when_exe/region/indian.rb +1066 -0
  117. data/lib/when_exe/region/iranian.rb +66 -0
  118. data/lib/when_exe/region/islamic.rb +105 -0
  119. data/lib/when_exe/region/japanese.rb +851 -0
  120. data/lib/when_exe/region/japanese_notes.rb +964 -0
  121. data/lib/when_exe/region/japanese_residues.rb +1149 -0
  122. data/lib/when_exe/region/javanese.rb +228 -0
  123. data/lib/when_exe/region/jewish.rb +127 -0
  124. data/lib/when_exe/region/korean.rb +267 -0
  125. data/lib/when_exe/region/m17n.rb +115 -0
  126. data/lib/when_exe/region/martian.rb +215 -0
  127. data/lib/when_exe/region/mayan.rb +122 -0
  128. data/lib/when_exe/region/moon.rb +333 -0
  129. data/lib/when_exe/region/nihon_shoki.rb +73 -0
  130. data/lib/when_exe/region/planets.rb +585 -0
  131. data/lib/when_exe/region/pope.rb +298 -0
  132. data/lib/when_exe/region/residue.rb +229 -0
  133. data/lib/when_exe/region/roman.rb +325 -0
  134. data/lib/when_exe/region/ryukyu.rb +98 -0
  135. data/lib/when_exe/region/shire.rb +254 -0
  136. data/lib/when_exe/region/sun.rb +210 -0
  137. data/lib/when_exe/region/thai.rb +227 -0
  138. data/lib/when_exe/region/tibetan.rb +233 -0
  139. data/lib/when_exe/region/v50.rb +111 -0
  140. data/lib/when_exe/region/vietnamese.rb +173 -0
  141. data/lib/when_exe/region/world.rb +197 -0
  142. data/lib/when_exe/timestandard.rb +547 -0
  143. data/lib/when_exe/tmduration.rb +330 -330
  144. data/lib/when_exe/tmobjects.rb +1295 -0
  145. data/lib/when_exe/tmposition.rb +1955 -0
  146. data/lib/when_exe/tmreference.rb +1547 -0
  147. data/lib/when_exe/version.rb +10 -3
  148. data/link_to_online_documents +4 -0
  149. data/test/examples/JapanHolidays.ics +456 -0
  150. data/test/examples/Millennium.ics +17 -0
  151. data/test/examples/NewYork.ics +61 -0
  152. data/test/examples/Residue.m17n +135 -0
  153. data/test/examples/Spatial.m17n +179 -0
  154. data/test/examples/Terms.m17n +39 -0
  155. data/test/examples/Test.ics +53 -0
  156. data/test/examples/USA-DST.ics +61 -0
  157. data/test/examples/geometric_complex.rb +41 -0
  158. data/test/examples/sample.xml +14 -0
  159. data/test/examples/today.rb +61 -0
  160. data/test/test.rb +54 -19
  161. data/test/test.rb.config +1 -0
  162. data/test/test/basictypes.rb +368 -0
  163. data/test/test/calendartypes.rb +57 -0
  164. data/test/test/coordinates.rb +380 -0
  165. data/test/test/ephemeris.rb +127 -0
  166. data/test/test/googlecalendar.rb +167 -0
  167. data/test/test/icalendar.rb +848 -0
  168. data/test/test/inspect.rb +115 -0
  169. data/test/test/parts.rb +480 -0
  170. data/test/test/region/chinese.rb +161 -0
  171. data/test/test/region/french.rb +33 -0
  172. data/test/test/region/geologicalage.rb +14 -0
  173. data/test/test/region/indian.rb +55 -0
  174. data/test/test/region/iran.rb +54 -0
  175. data/test/test/region/islamic.rb +18 -0
  176. data/test/test/region/japanese.rb +62 -0
  177. data/test/test/region/jewish.rb +61 -0
  178. data/test/test/region/m17n.rb +181 -0
  179. data/test/test/region/mayan.rb +78 -0
  180. data/test/test/region/moon.rb +14 -0
  181. data/test/test/region/planets.rb +14 -0
  182. data/test/test/region/residue.rb +123 -0
  183. data/test/test/region/sun.rb +14 -0
  184. data/test/test/region/thai.rb +94 -0
  185. data/test/test/region/tibetan.rb +30 -0
  186. data/test/test/tmobjects.rb +356 -57
  187. data/test/test/tmposition.rb +237 -0
  188. data/test/test/tmreference.rb +95 -0
  189. data/when_exe.gemspec +2 -2
  190. metadata +187 -7
  191. data/doc/COPYING +0 -31
  192. data/doc/COPYING.ja +0 -25
  193. data/doc/document_url +0 -1
@@ -0,0 +1,333 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2011-2013 Takashi SUGA
4
+
5
+ You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
+ =end
7
+
8
+ require 'when_exe/region/sun'
9
+ module When
10
+ module Ephemeris
11
+
12
+ #------------------------------------------
13
+ # 月と地球の本影 計算用データ
14
+ #------------------------------------------
15
+
16
+ # 月の地心黄経
17
+ # @private
18
+ P0dL =
19
+ [[SIN , 93.8 , -1.33 , 0.0040 ],
20
+ [SIN , 248.6 , -19.34 , 0.0020 ],
21
+ [SIN , 66.0 , 0.2 , 0.0006 ],
22
+ [SIN , 249.0 , -19.3 , 0.0006 ]]
23
+ # @private
24
+ P0L =
25
+ [[LIN , 124.8757417 , 4812.6788201 , -1.330000E-7],
26
+ [SINL , 338.9158263 , 4771.9886313 , 6.2887 ,+8.99400E-7],
27
+ [SIN , 107.236832 , -4133.3536154, 1.2740 ,+1.22612E-6],
28
+ [SIN , 51.678963 , 8905.3422467, 0.6583 ,-0.32672E-6],
29
+ [SIN , 317.831653 , 9543.9772627, 0.2136 ,+1.7988E-6 ],
30
+ [SIN , 176.528826 , 359.990504 , 0.1856 ,-1.561E-8 ],
31
+
32
+ [SIN , 292.463 , 9664.0403505, 0.1143 ,-0.6812E-6 ],
33
+ [SIN , 86.16 , 638.63475182, 0.0588 ,+2.1256E-6 ],
34
+ [SIN , 103.78 , -3773.36305278, 0.0572 ,-1.22769E-6],
35
+ [SIN , 30.58 , 13677.331 , 0.0533 ],
36
+ [SIN , 124.86 , -8545.352 , 0.0459 ],
37
+
38
+ [SIN , 342.38 , 4411.998 , 0.0410 ],
39
+ [SIN , 25.83 , 4452.671 , 0.0348 ],
40
+ [SIN , 155.45 , 5131.979 , 0.0305 ],
41
+ [SIN , 240.79 , 758.698 , 0.0153 ],
42
+ [SIN , 271.38 , 14436.029 , 0.0125 ],
43
+
44
+ [SIN , 226.45 , -4892.052 , 0.0110 ],
45
+ [SIN , 55.58 , -13038.696 , 0.0107 ],
46
+ [SIN , 296.75 , 14315.966 , 0.0100 ],
47
+ [SIN , 34.5 , -8266.71 , 0.0085 ],
48
+ [SIN , 290.7 , -4493.34 , 0.0079 ],
49
+
50
+ [SIN , 228.2 , 9265.33 , 0.0068 ],
51
+ [SIN , 133.1 , 319.32 , 0.0052 ],
52
+ [SIN , 202.4 , 4812.66 , 0.0050 ],
53
+ [SIN , 68.6 , -19.34 , 0.0048 ],
54
+ [SIN , 34.1 , 13317.34 , 0.0040 ],
55
+
56
+ [SIN , 9.5 , 18449.32 , 0.0040 ],
57
+ [SIN , 93.8 , -1.33 , 0.0040 ],
58
+ [SIN , 103.3 , 17810.68 , 0.0039 ],
59
+ [SIN , 65.1 , 5410.62 , 0.0037 ],
60
+ [SIN , 321.3 , 9183.99 , 0.0027 ],
61
+
62
+ [SIN , 174.8 , -13797.39 , 0.0026 ],
63
+ [SIN , 82.7 , 998.63 , 0.0024 ],
64
+ [SIN , 4.7 , 9224.66 , 0.0024 ],
65
+ [SIN , 121.4 , -8185.36 , 0.0022 ],
66
+ [SIN , 134.4 , 9903.97 , 0.0021 ],
67
+
68
+ [SIN , 173.1 , 719.98 , 0.0021 ],
69
+ [SIN , 100.3 , -3413.37 , 0.0021 ],
70
+ [SIN , 248.6 , -19.34 , 0.0020 ],
71
+ [SIN , 98.1 , 4013.29 , 0.0018 ],
72
+ [SIN , 344.1 , 18569.38 , 0.0016 ],
73
+
74
+ [SIN , 52.1 , -12678.71 , 0.0012 ],
75
+ [SIN , 250.3 , 19208.02 , 0.0011 ],
76
+ [SIN , 81.0 , -8586.0 , 0.0009 ],
77
+ [SIN , 207.0 , 14037.3 , 0.0008 ],
78
+ [SIN , 31.0 , -7906.7 , 0.0008 ],
79
+
80
+ [SIN , 346.0 , 4052.0 , 0.0007 ],
81
+ [SIN , 294.0 , -4853.3 , 0.0007 ],
82
+ [SIN , 90.0 , 278.6 , 0.0007 ],
83
+ [SIN , 237.0 , 1118.7 , 0.0006 ],
84
+ [SIN , 82.0 , 22582.7 , 0.0005 ],
85
+
86
+ [SIN , 276.0 , 19088.0 , 0.0005 ],
87
+ [SIN , 73.0 , -17450.7 , 0.0005 ],
88
+ [SIN , 112.0 , 5091.3 , 0.0005 ],
89
+ [SIN , 116.0 , -398.7 , 0.0004 ],
90
+ [SIN , 25.0 , -120.1 , 0.0004 ],
91
+
92
+ [SIN , 181.0 , 9584.7 , 0.0004 ],
93
+ [SIN , 18.0 , 720.0 , 0.0004 ],
94
+ [SIN , 60.0 , -3814.0 , 0.0003 ],
95
+ [SIN , 13.0 , -3494.7 , 0.0003 ],
96
+ [SIN , 13.0 , 18089.3 , 0.0003 ],
97
+
98
+ [SIN , 152.0 , 5492.0 , 0.0003 ],
99
+ [SIN , 317.0 , -40.7 , 0.0003 ],
100
+ [SIN , 348.0 , 23221.3 , 0.0003 ]]
101
+ # 月の地心黄緯
102
+ # @private
103
+ P0dB =
104
+ [[SIN , 68.64 , -19.341 , 0.0267 ],
105
+ [SIN , 342.0 , -19.36 , 0.0043 ],
106
+ [SIN , 93.8 , -1.33 , 0.0040 ],
107
+ [SIN , 248.6 , -19.34 , 0.0020 ],
108
+ [SIN , 358.0 , -19.4 , 0.0005 ]]
109
+ # @private
110
+ P0B =
111
+ [[SINL , 236.231 , 4832.0201248, 5.1281218,-0.3406E-6 ],
112
+ [SIN , 215.147 , 9604.0088 , 0.2806 ],
113
+ [SIN , 77.316 , 60.0316 , 0.2777 ],
114
+ [SIN , 4.563 , -4073.3220 , 0.1732 ],
115
+ [SIN , 308.98 , 8965.374 , 0.0554 ],
116
+
117
+ [SIN , 343.48 , 698.667 , 0.0463 ],
118
+ [SIN , 287.90 , 13737.362 , 0.0326 ],
119
+ [SIN , 194.06 , 14375.997 , 0.0172 ],
120
+ [SIN , 25.6 , -8845.31 , 0.0093 ],
121
+ [SIN , 98.4 , -4711.96 , 0.0088 ],
122
+
123
+ [SIN , 1.1 , -3713.33 , 0.0082 ],
124
+ [SIN , 322.4 , 5470.66 , 0.0043 ],
125
+ [SIN , 266.8 , 18509.35 , 0.0042 ],
126
+ [SIN , 188.0 , -4433.31 , 0.0034 ],
127
+ [SIN , 312.5 , 8605.38 , 0.0025 ],
128
+
129
+ [SIN , 291.4 , 13377.37 , 0.0022 ],
130
+ [SIN , 340.0 , 1058.66 , 0.0021 ],
131
+ [SIN , 218.6 , 9244.02 , 0.0019 ],
132
+ [SIN , 291.8 , -8206.68 , 0.0018 ],
133
+ [SIN , 52.8 , 5192.01 , 0.0018 ],
134
+
135
+ [SIN , 168.7 , 14496.06 , 0.0017 ],
136
+ [SIN , 73.8 , 420.02 , 0.0016 ],
137
+ [SIN , 262.1 , 9284.69 , 0.0015 ],
138
+ [SIN , 31.7 , 9964.00 , 0.0015 ],
139
+ [SIN , 260.8 , -299.96 , 0.0014 ],
140
+
141
+ [SIN , 239.7 , 4472.03 , 0.0013 ],
142
+ [SIN , 30.4 , 379.35 , 0.0013 ],
143
+ [SIN , 304.9 , 4812.68 , 0.0012 ],
144
+ [SIN , 12.4 , -4851.36 , 0.0012 ],
145
+ [SIN , 173.0 , 19147.99 , 0.0011 ],
146
+
147
+ [SIN , 312.9 , -12978.66 , 0.0010 ],
148
+ [SIN , 1.0 , 17870.7 , 0.0008 ],
149
+ [SIN , 190.0 , 9724.1 , 0.0008 ],
150
+ [SIN , 22.0 , 13098.7 , 0.0007 ],
151
+ [SIN , 117.0 , 5590.7 , 0.0006 ],
152
+
153
+ [SIN , 47.0 , -13617.3 , 0.0006 ],
154
+ [SIN , 22.0 , -8485.3 , 0.0005 ],
155
+ [SIN , 150.0 , 4193.4 , 0.0005 ],
156
+ [SIN , 119.0 , -9483.9 , 0.0004 ],
157
+ [SIN , 246.0 , 23281.3 , 0.0004 ],
158
+
159
+ [SIN , 301.0 , 10242.6 , 0.0004 ],
160
+ [SIN , 126.0 , 9325.4 , 0.0004 ],
161
+ [SIN , 104.0 , 14097.4 , 0.0004 ],
162
+ [SIN , 340.0 , 22642.7 , 0.0003 ],
163
+ [SIN , 270.0 , 18149.4 , 0.0003 ],
164
+
165
+ [SIN , 358.0 , -3353.3 , 0.0003 ],
166
+ [SIN , 148.0 , 19268.0 , 0.0003 ]]
167
+ # 月の視差
168
+ # @private
169
+ P0P =
170
+ [[COS , 338.92 , 4771.98849108, 0.0518 ,+9.19178E-7],
171
+ [COS , 287.2 , -4133.35355678, 0.0095 ,+1.2262E-6 ],
172
+ [COS , 51.7 , 8905.34223034, 0.0078 ,-0.3268E-6 ],
173
+ [COS , 317.8 , 9543.97698216, 0.0028 ,+1.7988E-6 ],
174
+ [COS , 31.0 , 13677.3 , 0.0009 ],
175
+
176
+ [COS , 305.0 , -8545.4 , 0.0005 ],
177
+ [COS , 284.0 , -3773.4 , 0.0004 ],
178
+ [COS , 342.0 , 4412.0 , 0.0003 ]]
179
+
180
+ #
181
+ # The Moon
182
+ #
183
+ class Moon < Datum
184
+
185
+ class << self
186
+
187
+ include Ephemeris
188
+
189
+ # 月の真黄経 / CIRCLE
190
+ #
191
+ # @param [Numeric] t ユリウス日(Terrestrial Time)
192
+ # @param [When::TM::TemporalPosition] t
193
+ #
194
+ # @return [Numeric]
195
+ #
196
+ def true_longitude(t)
197
+ y = julian_year_from_1975(+t)
198
+ return trigonometric(y, P0L, sind(trigonometric(y, P0dL))) / 360.0 + 38770.0
199
+ end
200
+
201
+ # 月の真黄緯/ CIRCLE
202
+ #
203
+ # @param [Numeric] t ユリウス日(Terrestrial Time)
204
+ # @param [When::TM::TemporalPosition] t
205
+ #
206
+ # @return [Numeric]
207
+ #
208
+ def latitude(t)
209
+ y = julian_year_from_1975(+t)
210
+ return trigonometric(y, P0B, trigonometric(y, P0dB)) / 360.0
211
+ end
212
+
213
+ # 月の距離 / km
214
+ #
215
+ # @param [Numeric] t ユリウス日(Terrestrial Time)
216
+ # @param [When::TM::TemporalPosition] t
217
+ #
218
+ # @return [Numeric]
219
+ #
220
+ def pi(t)
221
+ return 6378.14 / ((trigonometric(julian_year_from_1975(+t), P0P) + 0.9507)*DEG)
222
+ end
223
+
224
+ # 月の平均黄経 / CIRCLE
225
+ #
226
+ # @param [Numeric] t ユリウス日(Terrestrial Time)
227
+ # @param [When::TM::TemporalPosition] t
228
+ #
229
+ # @return [Numeric]
230
+ #
231
+ def mean_longitude(t)
232
+ return trigonometric(julian_year_from_1975(+t), P0L, 0.0, 1) / 360.0 + 38770.0
233
+ end
234
+ end
235
+
236
+ # 月の位置 (黄道座標)
237
+ #
238
+ # @param [Numeric] t ユリウス日(Terrestrial Time)
239
+ # @param [When::TM::TemporalPosition] t
240
+ #
241
+ # @return [When::Ephemeris::Coords]
242
+ #
243
+ def _coords(t)
244
+ t = +t
245
+ Coords.polar(Moon.true_longitude(t),
246
+ Moon.latitude(t),
247
+ Moon.pi(t)/AU,
248
+ Moon.mean_longitude(t)) +
249
+ When.Resource('_ep:Earth')._coords(t)
250
+ end
251
+
252
+ # 真黄経 / CIRCLE
253
+ #
254
+ # @param [Numeric] t ユリウス日(Terrestrial Time)
255
+ # @param [When::TM::TemporalPosition] t
256
+ #
257
+ # @return [Numeric]
258
+ #
259
+ def true_longitude(t)
260
+ Moon.true_longitude(t)
261
+ end
262
+
263
+ # 平均黄経 / CIRCLE
264
+ #
265
+ # @param [Numeric] t ユリウス日(Terrestrial Time)
266
+ # @param [When::TM::TemporalPosition] t
267
+ #
268
+ # @return [Numeric]
269
+ #
270
+ def mean_longitude(t)
271
+ Moon.mean_longitude(t)
272
+ end
273
+
274
+ # 平均運動 / (DEG/YEAR)
275
+ #
276
+ # @return [Numeric]
277
+ #
278
+ def mean_motion
279
+ P0L[0][2]
280
+ end
281
+
282
+ #
283
+ # オブジェクトの生成
284
+ # @private
285
+ def initialize(*args)
286
+ options = [args.pop] if args[-1].kind_of?(Hash)
287
+ surface_radius, aberration, luminosity, *rest = args
288
+ surface_radius ||= 1738.1
289
+ aberration ||= 0.00020
290
+ luminosity ||= 0.40
291
+ args = [surface_radius, aberration, luminosity] + rest
292
+ args += options if options
293
+ super(*args)
294
+ end
295
+ end
296
+
297
+ #
298
+ # The Shadow of the Earth
299
+ #
300
+ class Shadow < Earth
301
+
302
+ # 地球の影の位置 (黄道座標)
303
+ #
304
+ # @param [Numeric] t ユリウス日(Terrestrial Time)
305
+ # @param [When::TM::TemporalPosition] t
306
+ #
307
+ # @return [When::Ephemeris::Coords]
308
+ #
309
+ def _coords(t)
310
+ t = +t
311
+ radius = Sun.pi(t) + Moon.pi(t)/AU
312
+ dl = 0.5 + @aberration / radius / 360 # 略算式に含まれる光行差をキャンセルする
313
+ Coords.polar(Sun.true_longitude(t)+dl, 0, radius, Sun.mean_longitude(t)+dl)
314
+ end
315
+
316
+ # 地球の影の視半径 / CIRCLE
317
+ #
318
+ # @param [Numeric] t ユリウス日(Terrestrial Time)
319
+ # @param [When::TM::TemporalPosition] t
320
+ # @param [When::Coordinates::Spatial] base 観測地
321
+ #
322
+ # @return [Numeric]
323
+ #
324
+ def apparent_radius(t, base=nil)
325
+ t = +t
326
+ radius = Sun.pi(t) * AU
327
+ (asin(Ephemeris::Shadow.surface_radius/AU/Moon.pi(t)) -
328
+ asin(Ephemeris::Sun.surface_radius/radius) +
329
+ asin(Ephemeris::Shadow.surface_radius/radius)) * 1.02 / CIRCLE
330
+ end
331
+ end
332
+ end
333
+ end
@@ -0,0 +1,73 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2011-2012 Takashi SUGA
4
+
5
+ You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
+ =end
7
+
8
+ class When::TM::CalendarEra
9
+
10
+ #
11
+ # 皇紀
12
+ #
13
+ NihonKoki = [self, [
14
+ "namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
15
+ "locale:[=ja:, en=en:, alias]",
16
+ "area:[日本]",
17
+ ["[皇紀]1", "[::_m:EpochEvents::Accession]", "-659-01-01^Chinese::儀鳳暦"],
18
+ ["[皇紀]1113", "[::_m:EpochEvents::CalendarReform]", "0453-12-14^Chinese::元嘉暦"],
19
+ ["[皇紀]1253", "", "0593-01-01^Japanese"],
20
+ ["[皇紀]2533", "[::_m:EpochEvents::CalendarReform]", "1873-01-01^Gregorian"]
21
+ ]]
22
+
23
+ #
24
+ # 日本書紀暦日
25
+ #
26
+ NihonShoki = [self, [
27
+ "namespace:[ja=http://ja.wikipedia.org/wiki/, en=http://en.wikipedia.org/wiki/]",
28
+ "locale:[=ja:, en=en:, alias]",
29
+ "period:[(日本書紀)=ja:%E6%97%A5%E6%9C%AC%E6%9B%B8%E7%B4%80, (Nihon_Shoki)=en:Nihon_Shoki]",
30
+ ["[神武]1", "[::_m:EpochEvents::Accession]", "name=[神武];-659-01-01^Chinese::儀鳳暦"],
31
+ ["[綏靖]1", "[::_m:EpochEvents::Accession]", "name=[綏靖];-580-01-08"],
32
+ ["[安寧]0", "[::_m:EpochEvents::Accession]", "name=[安寧];-548-07-03"],
33
+ ["[懿徳]1", "[::_m:EpochEvents::Accession]", "name=[懿徳];-509-02-04"],
34
+ ["[孝昭]1", "[::_m:EpochEvents::Accession]", "name=[孝昭];-474-01-09"],
35
+ ["[孝安]1", "[::_m:EpochEvents::Accession]", "name=[孝安];-391-01-07"],
36
+ ["[孝霊]1", "[::_m:EpochEvents::Accession]", "name=[孝霊];-289-01-12"],
37
+ ["[孝元]1", "[::_m:EpochEvents::Accession]", "name=[孝元];-213-01-14"],
38
+ ["[開化]0", "[::_m:EpochEvents::Accession]", "name=[開化];-157-11-12"],
39
+ ["[崇神]1", "[::_m:EpochEvents::Accession]", "name=[崇神];-096-01-13"],
40
+ ["[垂仁]1", "[::_m:EpochEvents::Accession]", "name=[垂仁];-028-01-02"],
41
+ ["[景行]1", "[::_m:EpochEvents::Accession]", "name=[景行];0071-07-11"],
42
+ ["[成務]1", "[::_m:EpochEvents::Accession]", "name=[成務];0131-01-05"],
43
+ ["[仲哀]1", "[::_m:EpochEvents::Accession]", "name=[仲哀];0192-01-11"],
44
+ ["[神功皇后]0", "[::_m:EpochEvents::Accession]","name=[神功皇后];0200-02-07"],
45
+ ["[応神]1", "[::_m:EpochEvents::Accession]", "name=[応神];0270-01-01"],
46
+ ["[仁徳]1", "[::_m:EpochEvents::Accession]", "name=[仁徳];0313-01-03"],
47
+ ["[履中]1", "[::_m:EpochEvents::Accession]", "name=[履中];0400-02-01"],
48
+ ["[反正]1", "[::_m:EpochEvents::Accession]", "name=[反正];0406-01-02"],
49
+ ["[允恭]1", "[::_m:EpochEvents::Accession]", "name=[允恭];0412-12"],
50
+ ["[安康]0", "[::_m:EpochEvents::Accession]", "name=[安康];0453-12-14^Chinese::元嘉暦"],
51
+ ["[雄略]0", "[::_m:EpochEvents::Accession]", "name=[雄略];0456-11-13"],
52
+ ["[清寧]1", "[::_m:EpochEvents::Accession]", "name=[清寧];0480-01-15"],
53
+ ["[顕宗]1", "[::_m:EpochEvents::Accession]", "name=[顕宗];0485-01-01"],
54
+ ["[仁賢]1", "[::_m:EpochEvents::Accession]", "name=[仁賢];0488-01-05"],
55
+ ["[武烈]0", "[::_m:EpochEvents::Accession]", "name=[武烈];0498-12"],
56
+ ["[継体]1", "[::_m:EpochEvents::Accession]", "name=[継体];0507-02-04"],
57
+ ["[安閑]1", "[::_m:EpochEvents::Accession]", "name=[安閑];0534"],
58
+ ["[宣化]0", "[::_m:EpochEvents::Accession]", "name=[宣化];0535-12"],
59
+ ["[欽明]0", "[::_m:EpochEvents::Accession]", "name=[欽明];0539-12-05"],
60
+ ["[敏達]1", "[::_m:EpochEvents::Accession]", "name=[敏達];0572-04-03"],
61
+ ["[用明]0", "[::_m:EpochEvents::Accession]", "name=[用明];0585-09-05"],
62
+ ["[崇峻]0", "[::_m:EpochEvents::Accession]", "name=[崇峻];0587-08-02"],
63
+ ["[推古]0", "[::_m:EpochEvents::Accession]", "name=[推古];0592-12-08"],
64
+ ["[舒明]1", "[::_m:EpochEvents::Accession]", "name=[舒明];0629-01-04"],
65
+ ["[皇極]1", "[::_m:EpochEvents::Accession]", "name=[皇極];0642-01-15"],
66
+ ["[大化]1", "[::_m:EpochEvents::Accession]", "name=[孝徳];0645-06-19"],
67
+ ["[白雉]1", "[::_m:EpochEvents::FelicitousEvent]", " 0650-02-15"],
68
+ ["[斉明]1", "[::_m:EpochEvents::Accession]", "name=[斉明];0655-01-03"],
69
+ ["[天智]1", "[::_m:EpochEvents::Accession]", "name=[天智];0662-01-01"],
70
+ ["[天武]1", "[::_m:EpochEvents::Accession]", "name=[天武];0672-01-01"],
71
+ ["[朱鳥]1", "", " 0686-07-20", "0687-01-01"]
72
+ ]]
73
+ end
@@ -0,0 +1,585 @@
1
+ # -*- coding: utf-8 -*-
2
+ =begin
3
+ Copyright (C) 2011-2012 Takashi SUGA
4
+
5
+ You may use and/or modify this file according to the license described in the LICENSE.txt file included in this archive.
6
+ =end
7
+
8
+ module When
9
+ module Ephemeris
10
+
11
+ #------------------------------------------
12
+ # 惑星位置計算用データ
13
+ #------------------------------------------
14
+
15
+ # 水星の日心黄経
16
+ # @private
17
+ P1L =
18
+ [[LIN , 252.2502 , 149474.0714 , 0.0003 ],
19
+ [COS , 84.7947 , 149472.5153 , 23.4405 ],
20
+ [COST , 84.7947 , 149472.5153 , 0.0023 ],
21
+ [COS , 259.589 , 298945.031 , 2.9818 ],
22
+ [COST , 259.589 , 298945.031 , 0.0006 ],
23
+ [COS , 74.38 , 448417.55 , 0.5258 ],
24
+ [COS , 137.84 , 298945.77 , 0.1796 ],
25
+ [COS , 249.2 , 597890.1 , 0.1061 ],
26
+ [COS , 143.0 , 149473.3 , 0.085 ],
27
+ [COS , 312.6 , 448418.3 , 0.076 ],
28
+ [COS , 127.4 , 597890.8 , 0.0256 ],
29
+ [COS , 64.0 , 747362.6 , 0.023 ],
30
+ [COS , 302.0 , 747363.0 , 0.0081 ],
31
+ [COS , 148.0 , 1.0 , 0.0069 ],
32
+ [COS , 239.0 , 896835.0 , 0.0052 ],
33
+ [COS , 117.0 , 896836.0 , 0.0023 ],
34
+ [COS , 85.0 , 6356.0 , 0.0019 ],
35
+ [COS , 54.0 , 1046308.0 , 0.0011 ],
36
+ [COS , 234.0 , 32437.0 , 0.001 ],
37
+ [COS , 171.0 , 143403.0 , 0.0009 ],
38
+ [COS , 268.0 , 155828.0 , 0.0006 ],
39
+ [COS , 292.0 , 1046308.0 , 0.0005 ],
40
+ [COS , 84.0 , 143117.0 , 0.0004 ],
41
+ [COS , 63.0 , 181909.0 , 0.0003 ],
42
+ [COS , 288.0 , 123392.0 , 0.0003 ],
43
+ [COS , 11.0 , 448419.0 , 0.0003 ]]
44
+ # 水星の日心黄緯
45
+ # @private
46
+ P1B =
47
+ [[COS , 113.919 , 149472.886 , 6.7057 ],
48
+ [COST , 113.919 , 149472.886 , 0.0017 ],
49
+ [COS , 119.12 , 0.37 , 1.4396 ],
50
+ [COST , 119.12 , 0.37 , 0.0005 ],
51
+ [COS , 288.71 , 298945.4 , 1.3643 ],
52
+ [COST , 288.71 , 298945.4 , 0.0005 ],
53
+ [COS , 103.51 , 448417.92 , 0.3123 ],
54
+ [COS , 278.3 , 597890.4 , 0.0753 ],
55
+ [COS , 55.7 , 149472.1 , 0.0367 ],
56
+ [COS , 93.1 , 747362.9 , 0.0187 ],
57
+ [COS , 230.0 , 298945.0 , 0.005 ],
58
+ [COS , 268.0 , 896835.0 , 0.0047 ],
59
+ [COS , 342.0 , 448419.0 , 0.0028 ],
60
+ [COS , 347.0 , 298946.0 , 0.0023 ],
61
+ [COS , 157.0 , 597891.0 , 0.002 ],
62
+ [COS , 83.0 , 1046308.0 , 0.0012 ],
63
+ [COS , 331.0 , 747364.0 , 0.0009 ],
64
+ [COS , 45.0 , 448417.0 , 0.0009 ],
65
+ [COS , 352.0 , 149474.0 , 0.0005 ],
66
+ [COS , 146.0 , 896836.0 , 0.0003 ]]
67
+ # 水星の動径
68
+ # @private
69
+ P1R =
70
+ [[LIN , 0.395283 , 0.000002 , 0.0 ],
71
+ [COS , 354.795 , 149472.515 , 0.078341 ],
72
+ [COST , 354.795 , 149472.515 , 0.000008 ],
73
+ [COS , 169.59 , 298945.03 , 0.007955 ],
74
+ [COST , 169.59 , 298945.03 , 0.000002 ],
75
+ [COS , 344.38 , 448417.55 , 0.001214 ],
76
+ [COS , 159.2 , 597890.0 , 0.000218 ],
77
+ [COS , 334.0 , 747363.0 , 0.000042 ],
78
+ [COS , 149.0 , 896835.0 , 0.000006 ]]
79
+
80
+ # 金星の日心黄経
81
+ # @private
82
+ P2L =
83
+ [[LIN , 310.1735 , +585.19212 , 3E-8 ],
84
+ [SINL , 107.44 , +1170.37 , -0.0503 ],
85
+ [SIN , 248.6 , -19.34 , -0.0048 ],
86
+ [SIN , 198 , +720.0 , -0.0004 ]]
87
+ # 金星の日心黄経の補正
88
+ # @private
89
+ P2dL =
90
+ [[SIN , 178.954 , +585.1781011, 0.7775 ,+1.38E-7 ],
91
+ [SINT , 178.954 , +585.1781011, -0.00005 ,+1.38E-7 ],
92
+ [SIN , 357.9 , +1170.35 , +0.0033 ],
93
+ [SIN , 242.3 , +450.37 , +0.0031 ],
94
+ [SIN , 273.5 , +675.55 , +0.0020 ],
95
+ [SIN , 31.1 , +225.18 , +0.0014 ],
96
+ [SIN , 233.1 , +90.38 , +0.0010 ],
97
+ [SIN , 350 , +1.5 , +0.0008 ],
98
+ [SIN , 136 , +554.8 , +0.0008 ],
99
+ [SIN , 295 , +540.7 , +0.0004 ],
100
+ [SIN , 61 , -44.4 , +0.0004 ],
101
+ [SIN , 17 , -30.3 , +0.0004 ],
102
+ [SIN , 125 , +900.7 , +0.0003 ],
103
+ [SIN , 44 , +11.0 , +0.0003 ]]
104
+ # 金星の日心黄緯
105
+ # @private
106
+ P2B =
107
+ [[SINL , 233.72 , +585.183 , +0.05922 ]]
108
+ # 金星の動径の対数
109
+ # @private
110
+ P2Q =
111
+ [[LIN , -0.140658 , 0.0 , 0.0 ],
112
+ [COS , 178.954 , +585.178 , -0.002931 ],
113
+ [COS , 357.9 , +1170.35 , -0.000015 ],
114
+ [COS , 62.3 , +450.37 , +0.000010 ],
115
+ [COS , 93 , +675.6 , +0.000008 ]]
116
+
117
+ # 火星の日心黄経
118
+ # @private
119
+ P4L =
120
+ [[LIN , 249.3542 , +191.4169632, 3.11E-8 ],
121
+ [SINL , 40.01 , +382.8184846, -0.0149 ,6.22E-8],
122
+ [SIN , 248.6 , -19.34136 , -0.00478 ],
123
+ [SIN , 198 , +720.01539 , -0.00037 ]]
124
+ # 火星の日心黄経の補正
125
+ # @private
126
+ P4dL =
127
+ [[SIN , 273.768 , +191.39855 ,+10.6886 ,1.76E-8 ],
128
+ [SINT , 273.768 , +191.39855 , +0.00010 ,1.76E-8 ],
129
+ [SIN , 187.54 , +382.79710 , +0.6225 ,3.52E-8 ],
130
+ [SIN , 101.31 , +574.19566 , +0.0503 ,5.28E-8 ],
131
+ [SIN , 62.31 , +0.198 , +0.0146 ],
132
+ [SIN , 71.8 , +161.05 , +0.0071 ,10E-8 ],
133
+ [SIN , 230.2 , +130.71 , +0.0061 ,18E-8 ],
134
+ [SIN , 15.1 , +765.5942 , +0.0046 , 8E-8 ],
135
+ [SIN , 147.5 , +322.11 , +0.0045 ],
136
+ [SIN , 279.3 , -22.81 , +0.0039 ],
137
+ [SIN , 207.7 , +168.59 , +0.0024 ],
138
+ [SIN , 140.1 , +145.78 , +0.0020 ],
139
+ [SIN , 224.7 , +10.98 , +0.0018 ],
140
+ [SIN , 221.8 , -45.62 , +0.0014 ],
141
+ [SIN , 91.4 , -30.34 , +0.0010 ],
142
+ [SIN , 268 , +100.4 , +0.0009 ],
143
+ [SIN , 343 , 352.5 , +0.0009 ],
144
+ [SIN , 71 , +123.0 , +0.0007 ],
145
+ [SIN , 203 , +291.8 , +0.0007 ],
146
+ [SIN , 62 , +513.5 , +0.0006 ],
147
+ [SIN , 289 , +957.0 , +0.0005 ],
148
+ [SIN , 13 , +167.0 , +0.0005 ],
149
+ [SIN , 318 , -60.7 , +0.0004 ],
150
+ [SIN , 318 , +179.2 , +0.0004 ],
151
+ [SIN , 85 , +8.9 , +0.0004 ],
152
+ [SIN , 57 , +483.2 , +0.0004 ],
153
+ [SIN , 7 , -214.2 , +0.0004 ],
154
+ [SIN , 1 , +100.2 , +0.0003 ]]
155
+ # 火星の日心黄緯
156
+ # @private
157
+ P4B =
158
+ [[SINL , 200.00 , +191.4092423, 0.03227 , 2.949E-8 ],
159
+ [SINLT , 200.00 , +191.4092423, -1.06029E-7,2.949E-8 ]]
160
+ # 火星の動径の対数
161
+ # @private
162
+ P4Q =
163
+ [[LIN , +0.183844 , 0.0 , 0.0 ],
164
+ [COS , 273.768 , +191.39855 , -0.040421 ,1.76E-8 ],
165
+ [COS , 187.54 , +382.79710 , -0.002825 ,3.52E-8 ],
166
+ [COS , 101.31 , +574.19566 , -0.000249 ,5.28E-8 ],
167
+ [COS , 15.1 , +765.5942 , -0.000024 ,7.04E-8 ],
168
+ [COS , 251.7 , +161.05 , +0.000023 ],
169
+ [COS , 327.6 , +322.11 , +0.000022 ],
170
+ [COS , 50.2 , +130.71 , +0.000017 ],
171
+ [COS , 27 , +168.6 , +0.000007 ],
172
+ [COS , 320 , +145.8 , +0.000006 ]]
173
+
174
+ # 木星の日心平均黄経
175
+ # @private
176
+ P5L =
177
+ [[LIN , 355.1734 , +30.36303 , 2.24E-8 ]]
178
+ # 木星の日心黄経の補正
179
+ # @private
180
+ P5dL =
181
+ [[LIN , 341.5208 , +30.3490575, 2.24E-8 ],
182
+ [LIN , +0.0004 , 0.0 , 0.0 ],
183
+ [SIN , 245.94 , -30.3490575, +0.0350 ,-2.24E-8 ],
184
+ [SINT , 245.94 , -30.3490575, +0.00028 ,-2.24E-8 ],
185
+ [SIN , 162.78 , +0.38394 , -0.0019 ],
186
+ [SINT , 162.78 , +0.38394 , -0.000015 ],
187
+ [SIN , 162.78 , +0.38394 , +0.3323 ],
188
+ [SIN , 38.46 , -36.25584 , +0.0541 ,+5.92E-8 ],
189
+ [SIN , 293.42 , -29.94148 , +0.0447 ,+1.93E-7 ],
190
+ [SIN , 44.50 , -5.90678 , +0.0342 ,+8.15E-8 ],
191
+ [SIN , 201.25 , -24.03470 , +0.0230 ,+1.11E-7 ],
192
+ [SIN , 109.99 , -18.12792 , +0.0222 ,+2.96E-8 ],
193
+ [SIN , 248.6 , -19.34 , -0.0048 ],
194
+ [SIN , 184.6 , -11.81 , +0.0047 ],
195
+ [SIN , 150.1 , -54.38 , +0.0045 ],
196
+ [SIN , 130.7 , -42.16 , +0.0042 ],
197
+ [SIN , 7.6 , +6.31 , +0.0039 ],
198
+ [SIN , 163.2 , +12.22 , +0.0031 ],
199
+ [SIN , 145.6 , +0.77 , +0.0031 ],
200
+ [SIN , 191.3 , -0.23 , +0.0024 ],
201
+ [SIN , 148.4 , +24.44 , +0.0019 ],
202
+ [SIN , 197.9 , -29.941 , +0.0017 ],
203
+ [SIN , 307.9 , +36.66 , +0.0010 ],
204
+ [SIN , 227.5 , -72.51 , +0.0010 ],
205
+ [SIN , 269.0 , -60.29 , +0.0010 ],
206
+ [SIN , 278.7 , -29.53 , +0.0010 ],
207
+ [SIN , 52 , -66.6 , +0.0008 ],
208
+ [SIN , 24 , -35.8 , +0.0008 ],
209
+ [SIN , 356 , -5.5 , +0.0005 ],
210
+ [SIN , 186 , -23.6 , +0.0005 ],
211
+ [SIN , 344 , -5.9 , +0.0004 ],
212
+ [SIN , 222 , -48.1 , +0.0004 ],
213
+ [SIN , 198 , +720.0 , -0.0004 ],
214
+ [SIN , 140 , -48.5 , +0.0004 ],
215
+ [SIN , 104 , -24.0 , +0.0004 ],
216
+ [SIN , 317 , -30.3 , +0.0003 ],
217
+ [SIN , 280 , -17.7 , +0.0003 ],
218
+ [SIN , 262 , -60.7 , +0.0003 ],
219
+ [SIN , 211 , -26.1 , +0.0003 ],
220
+ [SIN , 209 , +42.6 , +0.0003 ],
221
+ [SIN , 1 , -90.6 , +0.0003 ]]
222
+ # 木星の日心黄緯
223
+ # @private
224
+ P5B =
225
+ [[SIN , 291.9 , -29.94 , +0.0010 ],
226
+ [SIN , 196 , -24.0 , +0.0003 ]]
227
+ # 木星の動径の対数
228
+ # @private
229
+ P5Q =
230
+ [[COS , 245.93 , -30.3490575, 0.000132 ,-2.24E-8 ],
231
+ [COST , 245.93 , -30.3490575, +0.0000011,-2.24E-8 ],
232
+ [COS , 38.47 , -36.25584 , +0.000230 ,+5.92E-8 ],
233
+ [COS , 293.36 , -29.94148 , -0.000168 ,+1.93E-7 ],
234
+ [COS , 200.5 , -24.03470 , +0.000074 ,+1.11E-7 ],
235
+ [COS , 110.0 , -18.12792 , +0.000055 ,+2.96E-8 ],
236
+ [COS , 39.3 , -5.90678 , +0.000038 ,+8.15E-8 ],
237
+ [COS , 150.9 , -54.33 , +0.000024 ],
238
+ [COS , 336.4 , +0.41 , +0.000023 ],
239
+ [COS , 131.7 , -42.16 , +0.000019 ],
240
+ [COS , 180 , -11.8 , +0.000009 ],
241
+ [COS , 277 , -60.3 , +0.000007 ],
242
+ [COS , 330 , +24.4 , +0.000006 ],
243
+ [COS , 53 , -66.6 , +0.000006 ],
244
+ [COS , 188 , +6.3 , +0.000006 ],
245
+ [COS , 251 , -72.5 , +0.000006 ],
246
+ [COS , 198 , -29.9 , +0.000006 ],
247
+ [COS , 353.5 , +12.22 , +0.000005 ]]
248
+ # 木星への土星からの摂動項
249
+ # @private
250
+ P5n = [+5.5280, +0.1666, +0.0079, +0.0003]
251
+ # @private
252
+ P5l = [+0.0075, +5.94, +13.6526, +0.01396925]
253
+ # @private
254
+ P5t = [+0.022889, +272.975, +0.0128, +0.00010, +35.52]
255
+ # @private
256
+ P5r = [+5.190688, +0.048254]
257
+
258
+ # 土星の日心平均黄経
259
+ # @private
260
+ P6L =
261
+ [[LIN , 104.1602 , +12.2351075, 5.195E-8 ]]
262
+ # 土星の日心黄経の補正
263
+ # @private
264
+ P6dL =
265
+ [[LIN , 12.3042 , +12.2211383, 5.195E-8 ],
266
+ [LIN , +0.0008 , 0.0 , 0.0 ],
267
+ [SIN , 250.29 , +12.2211383, +0.0934 ,5.195E-8 ],
268
+ [SINT , 250.29 , +12.2211383, +0.00075 ,5.195E-8 ],
269
+ [SIN , 265.8 , -11.8135619, +0.0057 ,1.631E-7 ],
270
+ [SINT , 265.8 , -11.8135619, +0.00005 ,1.631E-7 ],
271
+ [SIN , 162.7 , +0.38394 , +0.0049 ],
272
+ [SINT , 162.7 , +0.38394 , +0.00004 ],
273
+ [SIN , 262.0 , +24.44 , +0.0019 ],
274
+ [SINT , 262.0 , +24.44 , +0.00002 ],
275
+ [SIN , 342.74 , +0.38394 , +0.8081 ],
276
+ [SIN , 3.57 , -11.8135619, +0.1900 ,+1.63E-7 ],
277
+ [SIN , 224.52 , -5.9067809, +0.1173 ,+8.153E-8 ],
278
+ [SIN , 176.6 , +6.31 , +0.0093 ],
279
+ [SIN , 218.5 , -36.26 , +0.0089 ],
280
+ [SIN , 10.4 , -0.23 , +0.0080 ],
281
+ [SIN , 56.8 , +0.63 , +0.0078 ],
282
+ [SIN , 325.4 , +0.77 , +0.0074 ],
283
+ [SIN , 209.4 , -24.03 , +0.0073 ],
284
+ [SIN , 202.0 , -11.59 , +0.0064 ],
285
+ [SIN , 248.6 , -19.34 , -0.0048 ],
286
+ [SIN , 105.2 , -30.35 , +0.0034 ],
287
+ [SIN , 23.6 , -15.87 , +0.0034 ],
288
+ [SIN , 348.4 , -11.41 , +0.0025 ],
289
+ [SIN , 102.5 , -7.94 , +0.0022 ],
290
+ [SIN , 53.5 , -3.65 , +0.0021 ],
291
+ [SIN , 220.4 , -18.13 , +0.0020 ],
292
+ [SIN , 326.7 , -54.38 , +0.0018 ],
293
+ [SIN , 173.0 , -5.50 , +0.0017 ],
294
+ [SIN , 165.5 , -5.91 , +0.0014 ],
295
+ [SIN , 307.9 , -42.16 , +0.0013 ],
296
+ [SIN , 292 , -29.9 , +0.0009 ],
297
+ [SIN , 287 , -17.7 , +0.0009 ],
298
+ [SIN , 299 , -48.5 , +0.0008 ],
299
+ [SIN , 146 , +24.4 , +0.0007 ],
300
+ [SIN , 155 , +12.2 , +0.0007 ],
301
+ [SIN , 123 , +12.6 , +0.0007 ],
302
+ [SIN , 199.7 , -12.4 , +0.0005 ],
303
+ [SIN , 146 , -10.0 , +0.0005 ],
304
+ [SIN , 6 , +12.6 , +0.0005 ],
305
+ [SIN , 75 , -72.5 , +0.0005 ],
306
+ [SIN , 57 , -60.3 , +0.0004 ],
307
+ [SIN , 137 , -23.8 , +0.0004 ],
308
+ [SIN , 187 , -23.6 , +0.0004 ],
309
+ [SIN , 198 , +720.0 , -0.0004 ],
310
+ [SIN , 255 , -0.2 , +0.0003 ],
311
+ [SIN , 202 , -7.3 , +0.0003 ],
312
+ [SIN , 182 , +4.3 , +0.0003 ],
313
+ [SIN , 122 , -7.9 , +0.0003 ],
314
+ [SIN , 87 , +6.3 , +0.0003 ],
315
+ [SIN , 116 , -24.0 , +0.0003 ],
316
+ [SIN , 111 , -20.1 , +0.0003 ]]
317
+ # 土星の日心黄緯
318
+ # @private
319
+ P6B =
320
+ [[SIN , 3.9 , -11.81 , +0.0024 ],
321
+ [SIN , 269 , -5.9 , +0.0008 ],
322
+ [SIN , 135 , -30.3 , +0.0005 ]]
323
+ # 土星の動径の対数
324
+ # @private
325
+ P6Q =
326
+ [[LIN , +0.000183 , 0.0 , 0.0 ],
327
+ [COS , 70.28 , +12.2211383, 0.000354 ,5.195E-8 ],
328
+ [COST , 70.28 , +12.2211383, +0.0000028,5.195E-8 ],
329
+ [COS , 265.8 , -11.8135619, +0.000021 ,1.631E-7 ],
330
+ [COST , 265.8 , -11.8135619, +0.0000002,1.631E-7 ],
331
+ [COS , 3.43 , -11.8135619, +0.000701 ,1.631E-7 ],
332
+ [COS , 110.54 , -18.1279192, +0.000378 ,2.958E-8 ],
333
+ [COS , 219.13 , -5.9067809, +0.000244 ,+8.153E-7 ],
334
+ [COS , 158.22 , +0.38394 , +0.000114 ],
335
+ [COS , 218.1 , -36.26 , +0.000064 ],
336
+ [COS , 215.8 , -24.03 , +0.000042 ],
337
+ [COS , 201.8 , -11.59 , +0.000024 ],
338
+ [COS , 1.3 , +6.31 , +0.000024 ],
339
+ [COS , 307.7 , +12.22 , +0.000019 ],
340
+ [COS , 326.3 , -54.38 , +0.000015 ],
341
+ [COS , 311.1 , -42.16 , +0.000010 ],
342
+ [COS , 83.2 , +24.44 , +0.000010 ],
343
+ [COS , 348 , -11.4 , +0.000009 ],
344
+ [COS , 129 , -30.3 , +0.000008 ],
345
+ [COS , 295 , -29.9 , +0.000006 ],
346
+ [COS , 148 , -48.5 , +0.000006 ],
347
+ [COS , 103 , -7.9 , +0.000006 ],
348
+ [COS , 318 , +24.4 , +0.000005 ],
349
+ [COS , 24 , -15.9 , +0.000005 ]]
350
+ # 土星への木星からの摂動項
351
+ # @private
352
+ P6n = [+6.4215, +0.2248, +0.0109, +0.0006]
353
+ # @private
354
+ P6l = [+0.0272, +135.53, +91.8560, +0.01396925]
355
+ # @private
356
+ P6t = [+0.043519, +337.763, +0.0286, +0.00023, +77.06]
357
+ # @private
358
+ P6r = [+9.508863, +0.056061]
359
+
360
+ # 天王星の日心黄経
361
+ # @private
362
+ P7L =
363
+ [[LIN , 313.33676 , 428.7288 , 0.0003 ],
364
+ [COS , 48.8503 , 460.61987 , 5.35857 ],
365
+ [COST , 114.0274 , 705.15539 , 3.20671 ],
366
+ [COST , 317.7651 , 597.77389 , 2.69325 ],
367
+ [COS , 188.3245 , 919.0429 , 0.58964 ],
368
+ [COS , 354.5935 , 1065.1192 , 0.12397 ],
369
+ [COS , 351.028 , 2608.702 , 0.01475 ],
370
+ [COS , 247.7 , 1968.3 , 0.0009 ],
371
+ [COS , 10.4 , 5647.4 , 0.00036 ],
372
+ [COS , 183.6 , 2356.6 , 0.00017 ],
373
+ [COS , 321.9 , 2873.2 , 0.00017 ],
374
+ [COS , 313.4 , 3798.6 , 0.00015 ],
375
+ [COS , 308.1 , 3157.9 , 0.00014 ]]
376
+ # 天王星の日心黄緯
377
+ # @private
378
+ P7B =
379
+ [[COST , 188.32394 , 507.52281 , 1.78488 ],
380
+ [COS , 128.15303 , 419.91739 , 1.15483 ],
381
+ [COS , 273.6644 , 652.9504 , 0.67756 ],
382
+ [COST , 354.9571 , 892.2869 , 0.56518 ],
383
+ [COS , 83.3517 , 998.0302 , 0.1349 ],
384
+ [LIN , -0.02997 , 0.0 , 0.0 ],
385
+ [COST , 263.0 , 1526.5 , 0.00036 ],
386
+ [COS , 194.2 , 3030.9 , 0.00025 ]]
387
+ # 天王星の動径
388
+ # @private
389
+ P7R =
390
+ [[LIN , 19.203034 , 0.0 , 0.0 ],
391
+ [COS , 320.313 , 408.729 , 0.90579 ],
392
+ [COST , 19.879 , 440.702 , 0.361949 ],
393
+ [COST , 307.419 , 702.024 , 0.166685 ],
394
+ [COS , 67.99 , 799.95 , 0.06271 ],
395
+ [LIN , 0.0 , 0.042617 , 0.0 ],
396
+ [COS , 80.4 , 2613.7 , 0.004897 ],
397
+ [COS , 202.0 , 1527.0 , 0.000656 ],
398
+ [COS , 321.0 , 2120.0 , 0.000223 ],
399
+ [COS , 37.0 , 3104.0 , 0.000205 ],
400
+ [COS , 100.0 , 5652.0 , 0.00012 ]]
401
+
402
+ # 海王星の日心黄経
403
+ # @private
404
+ P8L =
405
+ [[LIN , -55.13323 , 219.93503 , 0.0003 ],
406
+ [COS , 167.7269 , 221.3904 , 0.9745 ],
407
+ [COST , 332.797 , 684.128 , 0.04403 ],
408
+ [COST , 342.114 , 904.371 , 0.02928 ],
409
+ [COS , 50.826 , 986.281 , 0.01344 ],
410
+ [COS , 0.09 , 2815.89 , 0.00945 ],
411
+ [COS , 309.35 , 2266.5 , 0.00235 ],
412
+ [COS , 127.61 , 2279.43 , 0.00225 ],
413
+ [COS , 19.2 , 5851.6 , 0.00023 ]]
414
+ # 海王星の日心黄緯
415
+ # @private
416
+ P8B =
417
+ [[COS , 83.11018 , 218.87906 , 1.76958 ],
418
+ [LIN , 0.01725 , 0.0 , 0.0 ],
419
+ [COS , 338.864 , 447.128 , 0.01366 ],
420
+ [COS , 224.7 , 1107.1 , 0.00015 ],
421
+ [COS , 187.5 , 2596.7 , 0.00015 ],
422
+ [COS , 243.9 , 3035.0 , 0.00012 ]]
423
+ # 海王星の動径
424
+ # @private
425
+ P8R =
426
+ [[LIN , 30.073033 , 0.0 , 0.0 ],
427
+ [COS , 79.994 , 222.371 , 0.260457 ],
428
+ [COST , 195.7 , 515.2 , 0.009784 ],
429
+ [COS , 90.1 , 2815.4 , 0.004944 ],
430
+ [COS , 308.1 , 524.0 , 0.003364 ],
431
+ [COS , 104.0 , 1025.1 , 0.002579 ],
432
+ [COS , 111.0 , 5845.0 , 0.00012 ]]
433
+
434
+ # 冥王星の日心黄経
435
+ # @private
436
+ P9L =
437
+ [[LIN , 241.82574 , 179.09519 , -0.0091 ],
438
+ [COS , 298.348019 , 246.556453 , 15.81087 ],
439
+ [COS , 351.67676 , 551.3471 , 1.18379 ],
440
+ [COS , 41.989 , 941.622 , 0.07886 ],
441
+ [COS , 60.35 , 2836.46 , 0.00861 ],
442
+ [COS , 112.91 , 1306.75 , 0.0059 ],
443
+ [COS , 19.01 , 2488.14 , 0.00145 ],
444
+ [COS , 77.9 , 5861.8 , 0.00022 ],
445
+ [COS , 293.0 , 3288.8 , 0.00013 ]]
446
+ # 冥王星の日心黄緯
447
+ # @private
448
+ P9B =
449
+ [[COS , 42.574982 , 172.554318 , 17.0455 ],
450
+ [COS , 66.1535 , 415.6063 , 2.4531 ],
451
+ [LIN , -2.30285 , 0.0 , 0.0 ],
452
+ [COS , 105.084 , 713.1227 , 0.26775 ],
453
+ [COS , 146.66 , 1089.202 , 0.01855 ],
454
+ [COS , 293.06 , 2658.22 , 0.00119 ],
455
+ [COS , 18.8 , 3055.6 , 0.00098 ],
456
+ [COS , 213.7 , 1532.6 , 0.0009 ],
457
+ [COS , 254.2 , 2342.3 , 0.00042 ]]
458
+ # 冥王星の動径
459
+ # @private
460
+ P9R =
461
+ [[LIN , 38.662489 , 0.0 , 0.0 ],
462
+ [COS , 198.4973 , 181.3383 , 8.670489 ],
463
+ [COS , 228.717 , 475.963 , 0.333884 ],
464
+ [COS , 252.9 , 909.8 , 0.008426 ],
465
+ [COST , 31.0 , 1425.9 , 0.007619 ],
466
+ [COS , 149.4 , 2831.6 , 0.004902 ],
467
+ [COST , 199.5 , 2196.1 , 0.002543 ],
468
+ [COS , 114.1 , 1748.0 , 0.001188 ],
469
+ [COS , 15.0 , 3188.0 , 0.00039 ],
470
+ [COS , 169.0 , 5860.0 , 0.000116 ]]
471
+
472
+ class Datum < CelestialObject
473
+
474
+ # Far planets - Mercury, Uranus, Neptune and Pluto
475
+ #
476
+ # 起動要素の精度が低く、平均運動がユリウス世紀あたりの値である
477
+ #
478
+ class Far < Datum
479
+
480
+ # 位置 (黄道座標)
481
+ #
482
+ # @param [Numeric] t ユリウス日(Terrestrial Time)
483
+ # @param [When::TM::TemporalPosition] t
484
+ #
485
+ # @return [When::Ephemeris::Coords]
486
+ #
487
+ def _coords(t)
488
+ c = julian_century_from_2000(+t)
489
+ Coords.polar(
490
+ trigonometric(c, @phi) / 360,
491
+ trigonometric(c, @theta) / 360,
492
+ trigonometric(c, @radius) / 360,
493
+ trigonometric(c, @phi, 0, 1) / 360).nutation(c)
494
+ end
495
+
496
+ # 平均運動 / (DEG/YEAR)
497
+ #
498
+ # @return [Numeric]
499
+ #
500
+ def mean_motion
501
+ 100.0 * super
502
+ end
503
+ end
504
+
505
+ # Near planets - Venus and Mars
506
+ #
507
+ # 起動要素の精度が高く、平均運動が年あたりの値である
508
+ #
509
+ class Near < Datum
510
+
511
+ #
512
+ # 位置 (黄道座標)
513
+ #
514
+ # @param [Numeric] t ユリウス日(Terrestrial Time)
515
+ # @param [When::TM::TemporalPosition] t
516
+ #
517
+ # @return [When::Ephemeris::Coords]
518
+ #
519
+ def _coords(t)
520
+ y = julian_year_from_1975(+t)
521
+ dl = trigonometric(y, @dl)
522
+ Coords.polar(
523
+ trigonometric(y, @phi, dl) / 360,
524
+ asin(trigonometric(y, @theta, dl)) / CIRCLE,
525
+ 10**trigonometric(y, @radius),
526
+ trigonometric(y, @phi, 0, 1) / 360)
527
+ end
528
+ end
529
+
530
+ # Big planets - Jupiter and Saturn
531
+ #
532
+ # 軌道が互いに影響を与えており、共鳴項が大きい
533
+ #
534
+ class Big < Datum
535
+
536
+ # 位置 (黄道座標)
537
+ #
538
+ # @param [Numeric] t ユリウス日(Terrestrial Time)
539
+ # @param [When::TM::TemporalPosition] t
540
+ #
541
+ # @return [When::Ephemeris::Coords]
542
+ #
543
+ def _coords(t)
544
+ y = julian_year_from_1975(+t)
545
+ phi = nn = trigonometric(y, @nn)
546
+ @jsn.each_index do |k|
547
+ phi += @jsn[k] * sind((k+1)*nn)
548
+ end
549
+ Coords.polar(
550
+ (phi+ @jsl[0]*sind(2*phi+@jsl[1]) + @jsl[2] + @jsl[3]*y) / 360,
551
+ asin(@jst[0]*sind(phi+@jst[1])) / CIRCLE +
552
+ ((@jst[2]+@jst[3]*y)*sind(phi+@jst[4]) + trigonometric(y, @theta)) / 360,
553
+ 10**(trigonometric(y,@radius)) * @jsr[0]/(1+@jsr[1]*cosd(phi)),
554
+ trigonometric(y, @phi, 0, 1) / 360)
555
+ end
556
+ end
557
+ end
558
+
559
+ # 水星
560
+ Mercury = Datum::Far.new( 2440.0, 0.00347 , 1.16, {:phi=>P1L, :theta=>P1B, :radius=>P1R})
561
+
562
+ # 金星
563
+ Venus = Datum::Near.new( 5988.0, 0.00484 , -4.00, {:phi=>P2L, :dl=>P2dL, :theta=>P2B, :radius=>P2Q})
564
+
565
+ # 火星
566
+ Mars = Datum::Near.new( 3397.0, 0.00700 , -1.30, {:phi=>P4L, :dl=>P4dL, :theta=>P4B, :radius=>P4Q})
567
+
568
+ # 木星
569
+ Jupiter = Datum::Big.new( 71398.0, 0.01298 , -8.93, {:phi=>P5L, :nn=>P5dL, :theta=>P5B, :radius=>P5Q,
570
+ :jsn=>P5n, :jsl=>P5l, :jst=>P5t, :jsr=>P5r})
571
+
572
+ # 土星
573
+ Saturn = Datum::Big.new( 60330.0, 0.01756 , -8.68, {:phi=>P6L, :nn=>P6dL, :theta=>P6B, :radius=>P6Q,
574
+ :jsn=>P6n, :jsl=>P6l, :jst=>P6t, :jsr=>P6r})
575
+
576
+ # 天王星
577
+ Uranus = Datum::Far.new( 25400.0, 0.02490 , -6.85, 2433283, 2473460, {:phi=>P7L, :theta=>P7B, :radius=>P7R})
578
+
579
+ # 海王星
580
+ Neptune = Datum::Far.new( 24300.0, 0.03121 , -7.05, 2433283, 2473460, {:phi=>P8L, :theta=>P8B, :radius=>P8R})
581
+
582
+ # 冥王星
583
+ Pluto = Datum::Far.new( 1180.0, 0.03461 , -1.00, 2433283, 2473460, {:phi=>P9L, :theta=>P9B, :radius=>P9R})
584
+ end
585
+ end