Skip to main content

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)

Al the hard work is done by The 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 # WIP

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>

WSTLESource needs the tle.satellogic.com service to be working. We are doing changes to have it public available.

Currently you have available these sources

  • Memorytlesource: in memory storage.

  • EtcTLESource: a uniq TLE is stored in /etc/latest_tle

  • WSTLESource: It source is using the TLE API.

About HighAccuracyTLEPredictor

The default ‘predictor’ code is tunned to low CPU usage. (IE: a Satellite computer). The error estimation is ~20 seconds. If you need more than that you can use the HighAccuracyTLEPredictor passing precise=True to get_predictor().

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orbit-predictor-1.8.5.tar.gz (17.4 kB view hashes)

Uploaded Source

Built Distribution

orbit_predictor-1.8.5-py3-none-any.whl (25.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page