skyfield
Elegant astronomy for Python
What it is and what it does
Skyfield is a pure-Python astronomy library that calculates precise positions for planets and Earth satellites. It wraps established ephemeris data (via jplephem) and orbital mechanics (via sgp4) to deliver research-grade coordinate predictions without requiring compiled Fortran or C libraries—only NumPy for numerical computation.
The package is designed for developers and researchers who need to compute where celestial objects will be at specific times. You load ephemeris data once, create a timescale, then query positions for any celestial body at any moment. The result is returned in standard astronomical coordinates (right ascension, declination, distance) or other formats. It handles both long-term planetary motion and near-Earth satellite tracking.
Use it for:
- Plan astronomical observations by computing where planets or bright stars will appear at a given date and location.
- Track Earth satellites (ISS, weather satellites) to predict visibility windows or collision risks.
- Generate ephemerides for mission planning, ground station scheduling, or telescope pointing.
- Validate or cross-check celestial coordinates in scientific research or planetarium software.
- Build educational tools that visualize planetary motion or teach orbital mechanics.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Skyfield computes high-precision positions for planets and Earth satellites using pure Python, without requiring compiled astronomy libraries beyond NumPy.
Yes. Skyfield is actively maintained, has no known vulnerabilities, installs with minimal friction, and is licensed permissively. It is the right choice if you need accurate planetary or satellite positions in Python without external compiled dependencies beyond NumPy. The 1756 stars and top-15000 popularity tier confirm it is a mature, well-adopted solution in its domain.
Install
skyfield on PyPI
pip
pip install skyfielduv
uv add skyfieldpoetry
poetry add skyfieldInstalling skyfield
Before you install
Installation is straightforward with low friction; the package has a single binary dependency (NumPy) and is distributed as a wheel. The project is actively maintained with a recent release and 1756 repository stars, indicating stable, ongoing development.
License in practice
MIT license is permissive and imposes no significant restrictions; you can use, modify, and distribute Skyfield in commercial or proprietary projects with minimal obligations.
Quickstart
pip install skyfield
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()
Requires NumPy; ephemeris data files (e.g., de421.bsp) must be downloaded on first use via the load() function.
Verify before relying
- Whether offline operation is possible after initial ephemeris download, or if periodic data refresh is required.
- Accuracy guarantees or error bounds for position calculations across different time ranges and celestial objects.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — certifi, jplephem, numpy, sgp4 |
| Maintenance | actively maintained — 7 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 717,589/month — #5,244 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: skyfield-1.55-py3-none-any.whl
Tags
More Astronomy packages
Albumentations applies image transformations to…
permissive · top 5,000 on PyPI
convertdateConverts dates between the Gregorian calendar…
permissive · top 5,000 on PyPI
jdcalConverts between Julian dates and Gregorian or…
permissive · top 5,000 on PyPI
pyerfaPyERFA wraps the ERFA C library (Essential…
permissive · top 5,000 on PyPI
PyMeeusPyMeeus implements astronomical algorithms from…
copyleft · top 5,000 on PyPI
ephemPyEphem computes high-precision positions of…
permissive · top 5,000 on PyPI
sgp4Computes satellite positions in Earth orbit…
permissive · top 5,000 on PyPI
skyfield-dataProvides pre-packaged astronomical data files…
permissive · top 15,000 on PyPI
jplephemLoads and queries JPL ephemeris files (SPK…
permissive · top 5,000 on PyPI
reprojectReproject astronomical images between different…
permissive · top 15,000 on PyPI
pyorbitalPyorbital computes orbital parameters from TLE…
permissive · top 15,000 on PyPI
earthaccessearthaccess searches, downloads, and streams…
permissive · top 15,000 on PyPI
astropy-healpixProvides HEALPix spherical pixelization for…
permissive · top 15,000 on PyPI
python-cmrProvides a Python wrapper around NASA's Common…
permissive · top 15,000 on PyPI