astronoby 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c65785b0c459ba8add86fcceb906205caa79a80f47b7f33c0b7ee008173fd14
4
- data.tar.gz: 66478c6055d84e34f560490f225ae3e3d5020972e729b37e8f6f0a6566ae173e
3
+ metadata.gz: 43ef390a6ab6a498edbf148b2af44c906daf73ff9ba61b5aafeadd828fb550e4
4
+ data.tar.gz: b2cf0743676aa49f95f24c62b3d5d759553014bc52114260a71ecedfb9e6c1cb
5
5
  SHA512:
6
- metadata.gz: 4bae651aabaec62d258a768952eb3cd830d99639acf33f02b9f0ab6fd2eeff8215d9a30087a5818736b777c1a86344918f98f33f987f65829a8712cb20477c55
7
- data.tar.gz: 401659e2d49599246ad2ea1a455a6d60b9797c49e730cacf8a614f4235929263c9318644373a96ea496969fcb814cc93144a8dbfffd0a0318e1628500bb1c8e8
6
+ metadata.gz: 052bfebf4ddaf6ef3f24883fec090a831d38a9e4124dd5f561d6b1dd7074b6385502396edddd5496ab6066ff93acab4f220ec3aaa244ad0638c0b65fbaace55f
7
+ data.tar.gz: fe37ac2714328893b068ba958e37a3b057a76ddfa1b299a35f22be005687d3168d20e98ebe571db519bd6cf69227cc0f0dc4c0889dd9ca5bb9d1abb2b1ee550d
data/CHANGELOG.md CHANGED
@@ -1,5 +1,65 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.0 - 2024-06-11
4
+
5
+ _If you are upgrading: please see [UPGRADING.md]._
6
+
7
+ [UPGRADING.md]: https://github.com/rhannequin/astronoby/blob/main/UPGRADING.md
8
+
9
+ ### Features
10
+
11
+ * Make `Sun#mean_anomaly` public ([#72])
12
+ * Moon ecliptic coordinates ([#73])
13
+ * Moon apparent geocentric equatorial coordinates ([#75])
14
+ * Moon horizontal coordinates ([#76])
15
+ * Assume Moon's equatorial coordinates are geocentric ([#77])
16
+ * Use observer object for geocentric parallax ([#79])
17
+ * Moon's phase angle and illuminated fraction ([#80])
18
+ * Monthly Moon phases ([#82])
19
+ * Rationalize negative degree angles ([#83])
20
+ * Factorize Moon phases periodic terms ([#85])
21
+ * Introduce observation events for Moon ([#86])
22
+
23
+ [#72]: https://github.com/rhannequin/astronoby/pull/72
24
+ [#73]: https://github.com/rhannequin/astronoby/pull/73
25
+ [#75]: https://github.com/rhannequin/astronoby/pull/75
26
+ [#76]: https://github.com/rhannequin/astronoby/pull/76
27
+ [#77]: https://github.com/rhannequin/astronoby/pull/77
28
+ [#79]: https://github.com/rhannequin/astronoby/pull/79
29
+ [#80]: https://github.com/rhannequin/astronoby/pull/80
30
+ [#82]: https://github.com/rhannequin/astronoby/pull/82
31
+ [#83]: https://github.com/rhannequin/astronoby/pull/83
32
+ [#85]: https://github.com/rhannequin/astronoby/pull/85
33
+ [#86]: https://github.com/rhannequin/astronoby/pull/86
34
+
35
+ ### Improvements
36
+
37
+ * Create FUNDING.yml ([#70])
38
+ * Bump standard from 1.35.1 to 1.36.0 ([#71])
39
+ * Bump rexml from 3.2.6 to 3.2.8 ([#74])
40
+ * Expand the number of tested Ruby versions ([#84])
41
+ * Add Ruby 3.1.6 and 3.3.2 coverage ([#88])
42
+ * Improve and update documentation ([#87])
43
+ * Update UPGRADING.md ([#89])
44
+
45
+ [#70]: https://github.com/rhannequin/astronoby/pull/70
46
+ [#71]: https://github.com/rhannequin/astronoby/pull/71
47
+ [#74]: https://github.com/rhannequin/astronoby/pull/74
48
+ [#84]: https://github.com/rhannequin/astronoby/pull/84
49
+ [#88]: https://github.com/rhannequin/astronoby/pull/88
50
+ [#87]: https://github.com/rhannequin/astronoby/pull/87
51
+ [#89]: https://github.com/rhannequin/astronoby/pull/89
52
+
53
+ ### Backward-incompatible changes
54
+
55
+ * Use Observer in Horizontal coordinates ([#69])
56
+ * Introduce `Astronoby::Distance` value object ([#78])
57
+
58
+ [#69]: https://github.com/rhannequin/astronoby/pull/69
59
+ [#78]: https://github.com/rhannequin/astronoby/pull/78
60
+
61
+ **Full Changelog**: https://github.com/rhannequin/astronoby/compare/v0.4.0...v0.5.0
62
+
3
63
  ## 0.4.0 - 2024-04-29
4
64
 
5
65
  _If you are upgrading: please see [UPGRADING.md]._
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- astronoby (0.4.0)
4
+ astronoby (0.5.0)
5
5
  matrix (~> 0.4.2)
6
6
  rake (~> 13.0)
7
7
  rspec (~> 3.0)
@@ -11,19 +11,20 @@ GEM
11
11
  specs:
12
12
  ast (2.4.2)
13
13
  diff-lcs (1.5.1)
14
- json (2.7.1)
14
+ json (2.7.2)
15
15
  language_server-protocol (3.17.0.3)
16
16
  lint_roller (1.1.0)
17
17
  matrix (0.4.2)
18
18
  parallel (1.24.0)
19
- parser (3.3.0.5)
19
+ parser (3.3.1.0)
20
20
  ast (~> 2.4.1)
21
21
  racc
22
22
  racc (1.7.3)
23
23
  rainbow (3.1.1)
24
24
  rake (13.2.1)
25
- regexp_parser (2.9.0)
26
- rexml (3.2.6)
25
+ regexp_parser (2.9.1)
26
+ rexml (3.2.8)
27
+ strscan (>= 3.0.9)
27
28
  rspec (3.13.0)
28
29
  rspec-core (~> 3.13.0)
29
30
  rspec-expectations (~> 3.13.0)
@@ -37,7 +38,7 @@ GEM
37
38
  diff-lcs (>= 1.2.0, < 2.0)
38
39
  rspec-support (~> 3.13.0)
39
40
  rspec-support (3.13.1)
40
- rubocop (1.62.1)
41
+ rubocop (1.63.5)
41
42
  json (~> 2.3)
42
43
  language_server-protocol (>= 3.17.0)
43
44
  parallel (~> 1.10)
@@ -48,24 +49,25 @@ GEM
48
49
  rubocop-ast (>= 1.31.1, < 2.0)
49
50
  ruby-progressbar (~> 1.7)
50
51
  unicode-display_width (>= 2.4.0, < 3.0)
51
- rubocop-ast (1.31.2)
52
- parser (>= 3.3.0.4)
53
- rubocop-performance (1.20.2)
52
+ rubocop-ast (1.31.3)
53
+ parser (>= 3.3.1.0)
54
+ rubocop-performance (1.21.0)
54
55
  rubocop (>= 1.48.1, < 2.0)
55
- rubocop-ast (>= 1.30.0, < 2.0)
56
+ rubocop-ast (>= 1.31.1, < 2.0)
56
57
  ruby-progressbar (1.13.0)
57
- standard (1.35.1)
58
+ standard (1.36.0)
58
59
  language_server-protocol (~> 3.17.0.2)
59
60
  lint_roller (~> 1.0)
60
- rubocop (~> 1.62.0)
61
+ rubocop (~> 1.63.0)
61
62
  standard-custom (~> 1.0.0)
62
- standard-performance (~> 1.3)
63
+ standard-performance (~> 1.4)
63
64
  standard-custom (1.0.2)
64
65
  lint_roller (~> 1.0)
65
66
  rubocop (~> 1.50)
66
- standard-performance (1.3.1)
67
+ standard-performance (1.4.0)
67
68
  lint_roller (~> 1.1)
68
- rubocop-performance (~> 1.20.2)
69
+ rubocop-performance (~> 1.21.0)
70
+ strscan (3.1.0)
69
71
  unicode-display_width (2.5.0)
70
72
 
71
73
  PLATFORMS
data/README.md CHANGED
@@ -11,6 +11,27 @@ The main reference is:
11
11
  - _Practical Astronomy with your Calculator or Spreadsheet_ by Peter
12
12
  Duffet-Smith and Jonathan Zwart
13
13
 
14
+ ## Content
15
+ - [Installation](#installation)
16
+ - [Usage](#usage)
17
+ - [Angle manipulation](#angle-manipulation)
18
+ - [Coordinates conversion](#coordinates-conversion)
19
+ - [Sun](#sun)
20
+ - [Sun's location in the sky](#suns-location-in-the-sky)
21
+ - [Sunrise and sunset times and azimuths](#sunrise-and-sunset-times-and-azimuths)
22
+ - [Twilight times](#twilight-times)
23
+ - [Solstice and Equinox times](#solstice-and-equinox-times)
24
+ - [Moon](#moon)
25
+ - [Moon's location in the sky](#moons-location-in-the-sky)
26
+ - [Moon's current attributes](#moons-current-attributes)
27
+ - [Moon's phases of the month](#moons-phases-of-the-month)
28
+ - [Moonrise and moonset times and azimuths](#moonrise-and-moonset-times-and-azimuths)
29
+ - [Precision](#precision)
30
+ - [Development](#development)
31
+ - [Contributing](#contributing)
32
+ - [License](#license)
33
+ - [Code of Conduct](#code-of-conduct)
34
+
14
35
  ## Installation
15
36
 
16
37
  Install the gem and add to the application's Gemfile by executing:
@@ -46,9 +67,35 @@ angle.cos
46
67
  # => 1.0
47
68
  ```
48
69
 
70
+ ### Distance manipulation
71
+
72
+ ```rb
73
+ distance1 = Astronoby::Distance.from_astronomical_units(1)
74
+ distance2 = Astronoby::Distance.from_kilometers(149_597_870.7)
75
+ distance3 = Astronoby::Distance.from_meters(300)
76
+
77
+ distance1 == distance2
78
+ # => true
79
+
80
+ distance1 > distance3
81
+ # => true
82
+
83
+ distance =
84
+ Astronoby::Distance.from_m(300) +
85
+ Astronoby::Distance.from_km(3)
86
+
87
+ distance.km
88
+ # => 3.3
89
+ ```
90
+
49
91
  ### Coordinates conversion
50
92
 
51
93
  ```rb
94
+ observer = Astronoby::Observer.new(
95
+ latitude: Astronoby::Angle.from_degrees(38),
96
+ longitude: Astronoby::Angle.from_degrees(-78)
97
+ )
98
+
52
99
  equatorial = Astronoby::Coordinates::Equatorial.new(
53
100
  right_ascension: Astronoby::Angle.from_hms(17, 43, 54),
54
101
  declination: Astronoby::Angle.from_dms(-22, 10, 0)
@@ -56,8 +103,7 @@ equatorial = Astronoby::Coordinates::Equatorial.new(
56
103
 
57
104
  horizontal = equatorial.to_horizontal(
58
105
  time: Time.new(2016, 1, 21, 21, 30, 0, "-05:00"),
59
- latitude: Astronoby::Angle.from_degrees(38),
60
- longitude: Astronoby::Angle.from_degrees(-78)
106
+ observer: observer
61
107
  )
62
108
 
63
109
  horizontal.altitude.str(:dms)
@@ -67,19 +113,22 @@ horizontal.azimuth.str(:dms)
67
113
  # => "+341° 33′ 21.587″"
68
114
  ```
69
115
 
70
- ### Sun's location in the sky
116
+ ### Sun
117
+
118
+ #### Sun's location in the sky
71
119
 
72
120
  ```rb
73
121
  time = Time.utc(2023, 2, 17, 11, 0, 0)
74
122
 
75
- latitude = Astronoby::Angle.from_degrees(48.8566)
76
- longitude = Astronoby::Angle.from_degrees(2.3522)
123
+ observer = Astronoby::Observer.new(
124
+ latitude: Astronoby::Angle.from_degrees(48.8566),
125
+ longitude: Astronoby::Angle.from_degrees(2.3522)
126
+ )
77
127
 
78
128
  sun = Astronoby::Sun.new(time: time)
79
129
 
80
130
  horizontal_coordinates = sun.horizontal_coordinates(
81
- latitude: latitude,
82
- longitude: longitude
131
+ observer: observer
83
132
  )
84
133
 
85
134
  horizontal_coordinates.altitude.degrees
@@ -89,7 +138,7 @@ horizontal_coordinates.altitude.str(:dms)
89
138
  # => "+27° 30′ 0.2966″"
90
139
  ```
91
140
 
92
- ### Sunrise and sunset times and azimuths
141
+ #### Sunrise and sunset times and azimuths
93
142
 
94
143
  ```rb
95
144
  time = Time.new(2015, 2, 5)
@@ -104,22 +153,22 @@ observation_events.rising_time
104
153
  # => 2015-02-05 12:12:59 UTC
105
154
 
106
155
  observation_events.rising_azimuth.str(:dms)
107
- # => "+109° 4643.145″"
156
+ # => "+109° 2934.3674″"
108
157
 
109
158
  observation_events.transit_time
110
159
  # => 2015-02-05 17:25:59 UTC
111
160
 
112
161
  observation_events.transit_altitude.str(:dms)
113
- # => "+36° 8′ 15.7638″"
162
+ # => "+36° 8′ 15.8197″"
114
163
 
115
164
  observation_events.setting_time
116
165
  # => 2015-02-05 22:39:27 UTC
117
166
 
118
167
  observation_events.setting_azimuth.str(:dms)
119
- # => "+250° 2333.614″"
168
+ # => "+250° 4042.8609″"
120
169
  ```
121
170
 
122
- ### Twilight times
171
+ #### Twilight times
123
172
 
124
173
  ```rb
125
174
  time = Time.new(2024, 1, 1)
@@ -161,6 +210,92 @@ Astronoby::EquinoxSolstice.june_solstice(year)
161
210
  # => 2024-06-20 20:50:18 UTC
162
211
  ```
163
212
 
213
+ ### Moon
214
+
215
+ #### Moon's location in the sky
216
+
217
+ ```rb
218
+ time = Time.utc(2023, 2, 17, 11, 0, 0)
219
+
220
+ observer = Astronoby::Observer.new(
221
+ latitude: Astronoby::Angle.from_degrees(48.8566),
222
+ longitude: Astronoby::Angle.from_degrees(2.3522)
223
+ )
224
+
225
+ moon = Astronoby::Moon.new(time: time)
226
+
227
+ horizontal_coordinates = moon.horizontal_coordinates(
228
+ observer: observer
229
+ )
230
+
231
+ horizontal_coordinates.altitude.degrees
232
+ # => 10.277834691708053
233
+
234
+ horizontal_coordinates.altitude.str(:dms)
235
+ # => "+10° 16′ 40.2048″"
236
+ ```
237
+
238
+ #### Moon's current attributes
239
+
240
+ ```rb
241
+ time = Time.utc(2024, 6, 1, 10, 0, 0)
242
+ moon = Astronoby::Moon.new(time: time)
243
+
244
+ moon.illuminated_fraction.round(2)
245
+ # => 0.31
246
+
247
+ moon.distance.km.round
248
+ # => 368409
249
+
250
+ moon.phase_angle.degrees.round
251
+ # => 112
252
+ ```
253
+
254
+ #### Moon's phases of the month
255
+
256
+ ```rb
257
+ june_phases = Astronoby::Moon.monthly_phase_events(
258
+ year: 2024,
259
+ month: 6
260
+ )
261
+
262
+ june_phases.each { puts "#{_1.phase}: #{_1.time}" }
263
+ # new_moon: 2024-06-06 12:37:41 UTC
264
+ # first_quarter: 2024-06-14 05:18:28 UTC
265
+ # full_moon: 2024-06-22 01:07:53 UTC
266
+ # last_quarter: 2024-06-28 21:53:25 UTC
267
+ ```
268
+
269
+ #### Moonrise and moonset times and azimuths
270
+
271
+ ```rb
272
+ time = Time.utc(2024, 6, 1, 10, 0, 0)
273
+ observer = Astronoby::Observer.new(
274
+ latitude: Astronoby::Angle.from_degrees(48.8566),
275
+ longitude: Astronoby::Angle.from_degrees(2.3522)
276
+ )
277
+ moon = Astronoby::Moon.new(time: time)
278
+ observation_events = moon.observation_events(observer: observer)
279
+
280
+ observation_events.rising_time
281
+ # => 2024-06-01 00:35:36 UTC
282
+
283
+ observation_events.rising_azimuth.str(:dms)
284
+ # => "+93° 7′ 43.2347″"
285
+
286
+ observation_events.transit_time
287
+ # => 2024-06-01 02:42:43 UTC
288
+
289
+ observation_events.transit_altitude.str(:dms)
290
+ # => "+26° 59′ 30.9915″"
291
+
292
+ observation_events.setting_time
293
+ # => 2024-06-01 16:02:26 UTC
294
+
295
+ observation_events.setting_azimuth.str(:dms)
296
+ # => "+273° 29′ 30.0954″"
297
+ ```
298
+
164
299
  ## Precision
165
300
 
166
301
  The current precision for the Sun's apparent location in the sky, compared
data/UPGRADING.md CHANGED
@@ -7,6 +7,54 @@ changes to it as long as a major version has not been released.
7
7
  If you are already using Astronoby and wish to follow the changes to its
8
8
  public API, please read the upgrading notes for each release.
9
9
 
10
+ ## Upgrading from 0.4.0 to 0.5.0
11
+
12
+ ### `Sun#horizontal_coordinates` method signature changed ([#69])
13
+
14
+ `Astronoby::Sun#horizontal_coordinates` expects an `observer`
15
+ (`Astronoby::Observer`) key argument instead of `latitude` and `longitude`
16
+ angles.
17
+
18
+ [#69]: https://github.com/rhannequin/astronoby/pull/69
19
+
20
+ ### `Sun#distance` now returns an `Astronoby::Distance` ([#78])
21
+
22
+ [#78]: https://github.com/rhannequin/astronoby/pull/78
23
+
24
+ ### `Coordinates::Equatorial#to_horizontal` method signature changed ([#69])
25
+
26
+ `Astronoby::Coordinates::Equatorial#to_horizontal` expects an `observer`
27
+ (`Astronoby::Observer`) key argument instead of `latitude` and `longitude`
28
+ angles.
29
+
30
+ ### `Coordinates::Horizontal` constructor and attributes changed ([#69])
31
+
32
+ `Astronoby::Coordinates::Horizontal::new` now expects an `observer`
33
+ (`Astronoby::Observer`) key argument instead of `latitude` and `longitude`,
34
+ and therefore now exposes `#observer` instead of `#latitude` and `#longitude`.
35
+
36
+ ### `GeocentricParallax#angle` method signature changed ([#78])
37
+
38
+ `Astronoby::GeocentricParallax#angle`'s key argument `distance` is now
39
+ expected to be an instance of `Astronoby::Distance` instead of a `Numeric`.
40
+
41
+ ### `GeocentricParallax#for_equatorial_coordinates` method signature changed ([#69])
42
+
43
+ `Astronoby::GeocentricParallax#for_equatorial_coordinates` expects an
44
+ `observer` (`Astronoby::Observer`) key argument instead of `latitude`,
45
+ `longitude` and `elevation`.
46
+
47
+ ### `Observer` constructor changed ([#78])
48
+
49
+ `Astronoby::Observer::new`'s key argument `distance` is now expected to be
50
+ an instance of `Astronoby::Distance` instead of a `Numeric`.
51
+
52
+ ### `Refraction` methods signatures changed ([#69])
53
+
54
+ `Astronoby::Refraction`'s constructor doesn't accept the `observer` key
55
+ argument anymore. Therefore, the methods `::angle` and
56
+ `::correct_horizontal_coordinates` neither.
57
+
10
58
  ## Upgrading from 0.3.0 to 0.4.0
11
59
 
12
60
  ### `Body` class removed ([#50])
@@ -0,0 +1,143 @@
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