jplephem
Use a JPL ephemeris to predict planet positions.
Decision gist · record as of 2026-08-14
Yes, if you need raw JPL ephemeris data in Python and are comfortable managing external SPK files. The package is stable, has no known vulnerabilities, and installs with minimal friction. However, most astronomy workflows will benefit from using a higher-level library like Skyfield instead, which wraps jplephem and provides more intuitive coordinate transformations.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a JPL SPK ephemeris file (e.g., de421.bsp) downloaded separately from NASA JPL; file format and availability depend on external sources.
- Low friction: pure Python wheel with only numpy as a runtime dependency.
- Repository is actively maintained with recent commits; classifiers indicate stable production status, though the package is aging relative to its initial 2012 release.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you may use, modify, and distribute this package freely in commercial or private projects with minimal restrictions.
last release 2026-01-23 (203 days) · last repo commit 2026-02-01 · 126 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 819,201 downloads/mo, #4,977 on PyPI
Alternatives
Verify before relying
from jplephem.spk import SPK
from jplephem.calendar import compute_julian_date
kernel = SPK.open('de421.bsp')
jd = compute_julian_date(2015, 2, 8)
position = kernel[0, 4].compute(jd) # Solar System barycenter to Mars- Whether the package supports Python versions beyond 3.8 despite classifiers listing only up to 3.8.
- Current performance characteristics when working with very large ephemeris files or high-frequency queries.
- Compatibility with modern numpy versions and any breaking changes in recent releases.
What it is and what it does
jplephem is a low-level library for reading and querying binary Satellite Planet Kernel (SPK) files produced by NASA's Jet Propulsion Laboratory. It loads ephemeris data—precomputed positions and velocities of planets, moons, and other Solar System bodies—and allows you to compute their coordinates at any Julian date within the file's coverage range. The package supports three SPK data types: Chebyshev polynomial representations (Types 2 and 3) and discrete position/velocity pairs with linear interpolation (Type 9).
The library is designed for astronomers and space mission planners who need raw three-dimensional vectors in the Solar System's reference frame. It includes command-line tools to inspect ephemeris file contents, extract date ranges, and filter by target body codes. Most users working in Python astronomy will want to layer this with a higher-level package like Skyfield, which converts the raw vectors into traditional astronomical measurements such as right ascension and declination.
Use it for
- Compute heliocentric or geocentric positions of planets for mission planning or trajectory analysis.
- Extract a subset of a large ephemeris file covering only a specific date range to reduce download size.
- Inspect the contents and metadata of an SPK file from the command line without writing code.
- Build custom astronomical calculations that require raw Solar System body coordinates in kilometers.
- Fetch ephemeris data on-demand from remote JPL servers, downloading only the blocks needed for your date range.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need raw JPL ephemeris data in Python and are comfortable managing external SPK files.
The package is stable, has no known vulnerabilities, and installs with minimal friction. However, most astronomy workflows will benefit from using a higher-level library like Skyfield instead, which wraps jplephem and provides more intuitive coordinate transformations.
Install
jplephem on PyPI
Before you install
Low friction: pure Python wheel with only numpy as a runtime dependency. Repository is actively maintained with recent commits; classifiers indicate stable production status, though the package is aging relative to its initial 2012 release.
Requires a JPL SPK ephemeris file (e.g., de421.bsp) downloaded separately from NASA JPL; file format and availability depend on external sources.
License in practice
MIT license is permissive; you may use, modify, and distribute this package freely in commercial or private projects with minimal restrictions.
Quickstart
from jplephem.spk import SPK
from jplephem.calendar import compute_julian_date
kernel = SPK.open('de421.bsp')
jd = compute_julian_date(2015, 2, 8)
position = kernel[0, 4].compute(jd) # Solar System barycenter to Mars
Verify before relying
- Whether the package supports Python versions beyond 3.8 despite classifiers listing only up to 3.8.
- Current performance characteristics when working with very large ephemeris files or high-frequency queries.
- Compatibility with modern numpy versions and any breaking changes in recent releases.
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagenumpy |
| Maintenance | Aging 203 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 819,201 / month, #4,977 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 :: Science/ResearchProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Topic :: Scientific/Engineering :: Astronomy |
Evidence: jplephem-2.24-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 › “JPL ephemeris reader”
- jplephemLoads and queries JPL ephemeris files (SPK format) to compute…
- skyfield-dataProvides pre-packaged astronomical data files (ephemerides and Earth…
- 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 spiceypy · sgp4 · skyfield-data · skyfield · kerykeion · pyorbital