我正在玩pyephem和jplephem,我似乎无法弄清楚如何使用这些包及时跟踪观察者的路径(或给定lat / lon / date)。我想要做的是记录地球上提供的纬度/长度/日期相对于太阳的位置(x,y,x)。想象一下示踪剂在地球表面产生的路径w.r.t.太阳。
有没有办法在给定时间轻松获得地球表面相对于地球重心的位置?
提前致谢。
答案 0 :(得分:1)
PyEphem库建立在一个名为libastro
的天文库之上,唉,它不能提供对其基础向量的访问。 jplephem对太阳系中行星的位置一无所知。
from skyfield.api import load, Topos
# Let's consider 72 hours starting at midnight UTC on January 2.
duration_hours = 72
ts = load.timescale()
t = ts.utc(2018, 1, 2, range(duration_hours))
# Load a planetary ephemeris.
planets = load('de421.bsp')
earth, sun = planets['earth'], planets['sun']
# Print where the US Naval Observatory was each hour relative to the Sun.
usno = Topos('38.9215 N', '77.0669 W', elevation_m=92.0)
result = sun.at(t).observe(earth + usno)
for time, position_au in zip(t, result.position.au.T):
print(time.utc_jpl(), position_au)
结果行看起来像:
A.D. 2018-Jan-04 21:00:00.0000 UT [-0.24130305 0.87456403 0.37915831]
A.D. 2018-Jan-04 22:00:00.0000 UT [-0.2420075 0.87440863 0.37908723]
A.D. 2018-Jan-04 23:00:00.0000 UT [-0.24271409 0.87425296 0.37901595]
这是Skyfield的主页: