Modern, type-safe python library for TLE, OMM et al. handling and orbit propagation to accurately locate your satellites in the sky.
Project description
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
uv add satelles
or
using your preferred environment / 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 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
License
This project is licensed under the terms of the MIT 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 satelles-0.11.0.tar.gz.
File metadata
- Download URL: satelles-0.11.0.tar.gz
- Upload date:
- Size: 70.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80ea81e514c3fdd6beb2670fe02de51059b1dc4bb31cd13648b4cf5885fbca49
|
|
| MD5 |
06989a8675384d2e456784e2063cebb7
|
|
| BLAKE2b-256 |
7bb447cfd8adcb595781a5806de40358f2d4aba88bb12621d4f6c0240b5ac7ad
|
Provenance
The following attestation bundles were made for satelles-0.11.0.tar.gz:
Publisher:
publish.yml on michealroberts/satelles
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
satelles-0.11.0.tar.gz -
Subject digest:
80ea81e514c3fdd6beb2670fe02de51059b1dc4bb31cd13648b4cf5885fbca49 - Sigstore transparency entry: 241636507
- Sigstore integration time:
-
Permalink:
michealroberts/satelles@10713d14cdc11aadfc43ba19e2ead373fdbaaec3 -
Branch / Tag:
refs/tags/v0.11.0 - Owner: https://github.com/michealroberts
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@10713d14cdc11aadfc43ba19e2ead373fdbaaec3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file satelles-0.11.0-py3-none-any.whl.
File metadata
- Download URL: satelles-0.11.0-py3-none-any.whl
- Upload date:
- Size: 36.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2eb4861698f2f449dedbdd3ab6717feef7ef6b9783ea1dc8a53c2b8caa1f336
|
|
| MD5 |
fd3d48360ff096fa278d5c8f8dc1350a
|
|
| BLAKE2b-256 |
2fe416497bc5f4a50891ce6f78583cbf038461548bd87ed489e7f5aff0f305e7
|
Provenance
The following attestation bundles were made for satelles-0.11.0-py3-none-any.whl:
Publisher:
publish.yml on michealroberts/satelles
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
satelles-0.11.0-py3-none-any.whl -
Subject digest:
a2eb4861698f2f449dedbdd3ab6717feef7ef6b9783ea1dc8a53c2b8caa1f336 - Sigstore transparency entry: 241636519
- Sigstore integration time:
-
Permalink:
michealroberts/satelles@10713d14cdc11aadfc43ba19e2ead373fdbaaec3 -
Branch / Tag:
refs/tags/v0.11.0 - Owner: https://github.com/michealroberts
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@10713d14cdc11aadfc43ba19e2ead373fdbaaec3 -
Trigger Event:
release
-
Statement type: