astronoby 0.6.0 → 0.8.0
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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/.standard.yml +1 -0
- data/CHANGELOG.md +203 -3
- data/README.md +69 -288
- data/UPGRADING.md +267 -0
- data/docs/README.md +196 -0
- data/docs/angles.md +137 -0
- data/docs/celestial_bodies.md +107 -0
- data/docs/configuration.md +98 -0
- data/docs/coordinates.md +167 -0
- data/docs/ephem.md +85 -0
- data/docs/equinoxes_solstices_times.md +31 -0
- data/docs/glossary.md +152 -0
- data/docs/instant.md +139 -0
- data/docs/moon_phases.md +79 -0
- data/docs/observer.md +65 -0
- data/docs/reference_frames.md +138 -0
- data/docs/rise_transit_set_times.md +119 -0
- data/docs/twilight_times.md +123 -0
- data/lib/astronoby/aberration.rb +56 -31
- data/lib/astronoby/angle.rb +20 -16
- data/lib/astronoby/angles/dms.rb +2 -2
- data/lib/astronoby/angles/hms.rb +2 -2
- data/lib/astronoby/bodies/earth.rb +62 -0
- data/lib/astronoby/bodies/jupiter.rb +28 -0
- data/lib/astronoby/bodies/mars.rb +28 -0
- data/lib/astronoby/bodies/mercury.rb +32 -0
- data/lib/astronoby/bodies/moon.rb +51 -298
- data/lib/astronoby/bodies/neptune.rb +32 -0
- data/lib/astronoby/bodies/saturn.rb +37 -0
- data/lib/astronoby/bodies/solar_system_body.rb +232 -0
- data/lib/astronoby/bodies/sun.rb +33 -214
- data/lib/astronoby/bodies/uranus.rb +16 -0
- data/lib/astronoby/bodies/venus.rb +36 -0
- data/lib/astronoby/cache.rb +188 -0
- data/lib/astronoby/configuration.rb +92 -0
- data/lib/astronoby/constants.rb +17 -2
- data/lib/astronoby/constellation.rb +12 -0
- data/lib/astronoby/constellations/data.rb +42 -0
- data/lib/astronoby/constellations/finder.rb +35 -0
- data/lib/astronoby/constellations/repository.rb +20 -0
- data/lib/astronoby/coordinates/ecliptic.rb +2 -37
- data/lib/astronoby/coordinates/equatorial.rb +28 -10
- data/lib/astronoby/coordinates/horizontal.rb +0 -46
- data/lib/astronoby/corrections/light_time_delay.rb +90 -0
- data/lib/astronoby/data/constellations/constellation_names.dat +88 -0
- data/lib/astronoby/data/constellations/indexed_abbreviations.dat +88 -0
- data/lib/astronoby/data/constellations/radec_to_index.dat +238 -0
- data/lib/astronoby/data/constellations/sorted_declinations.dat +202 -0
- data/lib/astronoby/data/constellations/sorted_right_ascensions.dat +237 -0
- data/lib/astronoby/deflection.rb +187 -0
- data/lib/astronoby/distance.rb +9 -0
- data/lib/astronoby/ephem.rb +39 -0
- data/lib/astronoby/equinox_solstice.rb +22 -19
- data/lib/astronoby/errors.rb +4 -0
- data/lib/astronoby/events/moon_phases.rb +15 -13
- data/lib/astronoby/events/rise_transit_set_calculator.rb +376 -0
- data/lib/astronoby/events/rise_transit_set_event.rb +13 -0
- data/lib/astronoby/events/rise_transit_set_events.rb +13 -0
- data/lib/astronoby/events/twilight_calculator.rb +221 -0
- data/lib/astronoby/events/twilight_event.rb +28 -0
- data/lib/astronoby/events/twilight_events.rb +22 -115
- data/lib/astronoby/instant.rb +176 -0
- data/lib/astronoby/julian_date.rb +78 -0
- data/lib/astronoby/mean_obliquity.rb +24 -13
- data/lib/astronoby/nutation.rb +235 -42
- data/lib/astronoby/observer.rb +55 -0
- data/lib/astronoby/precession.rb +102 -18
- data/lib/astronoby/reference_frame.rb +50 -0
- data/lib/astronoby/reference_frames/apparent.rb +60 -0
- data/lib/astronoby/reference_frames/astrometric.rb +21 -0
- data/lib/astronoby/reference_frames/geometric.rb +20 -0
- data/lib/astronoby/reference_frames/mean_of_date.rb +38 -0
- data/lib/astronoby/reference_frames/topocentric.rb +72 -0
- data/lib/astronoby/time/greenwich_sidereal_time.rb +2 -2
- data/lib/astronoby/true_obliquity.rb +3 -3
- data/lib/astronoby/util/maths.rb +70 -73
- data/lib/astronoby/util/time.rb +455 -32
- data/lib/astronoby/vector.rb +36 -0
- data/lib/astronoby/velocity.rb +116 -0
- data/lib/astronoby/version.rb +1 -1
- data/lib/astronoby.rb +33 -5
- metadata +117 -24
- data/.tool-versions +0 -1
- data/Gemfile +0 -5
- data/Gemfile.lock +0 -80
- data/benchmark/README.md +0 -131
- data/benchmark/benchmark.rb +0 -259
- data/benchmark/data/imcce.csv.zip +0 -0
- data/benchmark/data/sun_calc.csv.zip +0 -0
- data/lib/astronoby/astronomical_models/ephemeride_lunaire_parisienne.rb +0 -143
- data/lib/astronoby/epoch.rb +0 -22
- data/lib/astronoby/events/observation_events.rb +0 -285
- data/lib/astronoby/events/rise_transit_set_iteration.rb +0 -218
- data/lib/astronoby/util/astrodynamics.rb +0 -60
data/benchmark/benchmark.rb
DELETED
@@ -1,259 +0,0 @@
|
|
1
|
-
require "astronoby"
|
2
|
-
require "csv"
|
3
|
-
require "zip"
|
4
|
-
|
5
|
-
class Source
|
6
|
-
NAMES = [
|
7
|
-
ASTRONOBY = "astronoby",
|
8
|
-
IMCCE = "imcce",
|
9
|
-
SUN_CALC = "sun_calc"
|
10
|
-
].freeze
|
11
|
-
|
12
|
-
attr_accessor :name,
|
13
|
-
:sun_rising_time,
|
14
|
-
:sun_transit_time,
|
15
|
-
:sun_setting_time,
|
16
|
-
:moon_rising_time,
|
17
|
-
:moon_transit_time,
|
18
|
-
:moon_setting_time,
|
19
|
-
:moon_illuminated_fraction
|
20
|
-
end
|
21
|
-
|
22
|
-
class Comparison
|
23
|
-
SUN_CALC = "sun_calc"
|
24
|
-
ASTRONOBY = "astronoby"
|
25
|
-
NON_APPLICABLE = "n/a"
|
26
|
-
|
27
|
-
TOO_FAR_THRESHOLD = 60 * 5 # 5 minutes
|
28
|
-
|
29
|
-
attr_accessor :sources, :truth
|
30
|
-
|
31
|
-
def initialize
|
32
|
-
@sources = []
|
33
|
-
end
|
34
|
-
|
35
|
-
%i[
|
36
|
-
sun_rising_time
|
37
|
-
sun_transit_time
|
38
|
-
sun_setting_time
|
39
|
-
moon_rising_time
|
40
|
-
moon_transit_time
|
41
|
-
moon_setting_time
|
42
|
-
].each do |attribute|
|
43
|
-
define_method(:"closest_#{attribute}") do
|
44
|
-
compare(attribute)
|
45
|
-
end
|
46
|
-
|
47
|
-
define_method(:"#{attribute}_too_far?") do
|
48
|
-
too_far?(attribute)
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
def closest_moon_illuminated_fraction
|
53
|
-
compare(:moon_illuminated_fraction)
|
54
|
-
end
|
55
|
-
|
56
|
-
private
|
57
|
-
|
58
|
-
def compare(attribute)
|
59
|
-
unless truth.public_send(attribute) && sources.all? { |source| source.public_send(attribute) }
|
60
|
-
return NON_APPLICABLE
|
61
|
-
end
|
62
|
-
|
63
|
-
closest_source = sources.min_by do |source|
|
64
|
-
(truth.public_send(attribute) - source.public_send(attribute)).abs
|
65
|
-
end
|
66
|
-
|
67
|
-
closest_source.name
|
68
|
-
end
|
69
|
-
|
70
|
-
def too_far?(attribute)
|
71
|
-
truth_attribute = truth.public_send(attribute)
|
72
|
-
astronoby_attribute = sources
|
73
|
-
.find { _1.name == Source::ASTRONOBY }
|
74
|
-
.public_send(attribute)
|
75
|
-
|
76
|
-
return false unless truth_attribute && astronoby_attribute
|
77
|
-
|
78
|
-
(truth_attribute - astronoby_attribute).abs > TOO_FAR_THRESHOLD
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
class Result
|
83
|
-
def initialize
|
84
|
-
@sun_rising_time = []
|
85
|
-
@sun_transit_time = []
|
86
|
-
@sun_setting_time = []
|
87
|
-
@moon_rising_time = []
|
88
|
-
@moon_transit_time = []
|
89
|
-
@moon_setting_time = []
|
90
|
-
@illuminated_fraction = []
|
91
|
-
@sun_rising_time_too_far = []
|
92
|
-
@sun_transit_time_too_far = []
|
93
|
-
@sun_setting_time_too_far = []
|
94
|
-
@moon_rising_time_too_far = []
|
95
|
-
@moon_transit_time_too_far = []
|
96
|
-
@moon_setting_time_too_far = []
|
97
|
-
end
|
98
|
-
|
99
|
-
def add_comparison(comparison)
|
100
|
-
@sun_rising_time << comparison.closest_sun_rising_time
|
101
|
-
@sun_transit_time << comparison.closest_sun_transit_time
|
102
|
-
@sun_setting_time << comparison.closest_sun_setting_time
|
103
|
-
@moon_rising_time << comparison.closest_moon_rising_time
|
104
|
-
@moon_transit_time << comparison.closest_moon_transit_time
|
105
|
-
@moon_setting_time << comparison.closest_moon_setting_time
|
106
|
-
@illuminated_fraction << comparison.closest_moon_illuminated_fraction
|
107
|
-
@sun_rising_time_too_far << comparison.sun_rising_time_too_far?
|
108
|
-
@sun_transit_time_too_far << comparison.sun_transit_time_too_far?
|
109
|
-
@sun_setting_time_too_far << comparison.sun_setting_time_too_far?
|
110
|
-
@moon_rising_time_too_far << comparison.moon_rising_time_too_far?
|
111
|
-
@moon_transit_time_too_far << comparison.moon_transit_time_too_far?
|
112
|
-
@moon_setting_time_too_far << comparison.moon_setting_time_too_far?
|
113
|
-
end
|
114
|
-
|
115
|
-
def display
|
116
|
-
puts "Sun rising time:"
|
117
|
-
tally(@sun_rising_time)
|
118
|
-
puts "Sun transit time:"
|
119
|
-
tally(@sun_transit_time)
|
120
|
-
puts "Sun setting time:"
|
121
|
-
tally(@sun_setting_time)
|
122
|
-
puts "Moon rising time:"
|
123
|
-
tally(@moon_rising_time)
|
124
|
-
puts "Moon transit time:"
|
125
|
-
tally(@moon_transit_time)
|
126
|
-
puts "Moon setting time:"
|
127
|
-
tally(@moon_setting_time)
|
128
|
-
puts "Moon illuminated fraction:"
|
129
|
-
tally(@illuminated_fraction)
|
130
|
-
puts "Sun rising time too far:"
|
131
|
-
tally(@sun_rising_time_too_far)
|
132
|
-
puts "Sun transit time too far:"
|
133
|
-
tally(@sun_transit_time_too_far)
|
134
|
-
puts "Sun setting time too far:"
|
135
|
-
tally(@sun_setting_time_too_far)
|
136
|
-
puts "Moon rising time too far:"
|
137
|
-
tally(@moon_rising_time_too_far)
|
138
|
-
puts "Moon transit time too far:"
|
139
|
-
tally(@moon_transit_time_too_far)
|
140
|
-
puts "Moon setting time too far:"
|
141
|
-
tally(@moon_setting_time_too_far)
|
142
|
-
end
|
143
|
-
|
144
|
-
private
|
145
|
-
|
146
|
-
def tally(data)
|
147
|
-
t = data.tally
|
148
|
-
t.sort_by { |_key, value| -value }.each do |key, value|
|
149
|
-
puts "#{key}: #{value} (#{(value.to_f / t.values.sum * 100).round(2)}%)"
|
150
|
-
end
|
151
|
-
puts "\n"
|
152
|
-
end
|
153
|
-
end
|
154
|
-
|
155
|
-
data = {}
|
156
|
-
result = Result.new
|
157
|
-
|
158
|
-
sun_calc_zip_file = File.join(File.dirname(__FILE__), "data/sun_calc.csv.zip")
|
159
|
-
imcce_zip_file = File.join(File.dirname(__FILE__), "data/imcce.csv.zip")
|
160
|
-
|
161
|
-
puts "Unarchiving sun_calc.csv.zip..."
|
162
|
-
|
163
|
-
Zip::File.open(sun_calc_zip_file) do |zip_file|
|
164
|
-
puts "Done unarchiving sun_calc.csv.zip."
|
165
|
-
|
166
|
-
csv_file = zip_file.find { |entry| entry.name.end_with?(".csv") }
|
167
|
-
break unless csv_file
|
168
|
-
|
169
|
-
puts "Parsing sun_calc.csv..."
|
170
|
-
|
171
|
-
csv_content = csv_file.get_input_stream.read
|
172
|
-
CSV.parse(csv_content, headers: true) do |row|
|
173
|
-
data[row["date"]] ||= {}
|
174
|
-
data[row["date"]][row["latitude"]] ||= {}
|
175
|
-
data[row["date"]][row["latitude"]][row["longitude"]] = Comparison.new.tap do |comparison|
|
176
|
-
source = Source.new.tap do |source|
|
177
|
-
source.name = Source::SUN_CALC
|
178
|
-
source.sun_rising_time = Time.new(row["sun_rising_time"]) if row["sun_rising_time"]
|
179
|
-
source.sun_transit_time = Time.new(row["sun_transit_time"]) if row["sun_transit_time"]
|
180
|
-
source.sun_setting_time = Time.new(row["sun_setting_time"]) if row["sun_setting_time"]
|
181
|
-
source.moon_rising_time = Time.new(row["moon_rising_time"]) if row["moon_rising_time"]
|
182
|
-
source.moon_transit_time = Time.new(row["moon_transit_time"]) if row["moon_transit_time"]
|
183
|
-
source.moon_setting_time = Time.new(row["moon_setting_time"]) if row["moon_setting_time"]
|
184
|
-
source.moon_illuminated_fraction = row["illuminated_fraction"].to_f
|
185
|
-
end
|
186
|
-
comparison.sources << source
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
puts "Done parsing sun_calc.csv."
|
191
|
-
end
|
192
|
-
|
193
|
-
puts "Unarchiving imcce.csv.zip..."
|
194
|
-
|
195
|
-
Zip::File.open(imcce_zip_file) do |zip_file|
|
196
|
-
puts "Done unarchiving imcce.csv.zip."
|
197
|
-
|
198
|
-
csv_file = zip_file.find { |entry| entry.name.end_with?(".csv") }
|
199
|
-
break unless csv_file
|
200
|
-
|
201
|
-
puts "Parsing imcce.csv..."
|
202
|
-
|
203
|
-
csv_content = csv_file.get_input_stream.read
|
204
|
-
CSV.parse(csv_content, headers: true) do |row|
|
205
|
-
comparison = data[row["date"]][row["latitude"]][row["longitude"]]
|
206
|
-
comparison.truth = Source.new.tap do |source|
|
207
|
-
source.name = Source::IMCCE
|
208
|
-
source.sun_rising_time = Time.new(row["sun_rising_time"] + " UTC") if row["sun_rising_time"]
|
209
|
-
source.sun_transit_time = Time.new(row["sun_transit_time"] + " UTC") if row["sun_transit_time"]
|
210
|
-
source.sun_setting_time = Time.new(row["sun_setting_time"] + " UTC") if row["sun_setting_time"]
|
211
|
-
source.moon_rising_time = Time.new(row["moon_rising_time"] + " UTC") if row["moon_rising_time"]
|
212
|
-
source.moon_transit_time = Time.new(row["moon_transit_time"] + " UTC") if row["moon_transit_time"]
|
213
|
-
source.moon_setting_time = Time.new(row["moon_setting_time"] + " UTC") if row["moon_setting_time"]
|
214
|
-
source.moon_illuminated_fraction = row["illuminated_fraction"].to_f
|
215
|
-
end
|
216
|
-
end
|
217
|
-
|
218
|
-
puts "Done parsing imcce.csv."
|
219
|
-
end
|
220
|
-
|
221
|
-
puts "Comparing data..."
|
222
|
-
|
223
|
-
data.each do |date, latitudes|
|
224
|
-
latitudes.each do |latitude, longitudes|
|
225
|
-
longitudes.each do |longitude, comparison|
|
226
|
-
noon = Time.new("#{date}T12:00:00Z")
|
227
|
-
observer = Astronoby::Observer.new(
|
228
|
-
latitude: Astronoby::Angle.from_degrees(latitude.to_i),
|
229
|
-
longitude: Astronoby::Angle.from_degrees(longitude.to_i)
|
230
|
-
)
|
231
|
-
sun = Astronoby::Sun.new(time: noon)
|
232
|
-
sun_observation_events = sun.observation_events(observer: observer)
|
233
|
-
moon = Astronoby::Moon.new(time: noon)
|
234
|
-
moon_observation_events = moon.observation_events(observer: observer)
|
235
|
-
|
236
|
-
source = Source.new.tap do |source|
|
237
|
-
source.name = Source::ASTRONOBY
|
238
|
-
source.sun_rising_time = sun_observation_events.rising_time
|
239
|
-
source.sun_transit_time = sun_observation_events.transit_time
|
240
|
-
source.sun_setting_time = sun_observation_events.setting_time
|
241
|
-
source.moon_rising_time = moon_observation_events.rising_time
|
242
|
-
source.moon_transit_time = moon_observation_events.transit_time
|
243
|
-
source.moon_setting_time = moon_observation_events.setting_time
|
244
|
-
source.moon_illuminated_fraction = moon.illuminated_fraction
|
245
|
-
end
|
246
|
-
|
247
|
-
comparison.sources << source
|
248
|
-
result.add_comparison(comparison)
|
249
|
-
end
|
250
|
-
end
|
251
|
-
|
252
|
-
puts "#{date}: Done."
|
253
|
-
end
|
254
|
-
|
255
|
-
puts "Done comparing data."
|
256
|
-
puts
|
257
|
-
puts
|
258
|
-
|
259
|
-
puts result.display
|
Binary file
|
Binary file
|
@@ -1,143 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Astronoby
|
4
|
-
class EphemerideLunaireParisienne
|
5
|
-
# Lunar theory: Éphéméride Lunaire Parisienne
|
6
|
-
# By Jean Chapront, Michelle Chapront-Touzé
|
7
|
-
# https://en.wikipedia.org/wiki/Ephemeride_Lunaire_Parisienne
|
8
|
-
|
9
|
-
DEGREES_UNIT = 10**-6
|
10
|
-
|
11
|
-
# @return [Array] Periodic terms for the Moon's longitude and distance
|
12
|
-
def self.periodic_terms_for_moon_longitude_and_distance
|
13
|
-
[
|
14
|
-
[0, 0, 1, 0, 6288774, -20905355],
|
15
|
-
[2, 0, -1, 0, 1274027, -3699111],
|
16
|
-
[2, 0, 0, 0, 658314, -2955968],
|
17
|
-
[0, 0, 2, 0, 213618, -569925],
|
18
|
-
[0, 1, 0, 0, -185116, 48888],
|
19
|
-
[0, 0, 0, 2, -114332, -3149],
|
20
|
-
[2, 0, -2, 0, 58793, 246158],
|
21
|
-
[2, -1, -1, 0, 57066, -152138],
|
22
|
-
[2, 0, 1, 0, 53322, -170733],
|
23
|
-
[2, -1, 0, 0, 45758, -204586],
|
24
|
-
[0, 1, -1, 0, -40923, -129620],
|
25
|
-
[1, 0, 0, 0, -34720, 108743],
|
26
|
-
[0, 1, 1, 0, -30383, 104755],
|
27
|
-
[2, 0, 0, -2, 15327, 10321],
|
28
|
-
[0, 0, 1, 2, -12528, 0],
|
29
|
-
[0, 0, 1, -2, 10980, 79661],
|
30
|
-
[4, 0, -1, 0, 10675, -34782],
|
31
|
-
[0, 0, 3, 0, 10034, -23210],
|
32
|
-
[4, 0, -2, 0, 8548, -21636],
|
33
|
-
[2, 1, -1, 0, -7888, 24208],
|
34
|
-
[2, 1, 0, 0, -6766, 30824],
|
35
|
-
[1, 0, -1, 0, -5163, -8379],
|
36
|
-
[1, 1, 0, 0, 4987, -16675],
|
37
|
-
[2, -1, 1, 0, 4036, -12831],
|
38
|
-
[2, 0, 2, 0, 3994, -10445],
|
39
|
-
[4, 0, 0, 0, 3861, -11650],
|
40
|
-
[2, 0, -3, 0, 3665, 14403],
|
41
|
-
[0, 1, -2, 0, -2689, -7003],
|
42
|
-
[2, 0, -1, 2, -2602, 0],
|
43
|
-
[2, -1, -2, 0, 2390, 10056],
|
44
|
-
[1, 0, 1, 0, -2348, 6322],
|
45
|
-
[2, -2, 0, 0, 2236, -9884],
|
46
|
-
[0, 1, 2, 0, -2120, 5751],
|
47
|
-
[0, 2, 0, 0, -2069, 0],
|
48
|
-
[2, -2, -1, 0, 2048, -4950],
|
49
|
-
[2, 0, 1, -2, -1773, 4130],
|
50
|
-
[2, 0, 0, 2, -1595, 0],
|
51
|
-
[4, -1, -1, 0, 1215, -3958],
|
52
|
-
[0, 0, 2, 2, -1110, 0],
|
53
|
-
[3, 0, -1, 0, -892, 3258],
|
54
|
-
[2, 1, 1, 0, -810, 2616],
|
55
|
-
[4, -1, -2, 0, 759, -1897],
|
56
|
-
[0, 2, -1, 0, -713, -2117],
|
57
|
-
[2, 2, -1, 0, -700, 2354],
|
58
|
-
[2, 1, -2, 0, 691, 0],
|
59
|
-
[2, -1, 0, -2, 596, 0],
|
60
|
-
[4, 0, 1, 0, 549, -1423],
|
61
|
-
[0, 0, 4, 0, 537, -1117],
|
62
|
-
[4, -1, 0, 0, 520, -1571],
|
63
|
-
[1, 0, -2, 0, -487, -1739],
|
64
|
-
[2, 1, 0, -2, -399, 0],
|
65
|
-
[0, 0, 2, -2, -381, -4421],
|
66
|
-
[1, 1, 1, 0, 351, 0],
|
67
|
-
[3, 0, -2, 0, -340, 0],
|
68
|
-
[4, 0, -3, 0, 330, 0],
|
69
|
-
[2, -1, 2, 0, 327, 0],
|
70
|
-
[0, 2, 1, 0, -323, 1165],
|
71
|
-
[1, 1, -1, 0, 299, 0],
|
72
|
-
[2, 0, 3, 0, 294, 0],
|
73
|
-
[2, 0, -1, -2, 0, 8752]
|
74
|
-
]
|
75
|
-
end
|
76
|
-
|
77
|
-
# @return [Array] Periodic terms for the Moon's latitude
|
78
|
-
def self.periodic_terms_for_moon_latitude
|
79
|
-
[
|
80
|
-
[0, 0, 0, 1, 5128122],
|
81
|
-
[0, 0, 1, 1, 280602],
|
82
|
-
[0, 0, 1, -1, 277693],
|
83
|
-
[2, 0, 0, -1, 173237],
|
84
|
-
[2, 0, -1, 1, 55413],
|
85
|
-
[2, 0, -1, -1, 46271],
|
86
|
-
[2, 0, 0, 1, 32573],
|
87
|
-
[0, 0, 2, 1, 17198],
|
88
|
-
[2, 0, 1, -1, 9266],
|
89
|
-
[0, 0, 2, -1, 8822],
|
90
|
-
[2, -1, 0, -1, 8216],
|
91
|
-
[2, 0, -2, -1, 4324],
|
92
|
-
[2, 0, 1, 1, 4200],
|
93
|
-
[2, 1, 0, -1, -3359],
|
94
|
-
[2, -1, -1, 1, 2463],
|
95
|
-
[2, -1, 0, 1, 2211],
|
96
|
-
[2, -1, -1, -1, 2065],
|
97
|
-
[0, 1, -1, -1, -1870],
|
98
|
-
[4, 0, -1, -1, 1828],
|
99
|
-
[0, 1, 0, 1, -1794],
|
100
|
-
[0, 0, 0, 3, -1749],
|
101
|
-
[0, 1, -1, 1, -1565],
|
102
|
-
[1, 0, 0, 1, -1491],
|
103
|
-
[0, 1, 1, 1, -1475],
|
104
|
-
[0, 1, 1, -1, -1410],
|
105
|
-
[0, 1, 0, -1, -1344],
|
106
|
-
[1, 0, 0, -1, -1335],
|
107
|
-
[0, 0, 3, 1, 1107],
|
108
|
-
[4, 0, 0, -1, 1021],
|
109
|
-
[4, 0, -1, 1, 833],
|
110
|
-
[0, 0, 1, -3, 777],
|
111
|
-
[4, 0, -2, 1, 671],
|
112
|
-
[2, 0, 0, -3, 607],
|
113
|
-
[2, 0, 2, -1, 596],
|
114
|
-
[2, -1, 1, -1, 491],
|
115
|
-
[2, 0, -2, 1, -451],
|
116
|
-
[0, 0, 3, -1, 439],
|
117
|
-
[2, 0, 2, 1, 422],
|
118
|
-
[2, 0, -3, -1, 421],
|
119
|
-
[2, 1, -1, 1, -366],
|
120
|
-
[2, 1, 0, 1, -351],
|
121
|
-
[4, 0, 0, 1, 331],
|
122
|
-
[2, -1, 1, 1, 315],
|
123
|
-
[2, -2, 0, -1, 302],
|
124
|
-
[0, 0, 1, 3, -283],
|
125
|
-
[2, 1, 1, -1, -229],
|
126
|
-
[1, 1, 0, -1, 223],
|
127
|
-
[1, 1, 0, 1, 223],
|
128
|
-
[0, 1, -2, -1, -220],
|
129
|
-
[2, 1, -1, -1, -220],
|
130
|
-
[1, 0, 1, 1, -185],
|
131
|
-
[2, -1, -2, -1, 181],
|
132
|
-
[0, 1, 2, 1, -177],
|
133
|
-
[4, 0, -2, -1, 176],
|
134
|
-
[4, -1, -1, -1, 166],
|
135
|
-
[1, 0, 1, -1, -164],
|
136
|
-
[4, 0, 1, -1, 132],
|
137
|
-
[1, 0, -1, -1, -119],
|
138
|
-
[4, -1, 0, -1, 115],
|
139
|
-
[2, -2, 0, 1, 107]
|
140
|
-
]
|
141
|
-
end
|
142
|
-
end
|
143
|
-
end
|
data/lib/astronoby/epoch.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Astronoby
|
4
|
-
class Epoch
|
5
|
-
B1900 = 2415020.3135
|
6
|
-
J1900 = 2415020.0
|
7
|
-
B1950 = 2433282.4235
|
8
|
-
J1950 = 2433282.5
|
9
|
-
J2000 = 2451545.0
|
10
|
-
|
11
|
-
DEFAULT_EPOCH = J2000
|
12
|
-
JULIAN_DAY_NUMBER_OFFSET = 0.5
|
13
|
-
|
14
|
-
def self.from_time(time)
|
15
|
-
time.to_datetime.ajd
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.to_utc(epoch)
|
19
|
-
DateTime.jd(epoch + JULIAN_DAY_NUMBER_OFFSET).to_time.utc
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|