Class AbstractAnalyticalMatricesHarvester
- java.lang.Object
-
- org.orekit.propagation.AbstractMatricesHarvester
-
- org.orekit.propagation.analytical.AbstractAnalyticalMatricesHarvester
-
- All Implemented Interfaces:
AdditionalStateProvider
,MatricesHarvester
public abstract class AbstractAnalyticalMatricesHarvester extends AbstractMatricesHarvester implements AdditionalStateProvider
Base class harvester between two-dimensional Jacobian matrices and analytical orbit propagator.- Since:
- 11.1
- Author:
- Thomas Paulet, Bryan Cazabonne
-
-
Field Summary
-
Fields inherited from class org.orekit.propagation.AbstractMatricesHarvester
STATE_DIMENSION
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractAnalyticalMatricesHarvester(AbstractAnalyticalPropagator propagator, String stmName, RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns)
Simple constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
freezeColumnsNames()
Freeze the names of the Jacobian columns.double[]
getAdditionalState(SpacecraftState state)
Get the additional state.abstract AbstractAnalyticalGradientConverter
getGradientConverter()
Get the gradient converter related to the analytical orbit propagator.List<String>
getJacobiansColumnsNames()
Get the names of the parameters in the matrix returned byMatricesHarvester.getParametersJacobian(org.orekit.propagation.SpacecraftState)
.String
getName()
Get the name of the additional state.OrbitType
getOrbitType()
Get the orbit type used for the matrix computation.RealMatrix
getParametersJacobian(SpacecraftState state)
Get the Jacobian with respect to propagation parameters.PositionAngleType
getPositionAngleType()
Get the position angle used for the matrix computation.RealMatrix
getStateTransitionMatrix(SpacecraftState state)
Extract state transition matrix from state.void
setReferenceState(SpacecraftState reference)
Set up reference state.-
Methods inherited from class org.orekit.propagation.AbstractMatricesHarvester
getConversionJacobian, getInitialJacobianColumn, getInitialStateTransitionMatrix, getStmName
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.propagation.AdditionalStateProvider
init, yields
-
-
-
-
Constructor Detail
-
AbstractAnalyticalMatricesHarvester
protected AbstractAnalyticalMatricesHarvester(AbstractAnalyticalPropagator propagator, String stmName, RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns)
Simple constructor.The arguments for initial matrices must be compatible with the
orbit type
andposition angle
that will be used by propagator- Parameters:
propagator
- propagator bound to this harvesterstmName
- State Transition Matrix state nameinitialStm
- initial State Transition Matrix ∂Y/∂Y₀, if null (which is the most frequent case), assumed to be 6x6 identityinitialJacobianColumns
- initial columns of the Jacobians matrix with respect to parameters, if null or if some selected parameters are missing from the dictionary, the corresponding initial column is assumed to be 0
-
-
Method Detail
-
getJacobiansColumnsNames
public List<String> getJacobiansColumnsNames()
Get the names of the parameters in the matrix returned byMatricesHarvester.getParametersJacobian(org.orekit.propagation.SpacecraftState)
.Beware that the names of the parameters are fully known only once all force models have been set up and their parameters properly selected. Applications that retrieve the matrices harvester first and select the force model parameters to retrieve afterwards (but obviously before starting propagation) must take care to wait until the parameters have been set up before they call this method. Calling the method too early would return wrong results.
The names are returned in the Jacobians matrix columns order
- Specified by:
getJacobiansColumnsNames
in interfaceMatricesHarvester
- Returns:
- names of the parameters (i.e. columns) of the Jacobian matrix
-
freezeColumnsNames
public void freezeColumnsNames()
Freeze the names of the Jacobian columns.This method is called when propagation starts, i.e. when configuration is completed
- Specified by:
freezeColumnsNames
in classAbstractMatricesHarvester
-
getName
public String getName()
Get the name of the additional state.- Specified by:
getName
in interfaceAdditionalStateProvider
- Returns:
- name of the additional state (names containing "orekit" with any case are reserved for the library internal use)
-
getAdditionalState
public double[] getAdditionalState(SpacecraftState state)
Get the additional state.- Specified by:
getAdditionalState
in interfaceAdditionalStateProvider
- Parameters:
state
- spacecraft state to which additional state should correspond- Returns:
- additional state corresponding to spacecraft state
-
getStateTransitionMatrix
public RealMatrix getStateTransitionMatrix(SpacecraftState state)
Extract state transition matrix from state.- Specified by:
getStateTransitionMatrix
in interfaceMatricesHarvester
- Overrides:
getStateTransitionMatrix
in classAbstractMatricesHarvester
- Parameters:
state
- spacecraft state- Returns:
- state transition matrix, with semantics consistent with propagation,
or null if no state transition matrix is available
orbit type
.
-
getParametersJacobian
public RealMatrix getParametersJacobian(SpacecraftState state)
Get the Jacobian with respect to propagation parameters.- Specified by:
getParametersJacobian
in interfaceMatricesHarvester
- Overrides:
getParametersJacobian
in classAbstractMatricesHarvester
- Parameters:
state
- spacecraft state- Returns:
- Jacobian with respect to propagation parameters, or null if there are no parameters
-
setReferenceState
public void setReferenceState(SpacecraftState reference)
Set up reference state.This method is called whenever the global propagation reference state changes. This corresponds to the start of propagation in batch least squares orbit determination or at prediction step for each measurement in Kalman filtering. Its goal is to allow the harvester to compute some internal data. Analytical models like TLE use it to compute analytical derivatives, semi-analytical models like DSST use it to compute short periodic terms, numerical models do not use it at all.
- Specified by:
setReferenceState
in interfaceMatricesHarvester
- Overrides:
setReferenceState
in classAbstractMatricesHarvester
- Parameters:
reference
- reference state to set
-
getOrbitType
public OrbitType getOrbitType()
Get the orbit type used for the matrix computation.- Specified by:
getOrbitType
in interfaceMatricesHarvester
- Returns:
- the orbit type used for the matrix computation
-
getPositionAngleType
public PositionAngleType getPositionAngleType()
Get the position angle used for the matrix computation.Irrelevant if
MatricesHarvester.getOrbitType()
returnsOrbitType.CARTESIAN
.- Specified by:
getPositionAngleType
in interfaceMatricesHarvester
- Returns:
- the position angle used for the matrix computation
-
getGradientConverter
public abstract AbstractAnalyticalGradientConverter getGradientConverter()
Get the gradient converter related to the analytical orbit propagator.- Returns:
- the gradient converter
-
-