public abstract class AbstractPropagatorConverter extends Object implements PropagatorConverter
PropagatorConverter
methods for propagators conversions.
This abstract class factorizes the common code for propagators conversion.
Only one method must be implemented by derived classes: getObjectiveFunction()
.
The converter uses the LevenbergMarquardtOptimizer from the commons math 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,
Collection<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,
Collection<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.
|
Collection<String> |
getAvailableParameters()
Get the available free parameters.
|
protected AbsoluteDate |
getDate()
Get the date of the initial state.
|
int |
getEvaluations()
Get the number of objective function evaluations.
|
protected Frame |
getFrame()
Get the frame of the initial state.
|
protected Collection<String> |
getFreeParameters()
Get the free parameters.
|
protected abstract MultivariateVectorFunction |
getObjectiveFunction()
Get the function computing position/velocity at sample points.
|
protected abstract MultivariateMatrixFunction |
getObjectiveFunctionJacobian()
Get the Jacobian of 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.
|
boolean |
isAvailable(String name)
Check if a parameter can be free.
|
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, Collection<String> freeParameters) throws OrekitException
convert
in interface PropagatorConverter
source
- initial propagatortimeSpan
- 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
convert
in interface PropagatorConverter
source
- initial propagatortimeSpan
- 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, Collection<String> freeParameters) throws OrekitException
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
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 Collection<String> getAvailableParameters()
public boolean isAvailable(String name)
name
- parameter name to checkpublic Propagator getAdaptedPropagator()
public double getRMS()
public int getEvaluations()
protected abstract MultivariateVectorFunction getObjectiveFunction()
protected abstract MultivariateMatrixFunction getObjectiveFunctionJacobian()
protected boolean isOnlyPosition()
protected int getTargetSize()
protected AbsoluteDate getDate()
protected Frame getFrame()
protected List<SpacecraftState> getSample()
protected Collection<String> getFreeParameters()
Copyright © 2002-2015 CS Systèmes d'information. All rights reserved.