Skip to main content

Space mission analysis for telecommunications and satellite constellations

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ephemerista-0.1.0a16.tar.gz (53.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ephemerista-0.1.0a16-py3-none-any.whl (199.2 kB view details)

Uploaded Python 3

File details

Details for the file ephemerista-0.1.0a16.tar.gz.

File metadata

  • Download URL: ephemerista-0.1.0a16.tar.gz
  • Upload date:
  • Size: 53.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.6.13

File hashes

Hashes for ephemerista-0.1.0a16.tar.gz
Algorithm Hash digest
SHA256 d9e54b08514e9b7a86482aca67d748734366678afafec59c4e1237435ee79aa9
MD5 214226ce46b2d0ff41ad0ed116208fbe
BLAKE2b-256 9e6851fe97590736ce35b9f16f74d6b40c1bfc646539bcb7f8e744d856dfd0af

See more details on using hashes here.

File details

Details for the file ephemerista-0.1.0a16-py3-none-any.whl.

File metadata

File hashes

Hashes for ephemerista-0.1.0a16-py3-none-any.whl
Algorithm Hash digest
SHA256 527b6cbae2452a15dd8662b3adbabcbb251dbfe1457ceab8fbdf5c04d3e8413b
MD5 32d5d43244ae77f68fccae56be0203c1
BLAKE2b-256 d7d618f8e16e8a0e58891453d22edd2193093b38f00042c503e4c4ee16a26576

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page