Как я могу заставить Skyfield согласиться с Морским альманахом склонения Солнца?

Вот пример сценария, который вычисляет склонение солнца 23.07.2016 в 00:00:00 по Гринвичу с использованием как PyEphem, так и Skyfield:

import ephem

sun1 = ephem.Sun('2016/7/23 00:00:00')
dec1 = sun1.dec

print 'PyEphem Declination:', dec1

#-------------------------------------
from skyfield.api import load

planets = load('de421.bsp')

earth = planets['earth']
sun2 = planets['sun']

ts = load.timescale()
time2 = ts.utc(2016, 7, 23)

dec2 = earth.at(time2).observe(sun2).apparent().radec()[1]

print 'Skyfield Declination:', dec2

Когда я запускаю это, я получаю:

PyEphem Declination: 20:01:24.0
Skyfield Declination: +20deg 04' 30.0"

Морской альманах дает для этого времени 20 градусов 01,4 фута. Я не уверен, что делаю неправильно, чтобы вызвать это несоответствие. Спасибо!

P.S. Я использую Python 2.7 и Skyfield 0.8.


person JoshP    schedule 23.07.2016    source источник


Ответы (1)


Ответ, который дает вам PyEphem, полностью соответствует альманаху, но выражается в традиционных часах-минутах-секундах дуги, а не в часах и десятичных минутах. Доля .4, которая является частью количества угловых минут 1.4, становится, если выражается в угловых секундах, 60 × 0,4 = 24 угловых секунды. Так:

20°1.4′ = 20°1′24″

Skyfield по умолчанию предоставляет вам координаты в постоянной системе координат GCRS, которая является обновленной заменой J2000. Но в Альманахе используется не система координат экватора и равноденствия 2000 года, а система текущего года - и фактически точный момент - каждой из данных, которые он сообщает. Чтобы попросить Skyfield выразить склонение в координатах 2016 года, присвойте ему epoch значение "date":

from skyfield.api import load

ts = load.timescale()
planets = load('de421.bsp')

earth = planets['earth']
sun = planets['sun']

t = ts.utc(2016, 7, 23)
ra, dec, distance = earth.at(t).observe(sun).apparent().radec(epoch='date')
print(dec)

Результат:

+20deg 01' 24.0"
person Brandon Rhodes    schedule 26.07.2016
comment
Спасибо. До сих пор я использовал PyEphem, но теперь, когда я могу сопоставить морской альманах со Skyfield, я начну использовать его. Спасибо за вашу работу! - person JoshP; 27.07.2016