satkit.propagation.tle

TLE helper functions and factory.

Classes

TLEUtils()

Utilities for TLE based orbits.

TleDefaultUnits(value[, names, module, ...])

TLE Default Units.

TleFactory()

This class generates TLEs for common orbit types.

class TLEUtils[source]

Utilities for TLE based orbits.

Basic conversions and functions of orbit related operations for convenience.

static compute_raan_drift_rate(tle, include_j4=True)[source]

Computes the RAAN (or orbital plane) drift rate from the TLE.

The orbit plane rotation rate is calculated via a J4 secular drift rate (See Fundamentals of Astrodynamics Vallado 4th ed pg. 650).

Equations use WGS84 parameters for Earth equator radius and mu. J2 and J4 are from EGM96.

Return type

Quantity

Parameters
  • tle (TLE) – TLE

  • include_j4 (bool) – True if J2^2 and J4 effects are to be included, False for J2 only.

Returns

RAAN drift rate in angles/time (e.g. deg/day)

Return type

Quantity

static compute_sma(tle)[source]

Computes the (mean) semimajor axis from the TLE.

The orbit plane rotation rate is calculated via a J4 secular drift rate (See Fundamentals of Astrodynamics Vallado 4th ed pg. 650).

Equations use WGS84 parameters for mu.

Return type

Quantity

Parameters

tle (TLE) – TLE

Returns

sma – Semimajor axis with units [m]

Return type

Quantity

class TleDefaultUnits(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

TLE Default Units.

ARG_OF_PERIGEE = 'rad'
BSTAR = None
CLASSIFICATION = None
DATE = None
E = None
ECCENTRICITY = None
ELEMENT_NR = None
EPHEMERIS_TYPE = None
EPOCH = None
INCL = 'rad'
INCLINATION = 'rad'
LAUNCH_NR = None
LAUNCH_PIECE = None
LAUNCH_YR = None
MEAN_ANOMALY = 'rad'
MEAN_MOTION = 'rad/s'
N = 'rad/s'
N_DOT = 'rad/s**2'
N_DOT_DOT = 'rad/s**3'
RAAN = 'rad'
REV_NR = None
SAT_NR = None
class TleFactory[source]

This class generates TLEs for common orbit types.

A two-line element set (TLE) is a data format encoding a list of TEME (True Equator, Mean Equinox) mean orbital elements of an Earth-orbiting object for a given point in time, called the Epoch Time.

These orbital elements are solely for use with the SGP4 propagator due to the analytical orbit theory used in its derivation.

See the TLE page in Wikipedia or Space-Track definition for more information.

The TLEs are usually generated by external sources and are used to propagate the orbits with the initial condition encapsulated by the TLE.

static init_geo(epoch, longitude, launch_year=2000, launch_nr=1, launch_piece='A', sat_num=99999, classification='U', rev_nr=0, el_nr=1)[source]

Initialises a geostationary satellite TLE.

Due to the nature of the Earth’s geopotential, the orbit may drift off by some degrees within weeks.

Return type

TLE

Parameters
  • epoch (type[AbsoluteDate]) – Epoch Time corresponding to the orbital elements (nominally very near the time of true ascending node passage)

  • longitude (float or Quantity) – initial longitude of the satellite [rad]

  • launch_year (int) – launch year (e.g., ‘2014’)

  • launch_nr (int) – launch number within the year (e.g., ‘17’)

  • launch_piece (str) – launch piece (3 chars max)

  • sat_num (int) – satellite catalog number (e.g., ‘39552’; see TLE class documentation)

  • classification (str) – Classification (U for Unclassified, C for Classified, S for Secret)

  • rev_nr (int) – Revolution number of the object at Epoch Time (should be in range 0 <= rev_nr < 10000) [revolutions]

  • el_nr (int) – Element set number (should be in range 0 <= el_nr < 10000). Incremented when a new TLE is generated for this object.

Returns

TLE object initialised with the required GEO parameters.

Return type

TLE

static init_sso(epoch, altitude, ltan, eccentricity=0.0, arg_perigee=<Quantity(0.0, 'radian')>, mean_anomaly=<Quantity(0.0, 'radian')>, bstar=0.0, launch_year=2000, launch_nr=1, launch_piece='A', sat_num=99999, classification='U', rev_nr=0, el_nr=1)[source]

Initialises a sun-synchronous Earth orbit TLE.

Sets the inclination in accordance with the target node rotation rate that satisfies sun-synchronous conditions up to J4. Sets the RAAN in accordance with the requested Local Time of the Ascending Node (LTAN).

Target node rotation rate is 360 deg / 365.2421897 days (See Fundamentals of Astrodynamics Vallado 4th ed pg. 863). The node rotation rate is calculated via a J4 secular drift rate (See Fundamentals of Astrodynamics Vallado 4th ed pg. 650).

Equations use WGS84 parameters for Earth equator radius and mu. J2 and J4 are from EGM96.

Return type

TLE

Parameters
  • epoch (type[AbsoluteDate]) – Epoch Time corresponding to the orbital elements (nominally very near the time of true ascending node passage)

  • altitude (float or Quantity) – altitude above earth_radius around Equator [m]

  • ltan (float) – Local Time of the Ascending Node defined as [0, 24)

  • eccentricity (float) – mean eccentricity of the orbit [dimensionless]

  • arg_perigee (float or Quantity) – TEME mean argument of perigee [rad]

  • mean_anomaly (float or Quantity) – mean anomaly of the orbit [rad]

  • bstar (float or Quantity) – sgp4 type drag coefficient [1 / earth radius] (see TLE class documentation)

  • launch_year (int) – launch year (e.g., ‘2014’)

  • launch_nr (int) – launch number within the year (e.g., ‘17’)

  • launch_piece (str) – launch piece (3 chars max)

  • sat_num (int) – satellite catalog number (e.g., ‘39552’; see TLE class documentation)

  • classification (str) – Classification (U for Unclassified, C for Classified, S for Secret)

  • rev_nr (int) – Revolution number of the object at Epoch Time (should be in range 0 <= rev_nr < 10000) [revolutions]

  • el_nr (int) – Element set number (should be in range 0 <= el_nr < 10000). Incremented when a new TLE is generated for this object.

Returns

TLE object initialised with the required SSO parameters.

Return type

TLE