skyfield
Elegant astronomy for Python
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires NumPy; ephemeris data files (e.g., de421.bsp) must be downloaded on first use via the load() function.
- 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 · maintenance · safety
MIT (permissive) — MIT license is permissive and imposes no significant restrictions; you can use, modify, and distribute Skyfield in commercial or proprietary projects with minimal obligations.
last release 2026-08-07 (7 days) · last repo commit 2026-08-07 · 1,756 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 717,589 downloads/mo, #5,244 on PyPI
Alternatives
Verify before relying
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()- 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.
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 on it.
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
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.
Requires NumPy; ephemeris data files (e.g., de421.bsp) must be downloaded on first use via the load() function.
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()
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 packagescertifijplephemnumpysgp4 |
| 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 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: EducationIntended Audience :: Science/ResearchLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 2.7Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Scientific/Engineering :: Astronomy |
Evidence: skyfield-1.55-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “planetary position calculation”
- skyfieldSkyfield computes high-precision positions for planets and Earth…
- PyMeeusPyMeeus implements astronomical algorithms from Jean Meeus's…
- spiceypySpiceyPy wraps the NAIF C SPICE Toolkit to compute Solar System…
Give your agent the search over MCP, or paste the wish link into any chat.
More Astronomy packages
Albumentations applies image transformations to training data, supporting classification, segmentation, object detection, and pose estimation with a unified API for images, masks, bounding boxes, and keypoints.
Install it if you need a unified, production-grade augmentation API for computer vision tasks.
Converts dates between the Gregorian calendar and 15+ alternative calendar systems including Hebrew, Islamic, Julian, French Republican, Mayan, and others, plus calculates holidays across North American, Jewish, and other traditions.
Install only if you actually need multi-calendar support; the single pymeeus dependency is manageable.
Converts between Julian dates and Gregorian or Julian calendar dates, storing Julian dates as pairs of floating-point numbers for maximum precision.
However, be aware that it will not receive bug fixes or updates—verify that its behavior matches your requirements before committing to it in a production system.
PyERFA wraps the ERFA C library (Essential Routines for Fundamental Astronomy) as NumPy universal functions, exposing key astronomy algorithms for scalar or array inputs.
Install it if you need fundamental astronomy calculations or if another package depends on it.
PyMeeus implements astronomical algorithms from Jean Meeus's classical reference, providing Python classes for computing celestial positions, lunar phases, planetary phenomena, and time conversions with minimal dependencies.
However, verify Python version compatibility first and consider whether other libraries better suit production-grade use cases.
PyEphem computes high-precision positions of planets, moons, stars, comets, and asteroids in the sky for any observer location and date, using C-based numeric routines from the XEphem astronomy application.
See also sgp4 · skyfield-data · jplephem · reproject · pyorbital · earthaccess · astropy-healpix · python-cmr