这里有一个示例脚本,使用PyEphem和Skyfield计算2016/7/23号格林尼治时间00:00太阳的倾斜度:
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"航海年历给出了当时的20deg 01.4‘。我不知道我做错了什么来造成这种差异。谢谢!
我使用Python 2.7和Skyfield 0.8。
发布于 2016-07-26 11:37:12
PyEphem给你的答案与历书完全一致,但表示为传统的小时-分钟-秒弧,而不是小时和十进制分钟。如果用弧秒表示,作为弧分钟量1.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"https://stackoverflow.com/questions/38539625
复制相似问题