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:
- Earth orientation parameters from the IERS: finals2000A.all.csv
- Planetary ephemerides in SPK format, e.g. de44s.bsp
- An Orekit data package: orekit-data-main.zip
- Alternatively, the Orekit data can be installed as a Python package via
pip, see here.
- Alternatively, the Orekit data can be installed as a Python package via
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:
- Browse online: GitLab examples directory
- Download all: See examples/README.md for download instructions
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ephemerista-0.1.0.tar.gz | 54.0 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.