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:
Serializable
,FieldTimeStamped<T>
,ParameterDriversProvider
public class FieldTLE<T extends CalculusFieldElement<T>> extends Object implements FieldTimeStamped<T>, Serializable, 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 dedicatedpropagator
, which also computes position and velocity coordinates. Any attempt to directly use orbital parameters likeeccentricity
,inclination
, etc. without any reference to theTLE 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)
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static String
B_STAR
Parameter name for B* coefficient.static int
DEFAULT
Identifier for default type of ephemeris (SGP4/SDP4).static int
SDP4
Identifier for SDP4 type of ephemeris.static int
SDP8
Identifier for SDP8 type of ephemeris.static int
SGP
Identifier for SGP type of ephemeris.static int
SGP4
Identifier for SGP4 type of ephemeris.static int
SGP8
Identifier for SGP8 type of ephemeris.
-
Constructor Summary
Constructors Constructor Description 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.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.FieldTLE(Field<T> field, String line1, String line2)
Simple constructor from unparsed two lines.FieldTLE(Field<T> field, String line1, String line2, TimeScale utc)
Simple constructor from unparsed two lines using the given time scale as UTC.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description T
computeSemiMajorAxis()
Compute the semi-major axis from the mean motion of the TLE and the gravitational parameter from TLEConstants.boolean
equals(Object o)
Check if this tle equals the provided tle.double
getBStar()
Get the ballistic coefficient.char
getClassification()
Get the classification.FieldAbsoluteDate<T>
getDate()
Get the TLE current date.T
getE()
Get the eccentricity.int
getElementNumber()
Get the element number.int
getEphemerisType()
Get the type of ephemeris.T
getI()
Get the inclination.int
getLaunchNumber()
Get the launch number.String
getLaunchPiece()
Get the launch piece.int
getLaunchYear()
Get the launch year.String
getLine1()
Get the first line.String
getLine2()
Get the second line.T
getMeanAnomaly()
Get the mean anomaly.T
getMeanMotion()
Get the mean motion.T
getMeanMotionFirstDerivative()
Get the mean motion first derivative.T
getMeanMotionSecondDerivative()
Get the mean motion second derivative.List<ParameterDriver>
getParametersDrivers()
Get the drivers for parameters.T
getPerigeeArgument()
Get the argument of perigee.T
getRaan()
Get Right Ascension of the Ascending node.int
getRevolutionNumberAtEpoch()
Get the revolution number.int
getSatelliteNumber()
Get the satellite id.int
hashCode()
Get a hashcode for this tle.static boolean
isFormatOK(String line1, String line2)
Check the lines format validity.static <T extends CalculusFieldElement<T>>
FieldTLE<T>stateToTLE(FieldSpacecraftState<T> state, FieldTLE<T> templateTLE, TleGenerationAlgorithm generationAlgorithm)
Convert Spacecraft State into TLE.String
toString()
Get a string representation of this TLE set.TLE
toTLE()
Convert FieldTLE into TLE.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.orekit.time.FieldTimeStamped
durationFrom
-
Methods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupported
-
-
-
-
Field Detail
-
DEFAULT
public static final int DEFAULT
Identifier for default type of ephemeris (SGP4/SDP4).- See Also:
- Constant Field Values
-
SGP
public static final int SGP
Identifier for SGP type of ephemeris.- See Also:
- Constant Field Values
-
SGP4
public static final int SGP4
Identifier for SGP4 type of ephemeris.- See Also:
- Constant Field Values
-
SDP4
public static final int SDP4
Identifier for SDP4 type of ephemeris.- See Also:
- Constant Field Values
-
SGP8
public static final int SGP8
Identifier for SGP8 type of ephemeris.- See Also:
- Constant Field Values
-
SDP8
public static final int SDP8
Identifier for SDP8 type of ephemeris.- See Also:
- Constant Field Values
-
B_STAR
public static final String B_STAR
Parameter name for B* coefficient.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
FieldTLE
@DefaultDataContext public FieldTLE(Field<T> field, String line1, String line2)
Simple constructor from unparsed two lines. This constructor uses thedefault data context
.The static method
isFormatOK(String, String)
should be called before trying to build this object.- Parameters:
field
- field utilized by defaultline1
- the first element (69 char String)line2
- the second element (69 char String)- See Also:
FieldTLE(Field, String, String, TimeScale)
-
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 defaultline1
- 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 numberclassification
- classification (U for unclassified)launchYear
- launch year (all digits)launchNumber
- launch numberlaunchPiece
- launch piece (3 char String)ephemerisType
- type of ephemeriselementNumber
- element numberepoch
- elements epochmeanMotion
- mean motion (rad/s)meanMotionFirstDerivative
- mean motion first derivative (rad/s²)meanMotionSecondDerivative
- mean motion second derivative (rad/s³)e
- eccentricityi
- inclination (rad)pa
- argument of perigee (rad)raan
- right ascension of ascending node (rad)meanAnomaly
- mean anomaly (rad)revolutionNumberAtEpoch
- revolution number at epochbStar
- ballistic coefficient- See Also:
FieldTLE(int, char, int, int, String, int, int, FieldAbsoluteDate, CalculusFieldElement, CalculusFieldElement, CalculusFieldElement, CalculusFieldElement, CalculusFieldElement, CalculusFieldElement, CalculusFieldElement, CalculusFieldElement, int, double, TimeScale)
-
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 numberclassification
- classification (U for unclassified)launchYear
- launch year (all digits)launchNumber
- launch numberlaunchPiece
- launch piece (3 char String)ephemerisType
- type of ephemeriselementNumber
- element numberepoch
- elements epochmeanMotion
- mean motion (rad/s)meanMotionFirstDerivative
- mean motion first derivative (rad/s²)meanMotionSecondDerivative
- mean motion second derivative (rad/s³)e
- eccentricityi
- inclination (rad)pa
- argument of perigee (rad)raan
- right ascension of ascending node (rad)meanAnomaly
- mean anomaly (rad)revolutionNumberAtEpoch
- revolution number at epochbStar
- ballistic coefficientutc
- the UTC time scale.
-
-
Method Detail
-
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 interfaceParameterDriversProvider
- 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.
-
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 interfaceFieldTimeStamped<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.
-
stateToTLE
public static <T extends CalculusFieldElement<T>> FieldTLE<T> stateToTLE(FieldSpacecraftState<T> state, FieldTLE<T> templateTLE, TleGenerationAlgorithm generationAlgorithm)
Convert Spacecraft State into TLE.- Type Parameters:
T
- type of the element- Parameters:
state
- Spacecraft State to convert into TLEtemplateTLE
- 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.generationAlgorithm
- TLE generation algorithm- Returns:
- a generated TLE
- Since:
- 12.0
-
isFormatOK
public static boolean isFormatOK(String line1, String line2)
Check the lines format validity.- Parameters:
line1
- the first elementline2
- 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.
-
-