Module: Sekki24::Solar::Precise

Defined in:
lib/sekki24/solar/precise.rb

Constant Summary collapse

J2000 =
2_451_545.0
JULIAN_MILLENNIUM =
365_250.0
JULIAN_CENTURY =
36_525.0
RADIANS_TO_DEGREES =
180.0 / Math::PI
ABERRATION_ARCSECONDS =
20.4898
FK5_LONGITUDE_CORRECTION =
-0.09033 / 3600.0

Class Method Summary collapse

Class Method Details

.longitude(jde) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/sekki24/solar/precise.rb', line 18

def longitude(jde)
  jde = Float(jde)
  millennia = (jde - J2000) / JULIAN_MILLENNIUM
  earth_longitude = evaluate(VSOP87Earth::LONGITUDE, millennia) * RADIANS_TO_DEGREES
  radius = evaluate(VSOP87Earth::RADIUS, millennia)
  geometric_longitude = earth_longitude + 180.0 + FK5_LONGITUDE_CORRECTION
  apparent_longitude = geometric_longitude + Nutation.longitude(jde) -
    (ABERRATION_ARCSECONDS / (3600.0 * radius))

  apparent_longitude % 360.0
end