Skip to main content

Python library to propagate satellite orbits.

Project description

https://github.com/satellogic/orbit-predictor/workflows/Python%20package/badge.svg https://coveralls.io/repos/github/satellogic/orbit-predictor/badge.svg?branch=master

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 compliant code.

  • Wrap the code on 100 columns.

  • 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.15.2.tar.gz (50.7 kB view details)

Uploaded Source

Built Distribution

orbit_predictor-1.15.2-py3-none-any.whl (42.6 kB view details)

Uploaded Python 3

File details

Details for the file orbit_predictor-1.15.2.tar.gz.

File metadata

  • Download URL: orbit_predictor-1.15.2.tar.gz
  • Upload date:
  • Size: 50.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for orbit_predictor-1.15.2.tar.gz
Algorithm Hash digest
SHA256 63af17e58253359456918b69bcc423eb0f0d036d12ddbaf7e14c403006e32ab3
MD5 ccfcb06229496d7a12b7b73645790054
BLAKE2b-256 ff67f14fcd34438369f44a5d20f075a639148e120163b9eab3dd7295a1277d90

See more details on using hashes here.

File details

Details for the file orbit_predictor-1.15.2-py3-none-any.whl.

File metadata

File hashes

Hashes for orbit_predictor-1.15.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6f51a4aec46de12e83305c758b8f134a4d5a51acf3a818f6a62b4bfdee045ea7
MD5 afa3bb2bc999630a5320c4e05f159261
BLAKE2b-256 d958c38ff7c7af43cd2b0667ea8064b008630c62bedd16c0e2d8ed9310e34b98

See more details on using hashes here.

Supported by

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