Python library to propagate satellite orbits.
Project description
Orbit Predictor is a Python library to propagate orbits of Earth-orbiting objects (satellites, ISS, Santa Claus, etc) using TLE (Two-Line Elements set)
All the hard work is done by Brandon Rhodes implementation of SGP4.
We can say Orbit predictor is kind of a “wrapper” for the python implementation of SGP4
To install it
You can install orbit-predictor from pypi:
pip install orbit-predictor
Use example
When will be the ISS over Argentina?
In [1]: from orbit_predictor.sources import EtcTLESource In [2]: from orbit_predictor.locations import ARG In [3]: source = EtcTLESource(filename="examples/iss.tle") In [4]: predictor = source.get_predictor("ISS") In [5]: predictor.get_next_pass(ARG) Out[5]: <PredictedPass ISS over ARG on 2017-11-10 22:48:10.607212> In [6]: predicted_pass = _ In [7]: position = predictor.get_position(predicted_pass.aos) In [8]: ARG.is_visible(position) # Can I see the ISS from this location? Out[8]: True In [9]: import datetime In [10]: position_delta = predictor.get_position(predicted_pass.los + datetime.timedelta(minutes=20)) In [11]: ARG.is_visible(position_delta) Out[11]: False In [12]: tomorrow = datetime.datetime.utcnow() + datetime.timedelta(days=1) In [13]: predictor.get_next_pass(ARG, tomorrow, max_elevation_gt=20) Out[13]: <PredictedPass ISS over ARG on 2017-11-11 23:31:36.878827>
Simplified creation of predictor from TLE lines:
In [1]: import datetime In [2]: from orbit_predictor.sources import get_predictor_from_tle_lines In [3]: TLE_LINES = ( "1 43204U 18015K 18339.11168986 .00000941 00000-0 42148-4 0 9999", "2 43204 97.3719 104.7825 0016180 271.1347 174.4597 15.23621941 46156") In [4]: predictor = get_predictor_from_tle_lines(TLE_LINES) In [5]: predictor.get_position(datetime.datetime(2019, 1, 1)) Out[5]: Position(when_utc=datetime.datetime(2019, 1, 1, 0, 0), position_ecef=(-5280.795613274576, -3977.487633239489, -2061.43227648734), velocity_ecef=(-2.4601788971676903, -0.47182217472755117, 7.167517631852518), error_estimate=None)
Currently you have available these sources
Memorytlesource: in memory storage.
EtcTLESource: a uniq TLE is stored in /etc/latest_tle
WSTLESource: It reads a REST API currently used inside Satellogic. We are are working to make it publicly available.
How to contribute
Write pep8 complaint code.
Wrap the code on 100 collumns.
Always use a branch for each feature and Merge Proposals.
Always run the tests before to push. (test implies pep8 validation)
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
File details
Details for the file orbit-predictor-1.15.0.tar.gz
.
File metadata
- Download URL: orbit-predictor-1.15.0.tar.gz
- Upload date:
- Size: 31.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d334d33a63d24c5aa8c52f977263dd35993615cc360c9f8bc88754bba39fbaf2 |
|
MD5 | 19c68e2294c92ea2649dbe9aacccf872 |
|
BLAKE2b-256 | c298c1497925d73f522d17a2db3e704a85fdad17fcd191464b82fad82e73aedb |
File details
Details for the file orbit_predictor-1.15.0-py3-none-any.whl
.
File metadata
- Download URL: orbit_predictor-1.15.0-py3-none-any.whl
- Upload date:
- Size: 42.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0a00bec8bf905b4bb14c7e0713d66ebd1e82a6fab0c02e48266fb81c6b94a24 |
|
MD5 | 06feae9a2237f6e7c6964b231dae4950 |
|
BLAKE2b-256 | 3b68d180d44da715d62bf7d69cf0d8410f1c7b6124180c59ebbfcb315c669917 |