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
-
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
SGP4GeneralError – Errors in SGP4 propagation
SGP4SatDecayedError – Satellite coordinates at required coordinates are below decay altitude.
-
exception
satmad.propagation.sgp4_propagator.
SGP4SatDecayedError
¶ Satellite coordinates at required coordinates are below decay altitude.