org.orekit.propagation.analytical.tle
Class AbstractTLEFitter

java.lang.Object
  extended by org.orekit.propagation.analytical.tle.AbstractTLEFitter
Direct Known Subclasses:
DifferentialOrbitConverter, LevenbergMarquardtOrbitConverter

public abstract class AbstractTLEFitter
extends Object

Abstract class for TLE/Orbit fitting.

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.

Since:
6.0
Author:
Rocca

Constructor Summary
protected AbstractTLEFitter(int satelliteNumber, char classification, int launchYear, int launchNumber, String launchPiece, int elementNumber, int revolutionNumberAtEpoch)
          Simple constructor.
 
Method Summary
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  DifferentiableMultivariateVectorFunction 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractTLEFitter

protected AbstractTLEFitter(int satelliteNumber,
                            char classification,
                            int launchYear,
                            int launchNumber,
                            String launchPiece,
                            int elementNumber,
                            int revolutionNumberAtEpoch)
Simple constructor.

Parameters:
satelliteNumber - satellite number
classification - classification (U for unclassified)
launchYear - launch year (all digits)
launchNumber - launch number
launchPiece - launch piece
elementNumber - element number
revolutionNumberAtEpoch - revolution number at epoch
Method Detail

toTLE

public TLE toTLE(List<SpacecraftState> states,
                 double positionTolerance,
                 boolean positionOnly,
                 boolean withBStar)
          throws OrekitException,
                 MaxCountExceededException
Find the TLE elements that minimize the mean square error for a sample of states.

Parameters:
states - spacecraft states sample to fit
positionTolerance - desired position tolerance
positionOnly - if true, consider only position data otherwise both position and velocity are used
withBStar - if true, the B* coefficient must be evaluated too, otherwise it will be forced to 0
Returns:
fitted TLE
Throws:
OrekitException - if TLE cannot be computed
MaxCountExceededException - if maximal number of iterations is exceeded
See Also:
getTLE(), getRMS()

getTLE

public TLE getTLE()
Get the fitted Two-Lines Elements.

Returns:
fitted Two-Lines Elements
See Also:
toTLE(List, double, boolean, boolean)

getRMS

public double getRMS()
Get Root Mean Square of the fitting.

Returns:
rms
See Also:
toTLE(List, double, boolean, boolean)

fit

protected abstract double[] fit(double[] initial)
                         throws OrekitException,
                                MaxCountExceededException
Find the TLE elements that minimize the mean square error for a sample of states.

Parameters:
initial - initial estimation parameters (position, velocity and B* if estimated)
Returns:
fitted parameters
Throws:
OrekitException - if TLE cannot be computed
MaxCountExceededException - if maximal number of iterations is exceeded

getTLE

protected TLE getTLE(double[] parameters)
Get the TLE for a given position/velocity/B* parameters set.

Parameters:
parameters - position/velocity/B* parameters set
Returns:
TLE

getTarget

protected double[] getTarget()
Get the position/velocity target at sample points.

Returns:
position/velocity target at sample points

getWeight

protected double[] getWeight()
Get the weights for residuals.

Returns:
weights for residuals

getResiduals

protected double[] getResiduals(double[] parameters)
                         throws OrekitException
Get the residuals for a given position/velocity/B* parameters set.

Parameters:
parameters - position/velocity/B* parameters set
Returns:
residuals
Throws:
OrekitException - if position/velocity cannot be computed at some date
See Also:
getRMS(double[])

getRMS

protected double getRMS(double[] parameters)
                 throws OrekitException
Get the RMS for a given position/velocity/B* parameters set.

Parameters:
parameters - position/velocity/B* parameters set
Returns:
RMS
Throws:
OrekitException - if position/velocity cannot be computed at some date
See Also:
getResiduals(double[])

getPVFunction

protected DifferentiableMultivariateVectorFunction getPVFunction()
Get the function computing position/velocity at sample points.

Returns:
function computing position/velocity at sample points

getPositionTolerance

protected double getPositionTolerance()
Get the desired position tolerance.

Returns:
position tolerance


Copyright © 2016 CNES. All Rights Reserved.