Class TleGenerationAlgorithm

java.lang.Object
org.orekit.orbits.AbstractOrbitalParameterFactory<TLE>
org.orekit.propagation.analytical.tle.generation.TleGenerationAlgorithm
All Implemented Interfaces:
Cloneable, OrbitalParameterFactory<TLE>
Direct Known Subclasses:
FixedPointTleGenerationAlgorithm, LeastSquaresTleGenerationAlgorithm

public abstract class TleGenerationAlgorithm extends AbstractOrbitalParameterFactory<TLE>
Base class for generating a TLE.
Since:
12.0
Author:
Bryan Cazabonne
  • Field Details

    • MEAN_MOTION

      public static final String MEAN_MOTION
      Name for mean motion.
      See Also:
    • ECCENTRICITY

      public static final String ECCENTRICITY
      Name for eccentricity.
      See Also:
    • INCLINATION

      public static final String INCLINATION
      Name for inclination.
      See Also:
    • PERIAPSIS_ARGUMENT

      public static final String PERIAPSIS_ARGUMENT
      Name for periapsis argument.
      See Also:
    • RAAN

      public static final String RAAN
      Name for right ascension of ascending node.
      See Also:
    • MEAN_ANOM

      public static final String MEAN_ANOM
      Name for mean anomaly.
      See Also:
    • B_STAR

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

      public static final double B_STAR_SCALE
      B* scaling factor.

      We use a power of 2 to avoid numeric noise introduction in the multiplications/divisions sequences.

  • Constructor Details

    • TleGenerationAlgorithm

      protected TleGenerationAlgorithm(TLE templateTLE, Frame teme, OsculatingToMeanConverter converter)
      Default constructor.
      Parameters:
      templateTLE - template TLE
      teme - teme frame
      converter - osculating to mean orbit converter
  • Method Details

    • getTemplateTLE

      public TLE getTemplateTLE()
      Get the template TLE.
      Returns:
      template TLE
    • getConverter

      public OsculatingToMeanConverter getConverter()
      Get the osculating to mean orbit converter.
      Returns:
      osculating to mean orbit converter
      Since:
      14.0
    • getNonKeplerianParametersDrivers

      public ParameterDriversList getNonKeplerianParametersDrivers()
      Get the drivers for additional drivers for non-Keplerian motion.
      Specified by:
      getNonKeplerianParametersDrivers in interface OrbitalParameterFactory<TLE>
      Overrides:
      getNonKeplerianParametersDrivers in class AbstractOrbitalParameterFactory<TLE>
      Returns:
      drivers for non-Keplerian motion
    • toArray

      protected double[] toArray(Orbit orbit)
      Convert an input into an array suitable to feed orbital parameters drivers.
      Specified by:
      toArray in class AbstractOrbitalParameterFactory<TLE>
      Parameters:
      orbit - orbit to convert
      Returns:
      arrays corresponding to orbit
    • createFromDrivers

      public TLE createFromDrivers()
      Create orbital parameters from current drivers values.
      Returns:
      created orbital parameters
    • getJacobianWrtParameters

      public RealMatrix getJacobianWrtParameters()
      Get the Jacobian of the Cartesian coordinates with respect to the orbital parameters.

      The Jacobian is evaluated at the current drivers values, at the factory date and in the factory frame.

      The TLE orbital elements are related to the Cartesian coordinates by the SGP4/SDP4 model itself, which has no closed-form derivatives, so the Jacobian is obtained by automatic differentiation: the six elements of the TLE built from the current drivers are turned into Gradient variables, and the resulting TLE is evaluated at its own epoch.

      Returns:
      jacobian matrix dC/dB, where C are the Cartesian coordinates and B the orbital parameters this factory is built upon
    • getJacobianWrtParameters

      public RealMatrix getJacobianWrtParameters(TLE tle)
      Get the Jacobian of the Cartesian coordinates with respect to the orbital elements of a TLE.

      The TLE orbital elements are related to the Cartesian coordinates by the SGP4/SDP4 model itself, which has no closed-form derivatives, so the Jacobian is obtained by automatic differentiation: the six orbital elements are turned into Gradient variables and the TLE is evaluated at its own epoch. All the remaining data (identification, mean motion derivatives, B*) are held constant.

      Parameters:
      tle - TLE holding the orbital elements the Jacobian is computed with respect to
      Returns:
      jacobian matrix dC/dB, at the TLE epoch and in the TEME frame
    • getBStar

      protected double getBStar()
      Get the current B-star value.
      Returns:
      current B-star value
    • generate

      public TLE generate(SpacecraftState state, TLE newTemplateTLE)
      Generate a TLE from a given spacecraft state and a template TLE.

      The template TLE is 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.

      Parameters:
      state - spacecraft state
      newTemplateTLE - template TLE
      Returns:
      a TLE corresponding to the given state
    • generate

      public <T extends CalculusFieldElement<T>> FieldTLE<T> generate(FieldSpacecraftState<T> state, FieldTLE<T> newTemplateTLE)
      Generate a TLE from a given spacecraft state and a template TLE.

      The template TLE is 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.

      Type Parameters:
      T - type of the elements
      Parameters:
      state - spacecraft state
      newTemplateTLE - template TLE
      Returns:
      a TLE corresponding to the given state
    • clone

      public TleGenerationAlgorithm clone()
      Overrides:
      clone in class AbstractOrbitalParameterFactory<TLE>