public abstract class AbstractTLEFitter extends Object
Two-Line Elements are tightly linked to the SGP4/SDP4 propagation models. They cannot be used with other models and do not represent osculating orbits. When conversion is needed, the model must be considered and conversion must be done by some fitting method on a sufficient time range.
This base class factor the common code for such conversions. Different implementations correspond to different fitting algorithms.
Modifier and Type | Class and Description |
---|---|
protected class |
AbstractTLEFitter.ResidualsFunction
Internal class for computing position/velocity at sample points.
|
Modifier | Constructor and Description |
---|---|
protected |
AbstractTLEFitter(int satelliteNumberIn,
char classificationIn,
int launchYearIn,
int launchNumberIn,
String launchPieceIn,
int elementNumberIn,
int revolutionNumberAtEpochIn)
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
protected abstract double[] |
fit(double[] initial)
Find the TLE elements that minimize the mean square error for a sample of
states . |
protected double |
getPositionTolerance()
Get the desired position tolerance.
|
protected AbstractTLEFitter.ResidualsFunction |
getPVFunction()
Get the function computing position/velocity at sample points.
|
protected double[] |
getResiduals(double[] parameters)
Get the residuals for a given position/velocity/B* parameters set.
|
double |
getRMS()
Get Root Mean Square of the fitting.
|
protected double |
getRMS(double[] parameters)
Get the RMS for a given position/velocity/B* parameters set.
|
protected double[] |
getTarget()
Get the position/velocity target at sample points.
|
TLE |
getTLE()
Get the fitted Two-Lines Elements.
|
protected TLE |
getTLE(double[] parameters)
Get the TLE for a given position/velocity/B* parameters set.
|
protected double[] |
getWeight()
Get the weights for residuals.
|
TLE |
toTLE(List<SpacecraftState> states,
double positionTolerance,
boolean positionOnly,
boolean withBStar)
Find the TLE elements that minimize the mean square error for a sample of
states . |
protected AbstractTLEFitter(int satelliteNumberIn, char classificationIn, int launchYearIn, int launchNumberIn, String launchPieceIn, int elementNumberIn, int revolutionNumberAtEpochIn)
satelliteNumberIn
- satellite numberclassificationIn
- classification (U for unclassified)launchYearIn
- launch year (all digits)launchNumberIn
- launch numberlaunchPieceIn
- launch pieceelementNumberIn
- element numberrevolutionNumberAtEpochIn
- revolution number at epochpublic TLE toTLE(List<SpacecraftState> states, double positionTolerance, boolean positionOnly, boolean withBStar) throws PatriusException
states
.states
- spacecraft states sample to fitpositionTolerance
- desired position tolerancepositionOnly
- if true, consider only position data otherwise both position and
velocity are usedwithBStar
- if true, the B* coefficient must be evaluated too, otherwise
it will be forced to 0PatriusException
- if TLE cannot be computedMaxCountExceededException
- if maximal number of iterations is exceededgetTLE()
,
getRMS()
public TLE getTLE()
toTLE(List, double, boolean, boolean)
public double getRMS()
toTLE(List, double, boolean, boolean)
protected abstract double[] fit(double[] initial) throws PatriusException
states
.initial
- initial estimation parameters (position, velocity and B* if estimated)PatriusException
- if TLE cannot be computedMaxCountExceededException
- if maximal number of iterations is exceededprotected TLE getTLE(double[] parameters) throws PatriusException
parameters
- position/velocity/B* parameters setPatriusException
- thrown if inclination is negativeprotected double[] getTarget()
protected double[] getWeight()
protected double[] getResiduals(double[] parameters) throws PatriusException
parameters
- position/velocity/B* parameters setPatriusException
- if position/velocity cannot be computed at some dategetRMS(double[])
protected double getRMS(double[] parameters) throws PatriusException
parameters
- position/velocity/B* parameters setPatriusException
- if position/velocity cannot be computed at some dategetResiduals(double[])
protected AbstractTLEFitter.ResidualsFunction getPVFunction()
protected double getPositionTolerance()
Copyright © 2021 CNES. All rights reserved.