public abstract class AbstractPropagatorConverter extends Object implements PropagatorConverter
PropagatorConverter
methods for propagators conversions.
This abstract class factors the common code for propagators conversion.
Only one method must be implemented by derived classes: getObjectiveFunction()
.
The converter uses the LevenbergMarquardtOptimizer from the Hipparchus library. Different implementations correspond to different methods for computing the Jacobian.
Modifier | Constructor and Description |
---|---|
protected |
AbstractPropagatorConverter(PropagatorBuilder builder,
double threshold,
int maxIterations)
Build a new instance.
|
Modifier and Type | Method and Description |
---|---|
Propagator |
convert(List<SpacecraftState> states,
boolean positionOnly,
List<String> freeParameters)
Find the propagator that minimize the mean square error for a sample of
states . |
Propagator |
convert(List<SpacecraftState> states,
boolean positionOnly,
String... freeParameters)
Find the propagator that minimize the mean square error for a sample of
states . |
Propagator |
convert(Propagator source,
double timeSpan,
int nbPoints,
List<String> freeParameters)
Convert a propagator to another.
|
Propagator |
convert(Propagator source,
double timeSpan,
int nbPoints,
String... freeParameters)
Convert a propagator to another.
|
Propagator |
getAdaptedPropagator()
Get the adapted propagator.
|
int |
getEvaluations()
Get the number of objective function evaluations.
|
protected Frame |
getFrame()
Get the frame of the initial state.
|
protected abstract org.hipparchus.optim.nonlinear.vector.leastsquares.MultivariateJacobianFunction |
getModel()
Get the Jacobian of the function computing position/velocity at sample points.
|
protected abstract org.hipparchus.analysis.MultivariateVectorFunction |
getObjectiveFunction()
Get the function computing position/velocity at sample points.
|
double |
getRMS()
Get the Root Mean Square Deviation of the fitting.
|
protected List<SpacecraftState> |
getSample()
Get the states sample.
|
protected int |
getTargetSize()
Get the size of the target.
|
protected boolean |
isOnlyPosition()
Check if fitting uses only sample positions.
|
protected AbstractPropagatorConverter(PropagatorBuilder builder, double threshold, int maxIterations)
builder
- propagator builderthreshold
- absolute convergence threshold for optimization algorithmmaxIterations
- maximum number of iterations for fittingpublic Propagator convert(Propagator source, double timeSpan, int nbPoints, List<String> freeParameters) throws OrekitException, IllegalArgumentException
convert
in interface PropagatorConverter
source
- initial propagator (the propagator will be used for sample
generation, if it is a numerical propagator, its initial state will
be reset unless AbstractIntegratedPropagator.setResetAtEnd(boolean)
has been called beforehand)timeSpan
- time span for fittingnbPoints
- number of fitting points over time spanfreeParameters
- names of the free parametersOrekitException
- if propagator cannot be adaptedIllegalArgumentException
- if one of the parameters cannot be freepublic Propagator convert(Propagator source, double timeSpan, int nbPoints, String... freeParameters) throws OrekitException, IllegalArgumentException
convert
in interface PropagatorConverter
source
- initial propagator (the propagator will be used for sample
generation, if it is a numerical propagator, its initial state will
be reset unless AbstractIntegratedPropagator.setResetAtEnd(boolean)
has been called beforehand)timeSpan
- time span for fittingnbPoints
- number of fitting points over time spanfreeParameters
- names of the free parametersOrekitException
- if propagator cannot be adaptedIllegalArgumentException
- if one of the parameters cannot be freepublic Propagator convert(List<SpacecraftState> states, boolean positionOnly, List<String> freeParameters) throws OrekitException, IllegalArgumentException
states
.convert
in interface PropagatorConverter
states
- spacecraft states sample to fitpositionOnly
- if true, consider only position data otherwise both position and velocity are usedfreeParameters
- names of the free parametersOrekitException
- if propagator cannot be adaptedIllegalArgumentException
- if one of the parameters cannot be freepublic Propagator convert(List<SpacecraftState> states, boolean positionOnly, String... freeParameters) throws OrekitException, IllegalArgumentException
states
.convert
in interface PropagatorConverter
states
- spacecraft states sample to fitpositionOnly
- if true, consider only position data otherwise both position and velocity are usedfreeParameters
- names of the free parametersOrekitException
- if propagator cannot be adaptedIllegalArgumentException
- if one of the parameters cannot be freepublic Propagator getAdaptedPropagator()
public double getRMS()
public int getEvaluations()
protected abstract org.hipparchus.analysis.MultivariateVectorFunction getObjectiveFunction()
protected abstract org.hipparchus.optim.nonlinear.vector.leastsquares.MultivariateJacobianFunction getModel()
protected boolean isOnlyPosition()
protected int getTargetSize()
protected Frame getFrame()
protected List<SpacecraftState> getSample()
Copyright © 2002-2017 CS Systèmes d'information. All rights reserved.