Space mission analysis for telecommunications and satellite constellations
Project description
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 pip.
# Create new virtual environment
python -m venv .venv
source .venv/bin/activate
# Install Ephemerista
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-master.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-master.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.
Development
Please refer to CONTRIBUTING.md.
License
ephemerista is distributed under the terms of the AGPLv3 license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ephemerista-0.1.0a10.tar.gz.
File metadata
- Download URL: ephemerista-0.1.0a10.tar.gz
- Upload date:
- Size: 53.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.6.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f7c276bda17bcdcd2de149b2591378239b58518b224fccabd36281a14bfa324
|
|
| MD5 |
f69d0d3b32d906c496228ef4207d760b
|
|
| BLAKE2b-256 |
af11b1050fc03d8629da653574f50dc7a7ad6186ff5318ec58f2d9d4d23f9e3d
|
File details
Details for the file ephemerista-0.1.0a10-py3-none-any.whl.
File metadata
- Download URL: ephemerista-0.1.0a10-py3-none-any.whl
- Upload date:
- Size: 198.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.6.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fab4c135e44b446a7d1af40440b85e0933fd420acaafa0928b419f5f40247b16
|
|
| MD5 |
839c11f21601f0d409376ff654f70bef
|
|
| BLAKE2b-256 |
498092c0a867015ec8f6cfb8342746a9b8171a97c1e3c3340fe806d5394dee70
|