Class FieldTLE<T extends CalculusFieldElement<T>>

java.lang.Object
org.orekit.propagation.analytical.tle.FieldTLE<T>
Type Parameters:
T - type of the field elements
All Implemented Interfaces:
FieldTimeStamped<T>, ParameterDriversProvider

public class FieldTLE<T extends CalculusFieldElement<T>> extends Object implements FieldTimeStamped<T>, ParameterDriversProvider
This class is a container for a single set of TLE data.

TLE sets can be built either by providing directly the two lines, in which case parsing is performed internally or by providing the already parsed elements.

TLE are not transparently convertible to Orbit instances. They are significant only with respect to their dedicated propagator, which also computes position and velocity coordinates. Any attempt to directly use orbital parameters like eccentricity, inclination, etc. without any reference to the TLE propagator is prone to errors.

More information on the TLE format can be found on the CelesTrak website.

Since:
11.0
Author:
Fabien Maussion, Luc Maisonobe, Thomas Paulet (field translation)
  • Field Details

    • DEFAULT

      public static final int DEFAULT
      Identifier for default type of ephemeris (SGP4/SDP4).
      See Also:
    • SGP

      public static final int SGP
      Identifier for SGP type of ephemeris.
      See Also:
    • SGP4

      public static final int SGP4
      Identifier for SGP4 type of ephemeris.
      See Also:
    • SDP4

      public static final int SDP4
      Identifier for SDP4 type of ephemeris.
      See Also:
    • SGP8

      public static final int SGP8
      Identifier for SGP8 type of ephemeris.
      See Also:
    • SDP8

      public static final int SDP8
      Identifier for SDP8 type of ephemeris.
      See Also:
    • B_STAR

      public static final String B_STAR
      Parameter name for B* coefficient.
      See Also:
  • Constructor Details

    • FieldTLE

      @DefaultDataContext public FieldTLE(Field<T> field, String line1, String line2)
      Simple constructor from unparsed two lines. This constructor uses the default data context.

      The static method isFormatOK(String, String) should be called before trying to build this object.

      Parameters:
      field - field utilized by default
      line1 - the first element (69 char String)
      line2 - the second element (69 char String)
      See Also:
    • FieldTLE

      public FieldTLE(Field<T> field, TLE tle)
      Constructor from non-Field object.
      Parameters:
      field - field utilized by default
      tle - Two-Line Element
      Since:
      14.0
    • FieldTLE

      public FieldTLE(Field<T> field, String line1, String line2, TimeScale utc)
      Simple constructor from unparsed two lines using the given time scale as UTC.

      This method uses the default data context.

      The static method isFormatOK(String, String) should be called before trying to build this object.

      Parameters:
      field - field utilized by default
      line1 - the first element (69 char String)
      line2 - the second element (69 char String)
      utc - the UTC time scale.
    • FieldTLE

      @DefaultDataContext public FieldTLE(int satelliteNumber, char classification, int launchYear, int launchNumber, String launchPiece, int ephemerisType, int elementNumber, FieldAbsoluteDate<T> epoch, T meanMotion, T meanMotionFirstDerivative, T meanMotionSecondDerivative, T e, T i, T pa, T raan, T meanAnomaly, int revolutionNumberAtEpoch, double bStar)

      Simple constructor from already parsed elements. This constructor uses the default data context.

      The mean anomaly, the right ascension of ascending node Ω and the argument of perigee ω are normalized into the [0, 2π] interval as they can be negative. After that, a range check is performed on some of the orbital elements:

           meanMotion >= 0
           0 <= i <= π
           0 <= Ω <= 2π
           0 <= e <= 1
           0 <= ω <= 2π
           0 <= meanAnomaly <= 2π
       
      Parameters:
      satelliteNumber - satellite number
      classification - classification (U for unclassified)
      launchYear - launch year (all digits)
      launchNumber - launch number
      launchPiece - launch piece (3 char String)
      ephemerisType - type of ephemeris
      elementNumber - element number
      epoch - elements epoch
      meanMotion - mean motion (rad/s)
      meanMotionFirstDerivative - mean motion first derivative (rad/s²)
      meanMotionSecondDerivative - mean motion second derivative (rad/s³)
      e - eccentricity
      i - inclination (rad)
      pa - argument of perigee (rad)
      raan - right ascension of ascending node (rad)
      meanAnomaly - mean anomaly (rad)
      revolutionNumberAtEpoch - revolution number at epoch
      bStar - ballistic coefficient
      See Also:
    • FieldTLE

      public FieldTLE(int satelliteNumber, char classification, int launchYear, int launchNumber, String launchPiece, int ephemerisType, int elementNumber, FieldAbsoluteDate<T> epoch, T meanMotion, T meanMotionFirstDerivative, T meanMotionSecondDerivative, T e, T i, T pa, T raan, T meanAnomaly, int revolutionNumberAtEpoch, double bStar, TimeScale utc)

      Simple constructor from already parsed elements using the given time scale as UTC.

      The mean anomaly, the right ascension of ascending node Ω and the argument of perigee ω are normalized into the [0, 2π] interval as they can be negative. After that, a range check is performed on some of the orbital elements:

           meanMotion >= 0
           0 <= i <= π
           0 <= Ω <= 2π
           0 <= e <= 1
           0 <= ω <= 2π
           0 <= meanAnomaly <= 2π
       
      Parameters:
      satelliteNumber - satellite number
      classification - classification (U for unclassified)
      launchYear - launch year (all digits)
      launchNumber - launch number
      launchPiece - launch piece (3 char String)
      ephemerisType - type of ephemeris
      elementNumber - element number
      epoch - elements epoch
      meanMotion - mean motion (rad/s)
      meanMotionFirstDerivative - mean motion first derivative (rad/s²)
      meanMotionSecondDerivative - mean motion second derivative (rad/s³)
      e - eccentricity
      i - inclination (rad)
      pa - argument of perigee (rad)
      raan - right ascension of ascending node (rad)
      meanAnomaly - mean anomaly (rad)
      revolutionNumberAtEpoch - revolution number at epoch
      bStar - ballistic coefficient
      utc - the UTC time scale.
  • Method Details

    • getLine1

      public String getLine1()
      Get the first line.
      Returns:
      first line
    • getLine2

      public String getLine2()
      Get the second line.
      Returns:
      second line
    • getParametersDrivers

      public List<ParameterDriver> getParametersDrivers()
      Get the drivers for parameters..

      Get the drivers for TLE propagation SGP4 and SDP4.

      Specified by:
      getParametersDrivers in interface ParameterDriversProvider
      Returns:
      drivers for SGP4 and SDP4 model parameters
    • getSatelliteNumber

      public int getSatelliteNumber()
      Get the satellite id.
      Returns:
      the satellite number
    • getClassification

      public char getClassification()
      Get the classification.
      Returns:
      classification
    • getLaunchYear

      public int getLaunchYear()
      Get the launch year.
      Returns:
      the launch year
    • getLaunchNumber

      public int getLaunchNumber()
      Get the launch number.
      Returns:
      the launch number
    • getLaunchPiece

      public String getLaunchPiece()
      Get the launch piece.
      Returns:
      the launch piece
    • getEphemerisType

      public int getEphemerisType()
      Get the type of ephemeris.
      Returns:
      the ephemeris type (one of DEFAULT, SGP, SGP4, SGP8, SDP4, SDP8)
    • getElementNumber

      public int getElementNumber()
      Get the element number.
      Returns:
      the element number
    • getDate

      public FieldAbsoluteDate<T> getDate()
      Get the TLE current date.
      Specified by:
      getDate in interface FieldTimeStamped<T extends CalculusFieldElement<T>>
      Returns:
      the epoch
    • getMeanMotion

      public T getMeanMotion()
      Get the mean motion.
      Returns:
      the mean motion (rad/s)
    • getMeanMotionFirstDerivative

      public T getMeanMotionFirstDerivative()
      Get the mean motion first derivative.
      Returns:
      the mean motion first derivative (rad/s²)
    • getMeanMotionSecondDerivative

      public T getMeanMotionSecondDerivative()
      Get the mean motion second derivative.
      Returns:
      the mean motion second derivative (rad/s³)
    • getE

      public T getE()
      Get the eccentricity.
      Returns:
      the eccentricity
    • getI

      public T getI()
      Get the inclination.
      Returns:
      the inclination (rad)
    • getPerigeeArgument

      public T getPerigeeArgument()
      Get the argument of perigee.
      Returns:
      omega (rad)
    • getRaan

      public T getRaan()
      Get Right Ascension of the Ascending node.
      Returns:
      the raan (rad)
    • getMeanAnomaly

      public T getMeanAnomaly()
      Get the mean anomaly.
      Returns:
      the mean anomaly (rad)
    • getRevolutionNumberAtEpoch

      public int getRevolutionNumberAtEpoch()
      Get the revolution number.
      Returns:
      the revolutionNumberAtEpoch
    • getBStar

      public double getBStar()
      Get the ballistic coefficient.
      Returns:
      bStar
    • computeSemiMajorAxis

      public T computeSemiMajorAxis()
      Compute the semi-major axis from the mean motion of the TLE and the gravitational parameter from TLEConstants.
      Returns:
      the semi-major axis computed.
    • toString

      public String toString()
      Get a string representation of this TLE set.

      The representation is simply the two lines separated by the platform line separator.

      Overrides:
      toString in class Object
      Returns:
      string representation of this TLE set
    • stateToTLE

      @DefaultDataContext public static <T extends CalculusFieldElement<T>> FieldTLE<T> stateToTLE(FieldSpacecraftState<T> state, FieldTLE<T> templateTLE, OsculatingToMeanConverter converter)
      Convert Spacecraft State into TLE.

      Uses the default data context.

      The B* is not calculated. Its value is simply copied from the template to the generated TLE.

      Type Parameters:
      T - type of the elements
      Parameters:
      state - Spacecraft State to convert into TLE
      templateTLE - only used to get identifiers like satellite number, launch year, etc. In other words, the keplerian elements contained in the generated TLE are based on the provided state and not the template TLE.
      converter - osculating to mean orbit converter
      Returns:
      a generated TLE
      Since:
      13.0
    • stateToTLE

      public static <T extends CalculusFieldElement<T>> FieldTLE<T> stateToTLE(FieldSpacecraftState<T> state, FieldTLE<T> templateTLE, OsculatingToMeanConverter converter, DataContext dataContext)
      Convert Spacecraft State into TLE.

      The B* is not calculated. Its value is simply copied from the template to the generated TLE.

      Type Parameters:
      T - type of the elements
      Parameters:
      state - Spacecraft State to convert into TLE
      templateTLE - only used to get identifiers like satellite number, launch year, etc. In other words, the keplerian elements contained in the generated TLE are based on the provided state and not the template TLE.
      converter - osculating to mean orbit converter
      dataContext - data context
      Returns:
      a generated TLE
      Since:
      13.0
    • isFormatOK

      public static boolean isFormatOK(String line1, String line2)
      Check the lines format validity.
      Parameters:
      line1 - the first element
      line2 - the second element
      Returns:
      true if format is recognized (non null lines, 69 characters length, line content), false if not
    • toTLE

      public TLE toTLE()
      Convert FieldTLE into TLE.
      Returns:
      TLE
    • equals

      public boolean equals(Object o)
      Check if this tle equals the provided tle.

      Due to the difference in precision between object and string representations of TLE, it is possible for this method to return false even if string representations returned by toString() are equal.

      Overrides:
      equals in class Object
      Parameters:
      o - other tle
      Returns:
      true if this tle equals the provided tle
    • hashCode

      public int hashCode()
      Get a hashcode for this tle.
      Overrides:
      hashCode in class Object
      Returns:
      hashcode