public class FieldTLE<T extends CalculusFieldElement<T>> extends Object implements FieldTimeStamped<T>, Serializable
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.
Modifier and Type | Field and 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 and Description |
---|
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.
|
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.
|
Modifier and Type | Method and Description |
---|---|
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.
|
T[] |
getParameters(Field<T> field)
Get model parameters.
|
List<ParameterDriver> |
getParametersDrivers()
Get the drivers for TLE propagation SGP4 and SDP4.
|
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>> |
stateToTLE(FieldSpacecraftState<T> state,
FieldTLE<T> templateTLE)
Convert Spacecraft State into TLE.
|
static <T extends CalculusFieldElement<T>> |
stateToTLE(FieldSpacecraftState<T> state,
FieldTLE<T> templateTLE,
TimeScale utc,
Frame teme)
Convert Spacecraft State into TLE.
|
static <T extends CalculusFieldElement<T>> |
stateToTLE(FieldSpacecraftState<T> state,
FieldTLE<T> templateTLE,
TimeScale utc,
Frame teme,
double epsilon,
int maxIterations)
Convert Spacecraft State into TLE.
|
String |
toString()
Get a string representation of this TLE set.
|
TLE |
toTLE()
Convert FieldTLE into TLE.
|
public static final int DEFAULT
public static final int SGP
public static final int SGP4
public static final int SDP4
public static final int SGP8
public static final int SDP8
public static final String B_STAR
@DefaultDataContext public FieldTLE(Field<T> field, String line1, String line2)
default data context
.
The static method isFormatOK(String, String)
should be called
before trying to build this object.
field
- field utilized by defaultline1
- the first element (69 char String)line2
- the second element (69 char String)FieldTLE(Field, String, String, TimeScale)
public FieldTLE(Field<T> field, String line1, String line2, TimeScale utc)
This method uses the default data context
.
The static method isFormatOK(String, String)
should be called
before trying to build this object.
field
- field utilized by defaultline1
- the first element (69 char String)line2
- the second element (69 char String)utc
- the UTC time scale.@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π
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 coefficientFieldTLE(int, char, int, int, String, int, int, FieldAbsoluteDate, CalculusFieldElement, CalculusFieldElement,
CalculusFieldElement, CalculusFieldElement, CalculusFieldElement, CalculusFieldElement, CalculusFieldElement, CalculusFieldElement, int, double, TimeScale)
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π
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.public String getLine1()
public String getLine2()
public List<ParameterDriver> getParametersDrivers()
public T[] getParameters(Field<T> field)
field
- field to which the elements belongpublic int getSatelliteNumber()
public char getClassification()
public int getLaunchYear()
public int getLaunchNumber()
public String getLaunchPiece()
public int getEphemerisType()
public int getElementNumber()
public FieldAbsoluteDate<T> getDate()
getDate
in interface FieldTimeStamped<T extends CalculusFieldElement<T>>
public T getMeanMotion()
public T getMeanMotionFirstDerivative()
public T getMeanMotionSecondDerivative()
public T getE()
public T getI()
public T getPerigeeArgument()
public T getRaan()
public T getMeanAnomaly()
public int getRevolutionNumberAtEpoch()
public double getBStar()
public String toString()
The representation is simply the two lines separated by the platform line separator.
@DefaultDataContext public static <T extends CalculusFieldElement<T>> FieldTLE<T> stateToTLE(FieldSpacecraftState<T> state, FieldTLE<T> templateTLE)
This method uses the default data context
,
as well as EPSILON_DEFAULT
and MAX_ITERATIONS_DEFAULT
for method convergence.
T
- type of the elementstate
- Spacecraft State to convert into TLEtemplateTLE
- first guess used to get identification and estimate new TLEstateToTLE(FieldSpacecraftState, FieldTLE, TimeScale, Frame)
,
stateToTLE(FieldSpacecraftState, FieldTLE, TimeScale, Frame, double, int)
public static <T extends CalculusFieldElement<T>> FieldTLE<T> stateToTLE(FieldSpacecraftState<T> state, FieldTLE<T> templateTLE, TimeScale utc, Frame teme)
This method uses EPSILON_DEFAULT
and MAX_ITERATIONS_DEFAULT
for method convergence.
T
- type of the elementstate
- Spacecraft State to convert into TLEtemplateTLE
- first guess used to get identification and estimate new TLEutc
- the UTC time scaleteme
- the TEME frame to use for propagationstateToTLE(FieldSpacecraftState, FieldTLE, TimeScale, Frame, double, int)
public static <T extends CalculusFieldElement<T>> FieldTLE<T> stateToTLE(FieldSpacecraftState<T> state, FieldTLE<T> templateTLE, TimeScale utc, Frame teme, double epsilon, int maxIterations)
T
- type of the elementstate
- Spacecraft State to convert into TLEtemplateTLE
- first guess used to get identification and estimate new TLEutc
- the UTC time scaleteme
- the TEME frame to use for propagationepsilon
- used to compute threshold for convergence checkmaxIterations
- maximum number of iterations for convergencepublic static boolean isFormatOK(String line1, String line2)
line1
- the first elementline2
- the second elementpublic TLE toTLE()
public boolean equals(Object o)
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.
Copyright © 2002-2023 CS GROUP. All rights reserved.