Skyfield is a pure-Python astronomy package that is compatible with both Python 2 and 3 and makes it easy to generate high precision research-grade positions for planets and Earth satellites.
from skyfield.api import load
planets = load('de421.bsp')
earth, mars = planets['earth'], planets['mars']
ts = load.timescale()
t = ts.now()
position = earth.at(t).observe(mars)
ra, dec, distance = position.radec()
print(ra)
print(dec)
print(distance)
The result:
10h 47m 56.24s +09deg 03' 23.1" 2.33251 au
Skyfield’s only binary dependency is NumPy. Once that is available, Skyfield can usually be installed with:
pip install skyfield
Here are the essential project links:
- Home page and documentation.
- Installing Skyfield.
- Contributing to Skyfield.
- Skyfield package on the Python Package Index.
- Issue tracker on GitHub.