File: PKG-INFO

package info (click to toggle)
orbit-predictor 1.15.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 260 kB
  • sloc: python: 1,616; makefile: 3
file content (118 lines) | stat: -rw-r--r-- 3,990 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
Metadata-Version: 2.1
Name: orbit-predictor
Version: 1.15.0
Summary: Python library to propagate satellite orbits.
Home-page: https://github.com/satellogic/orbit-predictor
Author: Satellogic SA
Author-email: oss@satellogic.com
License: MIT
Keywords: orbit,sgp4,TLE,space,satellites
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.4
Provides-Extra: fast
Provides-Extra: dev
License-File: LICENSE

Orbit Predictor
===============

.. image:: https://github.com/satellogic/orbit-predictor/workflows/Python%20package/badge.svg
    :target: https://github.com/satellogic/orbit-predictor/actions
.. image:: https://coveralls.io/repos/github/satellogic/orbit-predictor/badge.svg?branch=master
    :target: https://coveralls.io/github/satellogic/orbit-predictor?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) <https://en.wikipedia.org/wiki/Two-line_element_set>`_

All the hard work is done by Brandon Rhodes implementation of 
`SGP4 <https://github.com/brandon-rhodes/python-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)