Module: Sekki24::Nutation

Defined in:
lib/sekki24/nutation.rb

Constant Summary collapse

J2000 =
2_451_545.0
JULIAN_CENTURY =
36_525.0
DEGREES_TO_RADIANS =
Math::PI / 180.0

Class Method Summary collapse

Class Method Details

.longitude(jde) ⇒ Object

Four dominant IAU 1980 terms, returned in degrees.



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/sekki24/nutation.rb', line 12

def longitude(jde)
  centuries = (Float(jde) - J2000) / JULIAN_CENTURY
  sun_mean_longitude = 280.4665 + (36_000.7698 * centuries)
  moon_mean_longitude = 218.3165 + (481_267.8813 * centuries)
  ascending_node = 125.04452 - (1934.136261 * centuries) +
    (0.0020708 * centuries**2) + (centuries**3 / 450_000.0)

  arcseconds = (-17.20 * sin_degrees(ascending_node)) -
    (1.32 * sin_degrees(2.0 * sun_mean_longitude)) -
    (0.23 * sin_degrees(2.0 * moon_mean_longitude)) +
    (0.21 * sin_degrees(2.0 * ascending_node))
  arcseconds / 3600.0
end