Skip to main content

Documentation Status Build Status codecov PyPI - Version pypi-platforms License: GPL3 Project Status: Active – The project has reached a stable, usable state and is being actively developed. ruff-badge

jorbit logo

jorbit is a python/JAX package for simulating and fitting orbits of objects within the solar system. Built primarily in JAX, jorbit can compute exact derivatives even for models that involve complex numerical integrators, like IAS15, and acceleration functions, like Parameterized Post-Newtonian gravitation. It has several high-level convenience wrappers for dealing with standard massless minor planets, but also can enable more complex simulations through user-provided acceleration functions.

For more information, check out the documentation!

Installation

Exact installation instructions may depend on your hardware/environment, so see the installation page for more information. In general, you can install jorbit with pip:

Be aware! The first time you import jorbit, it will automatically download and cache (via the astropy caching mechanisms) about ~1 GB of files required to run its simulations, including the JPL DE400 ephemeris files. Other jorbit functions may also need to download/cache additional files, so be sure to have a good internet connection and enough disk space available.

python -m pip install -U jorbit

jorbit was built with uv, so if you want to replicate the exact development environment, use the uv.lock file. Check out the uv docs for more information.

Example Usage

Many more examples can be found in the docs, but here are two simple examples to get you started:

To create an ephemeris for a minor planet:

from astropy.time import Time
from jorbit import Particle

p = Particle.from_horizons(name="274301", time=Time("2025-01-01"))
ephem = p.ephemeris(
    times=Time(["2025-01-01", "2025-01-02", "2025-01-03"]),
    observer="Kitt Peak"
)

To identify all known minor planets nearby a certain position at a certain time:

import astropy.units as u
from astropy.coordinates import SkyCoord
from astropy.time import Time

from jorbit.mpchecker import mpchecker

mpchecker(
    coordinate=SkyCoord(ra=0 * u.deg, dec=0 * u.deg),
    time=Time("2025-01-01"),
    radius=10 * u.arcmin,
    extra_precision=True,
    observer="Palomar",
)

Contributing

If you have any trouble with the code, feel free to open an issue! We welcome open-source contributions, so if you have a feature request or bug fix, please open a pull request. For more information, see the contributing guide.

Attribution

jorbit is made freely available under the GPL License. If you use this code in your research, please cite the accompanying paper:

@ARTICLE{2025PSJ.....6..252C,
       author = {{Cassese}, Ben and {Rice}, Malena and {Lu}, Tiger},
        title = "{A High-precision, Differentiable Code for Solar System Ephemerides}",
      journal = {\psj},
     keywords = {Astronomy software, Solar system, Orbit determination, Bayesian statistics, 1855, 1528, 1175, 1900, Earth and Planetary Astrophysics, Instrumentation and Methods for Astrophysics},
         year = 2025,
        month = nov,
       volume = {6},
       number = {11},
          eid = {252},
        pages = {252},
          doi = {10.3847/PSJ/ae0a36},
archivePrefix = {arXiv},
       eprint = {2509.19549},
 primaryClass = {astro-ph.EP},
       adsurl = {https://ui.adsabs.harvard.edu/abs/2025PSJ.....6..252C},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

Metadata

Release files for jorbit 1.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jorbit 1.7.1
File Size Uploaded Provenance Actions
jorbit-1.7.1.tar.gz 36.4 MB Without provenance Details for jorbit-1.7.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for jorbit 1.7.1
File Interpreter ABI Platform Actions
jorbit-1.7.1-py3-none-any.whl Python 3 none any Details for jorbit-1.7.1-py3-none-any.whl

Total release size: 36.6 MB

Release files / jorbit-1.7.1.tar.gz

Download URL jorbit-1.7.1.tar.gz
Size 36.4 MB
Tags Source
SHA-256 checksum
How to use checksums
86a02c86cef350eb0af26b9a7cb826fd1ad3ae5180628a1d780a3074e533b13e
BLAKE2b-256 checksum
How to use checksums
be027e21eac08edecd8ad1c8c8dba5cca69a99001021b80140570a56342974c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / jorbit-1.7.1-py3-none-any.whl

Download URL jorbit-1.7.1-py3-none-any.whl
Size 213.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0159b9c212cf7bf244088a7608e2e5cde4182abdad1a385af4cdd36fe99166d0
BLAKE2b-256 checksum
How to use checksums
bc25d4bd14daa83b3213b5529a3faf7f823aa614b8fa6554173cd8c901b175af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for jorbit 1.7.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page