Satelles
Modern, type-safe, zero-dependency python library for TLE, OMM et al. handling and orbit propagation to accurately locate your satellites in the sky.
Installation
We recommend using uv to manage your Python environments.
To install satelles into your uv environment, run:
uv add satelles
Alternatively, you can install satelles using your preferred environment or package manager of choice, e.g., poetry, conda, or pip:
pip install satelles
poetry add satelles
conda install satelles
Usage
from datetime import datetime, timezone
from satelles import TLE
issTLE: str = """
1 25544U 98067A 20062.59097222 .00016717 00000-0 10270-3 0 9006
2 25544 51.6442 147.1064 0004607 95.6506 329.8285 15.49249062 2423
"""
satellite = TLE(tle_string=issTLE).as_satellite()
satellite.at(when=datetime(2021, 5, 15, 0, 0, 0, tzinfo=timezone.utc))
# Get the Earth Centric Inertial (ECI) coordinate of the satellite at the given time:
eci = satellite.eci_coordinate
# Get the Equatorial Coordinate of the satellite at the given time:
equatorial = satellite.equatorial_coordinate
...
As the API is fully typed, you can use your IDE's autocompletion to see all the available methods and properties.
We have also provided further usage examples in the examples directory.
Milestones
- Type-safe modern 3.6+ Python
- Fully unit tested
- Simpler API using Pydantic base models for validation
- Zero-external dependencies (pure Python 3.6+ with no external C/C++ dependencies)
- Example API usage
- Fully supported Two-Line Element (TLE) parsing and operations
- Fully supported Orbital Mean Elements Message (OMM) parsing and operations
- Fully supported TLE to OMM conversion
- Fully supported laser ranging formats (e.g., CPF and CRD).
- Fully supported Earth Centred-Earth Fixed (ECEF) to East-North-Up (ENU) conversion
- Fully supported Earth Centric Inertial (ECI) to Equatorial Coordinate System (ECS) conversion
- Fully supported Earth Centric Inertial (ECI) to Topocentric Coordinate System (TCS) conversion
- Fully supported SPG4-XP propagation from TLE or OMM
- Fully supported symplectic Verlet numerical propagation
- Fully supported Runge-Kutta 4th order numerical propagation
- Modified Julian Date utilities
License
This project is licensed under the terms of the MIT license. See the LICENSE file for details.
Metadata
Release files for satelles 0.32.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 | |
|---|---|---|---|
| satelles-0.32.0.tar.gz | 105.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| satelles-0.32.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 154.9 kB
Release files / satelles-0.32.0.tar.gz
| Download URL | satelles-0.32.0.tar.gz |
|---|---|
| Size | 105.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6174e15a4c6ecc17c612394b5cd138f75d5764707194bb4cc91b1cbff36fa475
|
|
BLAKE2b-256 checksum How to use checksums |
6da179663c0b4243d71a656b143ef239dfe7abcf85f6eb3dbb995df02f4b0e9e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.
Transparency logRelease files / satelles-0.32.0-py3-none-any.whl
| Download URL | satelles-0.32.0-py3-none-any.whl |
|---|---|
| Size | 49.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8985215a086a8a840316a0c9334bf1aa732f297abe7f2173c1c359c5a1e96a64
|
|
BLAKE2b-256 checksum How to use checksums |
f8f2dd53e142196548357af7c590e810eef0c68ac021b7b5e82cd297288de4f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 15, 2026.
Transparency log