skillfed

skyfield

Elegant astronomy for Python

skyfield v1.55 717.6K downloads/30d#5,244 on PyPI1,756
Permissive license MIT Active released

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 skyfield

uv

uv add skyfield

poetry

poetry add skyfield

Installing 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

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

Tags

planetary position calculationsatellite ephemerisastronomy coordinate computationcelestial mechanics pythonearth satellite trackingplanet position predictionastronomical observation planning
astronomyephemerisorbital-mechanics

More Astronomy packages