Skip to main content

Ephemerista Logo

PyPI - Version PyPI - Python Version coverage


Ephemerista is an open source (AGPLv3-licensed) Python library for space mission design and analysis with a focus on telecommunications and constellation design. The development of the first release of Ephemerista was funded by the European Space Agency (ESA).

Ephemerista is being maintained by the Libre Space Foundation.

Features

  • Time scale and reference frame transformations
  • Semi-analytical and numerical orbit propagation
  • Event detection
  • Spacecraft and ground asset modelling
  • Communication systems modelling and link budgets analyses
  • Constellation design and coverage analyses
  • Web-based graphical user interface available at the LSF GitLab

Requirements

System Requirements

  • Python 3.12 or higher
  • Java Runtime Environment (JRE) 21 or higher (automatically installed via jdk4py)
  • Maven (for building from source)

Python Dependencies

Core dependencies include:

  • numpy ~1.26
  • pandas ~2.1
  • scipy ~1.14
  • matplotlib 3.9.4
  • pydantic ~2.8
  • lox-space 0.1.0a23
  • orekit_jpype ~12.1.1.0
  • plotly ~5.22
  • geopandas ~1.0.1

For a complete list of dependencies, see pyproject.toml.

Quickstart

Installation

Ephemerista is distributed on PyPI and can be installed via uv.

# Create and activate a new virtual environment (Optional)
uv venv
source .venv/bin/activate # On Linux and macOS
# .\.venv\Scripts\activate.ps1 # On Windows

# Install Ephemerista
uv pip install ephemerista

Obtain Required Data

Ephemerista requires the following data at runtime:

Initialise Ephemerista

Call the ephemerista.init function before using any other Ephemerista functionality and provide the paths to the required data files.

import ephemerista

EOP_PATH = ... # e.g. finals2000A.all.csv
SPK_PATH = ... # e.g. de440s.bsp
OREKIT_DATA_PATH = ... # e.g. orekit-data-main.zip

ephemerista.init(eop_path=EOP_PATH, spk_path=SPK_PATH, orekit_data=OREKIT_DATA_PATH)

If the Orekit data package was installed via package manager the orekit_data parameter can be omitted.

Use Ephemerista

Propagate the orbit of the ISS with Ephemerista.

import ephemerista
from ephemerista.propagators.sgp4 import SGP4
from ephemerista.time import TimeDelta

# Propgate the trajectory
iss_tle = """ISS (ZARYA)
1 25544U 98067A   24187.33936543 -.00002171  00000+0 -30369-4 0  9995
2 25544  51.6384 225.3932 0010337  32.2603  75.0138 15.49573527461367"""

propagator = SGP4(tle=iss_tle)
start_time = propagator.time
end_time = start_time + TimeDelta.from_hours(6)
times = start_time.trange(end_time, step=float(TimeDelta.from_minutes(1)))
trajectory = propagator.propagate(times)

For more information, visit Ephemerista's documentation.

Examples

Example Jupyter notebooks and data files are available in the examples/ directory. If you installed Ephemerista via pip, you can download the examples from:

The examples include:

  • Interactive Jupyter notebooks demonstrating all major features
  • Pre-configured mission scenarios (lunar transfer, navigation, link budgets)
  • Sample antenna patterns and geographic areas
  • Complete workflows for visibility, coverage, and interference analysis

Development

Please refer to CONTRIBUTING.md.

License

ephemerista is distributed under the terms of the AGPLv3 license.

Metadata

Release files for ephemerista 0.1.0

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

Source distribution (sdist)

Source distribution for ephemerista 0.1.0
File Size Uploaded Provenance
ephemerista-0.1.0.tar.gz 54.0 MB Without provenance Details

Built distribution (wheel)

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

Total release size: 54.2 MB

Release files / ephemerista-0.1.0.tar.gz

Download URL ephemerista-0.1.0.tar.gz
Size 54.0 MB
Tags Source
SHA-256 checksum
How to use checksums
56632ef1a12784f6a180b9e0244a97df742e1a3ff09cd70438509e05abce0d20
BLAKE2b-256 checksum
How to use checksums
ef9d59f090ade9ab592fb638f6c97b829e6c07c51e9e2af061ddf495e67bf638
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.6.13

Release files / ephemerista-0.1.0-py3-none-any.whl

Download URL ephemerista-0.1.0-py3-none-any.whl
Size 199.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d3e6e6d49711068d543d67527c3dd0b99bf37c69d7f3ce58499737010e97798
BLAKE2b-256 checksum
How to use checksums
f30bae62926de4e236af945c62fdfd5ff06546bb25b1eb5792240b545ffb13fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.6.13

Security for ephemerista 0.1.0

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.

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