public class TLE extends Object implements TimeStamped, 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 |
---|
TLE(int satelliteNumber,
char classification,
int launchYear,
int launchNumber,
String launchPiece,
int ephemerisType,
int elementNumber,
AbsoluteDate epoch,
double meanMotion,
double meanMotionFirstDerivative,
double meanMotionSecondDerivative,
double e,
double i,
double pa,
double raan,
double meanAnomaly,
int revolutionNumberAtEpoch,
double bStar)
Simple constructor from already parsed elements.
|
TLE(int satelliteNumber,
char classification,
int launchYear,
int launchNumber,
String launchPiece,
int ephemerisType,
int elementNumber,
AbsoluteDate epoch,
double meanMotion,
double meanMotionFirstDerivative,
double meanMotionSecondDerivative,
double e,
double i,
double pa,
double raan,
double meanAnomaly,
int revolutionNumberAtEpoch,
double bStar,
TimeScale utc)
Simple constructor from already parsed elements using the given time scale as
UTC.
|
TLE(String line1,
String line2)
Simple constructor from unparsed two lines.
|
TLE(String line1,
String line2,
TimeScale utc)
Simple constructor from unparsed two lines 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.
|
AbsoluteDate |
getDate()
Get the TLE current date.
|
double |
getE()
Get the eccentricity.
|
int |
getElementNumber()
Get the element number.
|
int |
getEphemerisType()
Get the type of ephemeris.
|
double |
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.
|
double |
getMeanAnomaly()
Get the mean anomaly.
|
double |
getMeanMotion()
Get the mean motion.
|
double |
getMeanMotionFirstDerivative()
Get the mean motion first derivative.
|
double |
getMeanMotionSecondDerivative()
Get the mean motion second derivative.
|
ParameterDriver |
getParameterDriver(String name)
Get parameter driver from its name.
|
List<ParameterDriver> |
getParametersDrivers()
Get the drivers for TLE propagation SGP4 and SDP4.
|
double |
getPerigeeArgument()
Get the argument of perigee.
|
double |
getRaan()
Get Right Ascension of the Ascending node.
|
int |
getRevolutionNumberAtEpoch()
Get the revolution number.
|
int |
getSatelliteNumber()
Get the satellite id.
|
TimeScale |
getUtc()
Get the UTC time scale used to create this TLE.
|
int |
hashCode()
Get a hashcode for this tle.
|
static boolean |
isFormatOK(String line1,
String line2)
Check the lines format validity.
|
static TLE |
stateToTLE(SpacecraftState state,
TLE templateTLE)
Convert Spacecraft State into TLE.
|
static TLE |
stateToTLE(SpacecraftState state,
TLE templateTLE,
TimeScale utc,
Frame teme)
Convert Spacecraft State into TLE.
|
static TLE |
stateToTLE(SpacecraftState state,
TLE templateTLE,
TimeScale utc,
Frame teme,
double epsilon,
int maxIterations)
Convert Spacecraft State into TLE.
|
String |
toString()
Get a string representation of this TLE set.
|
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 int DEFAULT
public static final String B_STAR
@DefaultDataContext public TLE(String line1, String line2)
default data context
.
The static method isFormatOK(String, String)
should be called
before trying to build this object.
line1
- the first element (69 char String)line2
- the second element (69 char String)TLE(String, String, TimeScale)
public TLE(String line1, String line2, TimeScale utc)
The static method isFormatOK(String, String)
should be called
before trying to build this object.
line1
- the first element (69 char String)line2
- the second element (69 char String)utc
- the UTC time scale.@DefaultDataContext public TLE(int satelliteNumber, char classification, int launchYear, int launchNumber, String launchPiece, int ephemerisType, int elementNumber, AbsoluteDate epoch, double meanMotion, double meanMotionFirstDerivative, double meanMotionSecondDerivative, double e, double i, double pa, double raan, double 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 coefficientTLE(int, char, int, int, String, int, int, AbsoluteDate, double, double,
double, double, double, double, double, double, int, double, TimeScale)
public TLE(int satelliteNumber, char classification, int launchYear, int launchNumber, String launchPiece, int ephemerisType, int elementNumber, AbsoluteDate epoch, double meanMotion, double meanMotionFirstDerivative, double meanMotionSecondDerivative, double e, double i, double pa, double raan, double 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 TimeScale getUtc()
public String getLine1()
public String getLine2()
public int getSatelliteNumber()
public char getClassification()
public int getLaunchYear()
public int getLaunchNumber()
public String getLaunchPiece()
public int getEphemerisType()
public int getElementNumber()
public AbsoluteDate getDate()
getDate
in interface TimeStamped
public double getMeanMotion()
public double getMeanMotionFirstDerivative()
public double getMeanMotionSecondDerivative()
public double getE()
public double getI()
public double getPerigeeArgument()
public double getRaan()
public double 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 TLE stateToTLE(SpacecraftState state, TLE templateTLE)
This method uses the default data context
,
as well as EPSILON_DEFAULT
and MAX_ITERATIONS_DEFAULT
for method convergence.
state
- Spacecraft State to convert into TLEtemplateTLE
- first guess used to get identification and estimate new TLEstateToTLE(SpacecraftState, TLE, TimeScale, Frame)
,
stateToTLE(SpacecraftState, TLE, TimeScale, Frame, double, int)
public static TLE stateToTLE(SpacecraftState state, TLE templateTLE, TimeScale utc, Frame teme)
This method uses EPSILON_DEFAULT
and MAX_ITERATIONS_DEFAULT
for method convergence.
state
- 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(SpacecraftState, TLE, TimeScale, Frame, double, int)
public static TLE stateToTLE(SpacecraftState state, TLE templateTLE, TimeScale utc, Frame teme, double epsilon, int maxIterations)
state
- 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 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.
public int hashCode()
public List<ParameterDriver> getParametersDrivers()
public ParameterDriver getParameterDriver(String name)
name
- parameter nameCopyright © 2002-2022 CS GROUP. All rights reserved.