Библиотека PyEphem построена поверх астрономической библиотеки под названием libastro
, которая, увы, не предоставляет доступа к лежащим в ее основе векторам. А jplephem ничего не знает о положении планет в Солнечной системе.
Но астрономическая библиотека Skyfield, для которой был написан jplephem, делает и то, и другое. Вот как вы могли бы узнать положение x, y, z местоположения Земли относительно Солнца:
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:
http://rhodesmill.org/skyfield/
person
Brandon Rhodes
schedule
03.01.2018