131 lines
5.5 KiB
Plaintext
131 lines
5.5 KiB
Plaintext
|
Metadata-Version: 1.0
|
|||
|
Name: sgp4
|
|||
|
Version: 1.1
|
|||
|
Summary: Track earth satellite TLE orbits using up-to-date 2010 version of SGP4
|
|||
|
Home-page: https://github.com/brandon-rhodes/python-sgp4
|
|||
|
Author: Brandon Rhodes
|
|||
|
Author-email: brandon@rhodesmill.org
|
|||
|
License: MIT
|
|||
|
Description:
|
|||
|
This Python package computes the position and velocity of an
|
|||
|
earth-orbiting satellite, given the satellite's TLE orbital elements
|
|||
|
from a source like `Celestrak <http://celestrak.com/>`_. It implements
|
|||
|
the most recent version of SGP4, and is regularly run against the SGP4
|
|||
|
test suite to make sure that its satellite position predictions **agree
|
|||
|
to within 1 µm** of the predictions of the standard C++ implementation
|
|||
|
of the algorithm. This error is far less than the 1–3 km/day by which
|
|||
|
satellites themselves deviate from the ideal orbits described in TLE
|
|||
|
files.
|
|||
|
|
|||
|
The C++ function names have been retained, since users may already be
|
|||
|
familiar with this library in other languages. Here is how to compute
|
|||
|
the x,y,z position and velocity for Vanguard 1 at 12:50:19 on 29
|
|||
|
June 2000:
|
|||
|
|
|||
|
>>> from sgp4.earth_gravity import wgs72
|
|||
|
>>> from sgp4.io import twoline2rv
|
|||
|
>>> line1 = ('1 00005U 58002B 00179.78495062 '
|
|||
|
... '.00000023 00000-0 28098-4 0 4753')
|
|||
|
>>> line2 = ('2 00005 34.2682 348.7242 1859667 '
|
|||
|
... '331.7664 19.3264 10.82419157413667')
|
|||
|
>>>
|
|||
|
>>> satellite = twoline2rv(line1, line2, wgs72)
|
|||
|
>>> position, velocity = satellite.propagate(
|
|||
|
... 2000, 6, 29, 12, 50, 19)
|
|||
|
>>>
|
|||
|
>>> position
|
|||
|
[5576.056952400586, -3999.371134576452, -1521.9571594376037]
|
|||
|
>>> velocity
|
|||
|
[4.772627303379319, 5.119817120959591, 4.275553909172126]
|
|||
|
|
|||
|
The position vector measures the satellite position in **meters** from
|
|||
|
the center of the earth. The velocity is the rate at which those same
|
|||
|
three parameters are changing, expressed in **meters per second**.
|
|||
|
|
|||
|
There are three gravity models available that you can import from the
|
|||
|
``earth_gravity`` module:
|
|||
|
|
|||
|
* ``wgs72``
|
|||
|
* ``wgs72old``
|
|||
|
* ``wgs84``
|
|||
|
|
|||
|
The ``wgs72`` model seems to be the most commonly used in the satellite
|
|||
|
tracking community, and is probably the model behind most TLE elements
|
|||
|
that are available for download.
|
|||
|
|
|||
|
The ``twoline2rv()`` function returns a ``Satellite`` object whose
|
|||
|
attributes carry the data loaded from the TLE entry.
|
|||
|
Most of this class's hundred-plus attributes are intermediate values
|
|||
|
of interest only to the propagation algorithm itself. Here are the
|
|||
|
attributes set by ``sgp4.io.twoline2rv()`` in which users are likely
|
|||
|
to be interested:
|
|||
|
|
|||
|
``satnum``
|
|||
|
Unique satellite number given in the TLE file.
|
|||
|
``epochyr``
|
|||
|
Full four-digit year of this element set's epoch moment.
|
|||
|
``epochdays``
|
|||
|
Fractional days into the year of the epoch moment.
|
|||
|
``jdsatepoch``
|
|||
|
Julian date of the epoch (computed from ``epochyr`` and ``epochdays``).
|
|||
|
``ndot``
|
|||
|
First time derivative of the mean motion (ignored by SGP4).
|
|||
|
``nddot``
|
|||
|
Second time derivative of the mean motion (ignored by SGP4).
|
|||
|
``bstar``
|
|||
|
Ballistic drag coefficient B* in inverse earth radii.
|
|||
|
``inclo``
|
|||
|
Inclination in radians.
|
|||
|
``nodeo``
|
|||
|
Right ascension of ascending node in radians.
|
|||
|
``ecco``
|
|||
|
Eccentricity.
|
|||
|
``argpo``
|
|||
|
Argument of perigee in radians.
|
|||
|
``mo``
|
|||
|
Mean anomaly in radians.
|
|||
|
``no``
|
|||
|
Mean motion in radians per minute.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
This implementation passes all of the automated tests in the August 2010
|
|||
|
release of the reference implementation of SGP4 by Vallado et al., who
|
|||
|
originally published their revision of SGP4 in 2006:
|
|||
|
|
|||
|
Vallado, David A., Paul Crawford, Richard Hujsak, and T.S. Kelso, “Revisiting Spacetrack Report #3,” presented at the AIAA/AAS Astrodynamics Specialist Conference, Keystone, CO, 2006 August 21–24.
|
|||
|
|
|||
|
If you would like to review the paper, it is `available online
|
|||
|
<http://www.celestrak.com/publications/AIAA/2006-6753/>`_. You can
|
|||
|
always download the latest version of their code for comparison against
|
|||
|
this Python module (or other implementations) at `AIAA-2006-6753.zip
|
|||
|
<http://www.celestrak.com/publications/AIAA/2006-6753/AIAA-2006-6753.zip>`_.
|
|||
|
|
|||
|
This module was adapted from Vallado's C++ code since its revision date
|
|||
|
was the most recently updated SGP4 implementation in their zip file:
|
|||
|
|
|||
|
* C++, August 2010
|
|||
|
* Fortran, August 2008
|
|||
|
* Pascal, August 2008
|
|||
|
* Matlab, May 2008
|
|||
|
* Java, July 2005
|
|||
|
|
|||
|
Changelog
|
|||
|
---------
|
|||
|
|
|||
|
| 2012-11-22 — 1.1 — Python 3 compatibility; more documentation
|
|||
|
| 2012-08-27 — 1.0 — Initial release
|
|||
|
|
|||
|
|
|||
|
Platform: UNKNOWN
|
|||
|
Classifier: Development Status :: 5 - Production/Stable
|
|||
|
Classifier: Intended Audience :: Science/Research
|
|||
|
Classifier: License :: OSI Approved :: MIT License
|
|||
|
Classifier: Programming Language :: Python :: 2
|
|||
|
Classifier: Programming Language :: Python :: 2.6
|
|||
|
Classifier: Programming Language :: Python :: 2.7
|
|||
|
Classifier: Programming Language :: Python :: 3
|
|||
|
Classifier: Programming Language :: Python :: 3.1
|
|||
|
Classifier: Programming Language :: Python :: 3.2
|
|||
|
Classifier: Topic :: Scientific/Engineering :: Astronomy
|