SGP4 Propagator

Basics of SGP4

SGP4 is an analytical propagator that is a part of the Simplified perturbations models. The input is TEME mean classical orbital elements, usually known as Two-Line-Elements or TLEs (represented in SatMAD with a TLE object).

The force model contains the zonal harmonics \(J_2\), \(J_3\) and \(J_4\) with a simple drag model. By definition, the propagation is Earth bound, therefore it cannot be used with other celestial bodies.

The output of the raw propagation is True-Equator, Mean-Equinox (TEME), though the outputs are converted to GCRS, which is the coordinate frame of the output trajectory.

Usage

The SGP4 propagator is initialised with a stepsize (e.g. 120 seconds for a Low-Earth Orbit satellite). To generate the trajectory SGP4Propagator.gen_trajectory() method is called with a correctly initialised TLE and an interval. A trajectory is then generated through this interval with the required stepsize.

The following example generates a TLE, initialises a SGP4 with a stepsize of 120 seconds and generates a trajectory, starting from the TLE epoch and with a duration of 1.5 days.

from astropy import units as u
from satmad.propagation.tle import TLE
from satmad.propagation.sgp4_propagator import SGP4Propagator
from satmad.utils.timeinterval import TimeInterval

# init TLE
name = "VANGUARD 1"
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"
tle = TLE.from_tle(line1, line2, name)

# init SGP4
sgp4 = SGP4Propagator(stepsize=120 * u.s)

#  Generate trajectory
interval = TimeInterval(tle.epoch, 1.5 * u.day)
traj = sgp4.gen_trajectory(tle, interval)

print(traj)

Reference/API

SGP4 Propagator to propagate Earth bound satellites.

exception satmad.propagation.sgp4_propagator.SGP4GeneralError

General SGP4 Propagation errors, usually orbital elements out of range.

class satmad.propagation.sgp4_propagator.SGP4Propagator(stepsize=<Quantity 60. s>, name='SGP4')

SGP4 Analytical propagator using TEME mean orbital elements.

While central_body of the propagator is EARTH, its constants are not used.

Parameters
  • name (str) – Name of the propagator

  • stepsize (Quantity or TimeDelta) – output stepsize for the propagator

gen_trajectory(tle, interval, **kwargs)

Generates the trajectory (time and coordinate information) for the given interval with the internal stepsize. :param tle: Two-Line-Element initial orbit information (TEME mean orbital elements) :type tle: TLE :param interval: Time interval for which the ephemeris will be generated :type interval: TimeInterval :param kwargs: No keywords defined

Returns

The output trajectory (in GCRS)

Return type

Trajectory

static propagate(tle, time)

Computes the coordinates at the target time using the source TLE mean orbital elements.

Parameters
  • tle (TLE) – Mean orbital elements (Two-Line-Element)

  • time (Time) – Target time for propagation

Returns

coords – Coordinates at target time (in GCRS)

Return type

SkyCoord

Raises
exception satmad.propagation.sgp4_propagator.SGP4SatDecayedError

Satellite coordinates at required coordinates are below decay altitude.