Class AbstractAnalyticalMatricesHarvester
- All Implemented Interfaces:
AdditionalDataProvider<double[]>,MatricesHarvester
- Since:
- 11.1
- Author:
- Thomas Paulet, Bryan Cazabonne
-
Field Summary
Fields inherited from class org.orekit.propagation.AbstractMatricesHarvester
DEFAULT_STATE_DIMENSION -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedSimple constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidFreeze the names of the Jacobian columns.double[]getAdditionalData(SpacecraftState state) Get the additional data.abstract AbstractAnalyticalGradientConverterGet the gradient converter related to the analytical orbit propagator.Get the names of the parameters in the matrix returned byMatricesHarvester.getParametersJacobian(org.orekit.propagation.SpacecraftState).getName()Get the name of the additional data.Get the orbit type used for the matrix computation.Get the Jacobian with respect to propagation parameters.Get the position angle used for the matrix computation.Extract state transition matrix from state.protected voidsetInitialStm(String stmName, RealMatrix stm) Set the initial State Transition Matrix.voidsetReferenceState(SpacecraftState reference) Set up reference state.Methods inherited from class org.orekit.propagation.AbstractMatricesHarvester
getInitialJacobianColumn, getInitialStateTransitionMatrix, getStateDimension, getStmName, setInitialJacobianColumns, toArray, toSquareMatrixMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.propagation.AdditionalDataProvider
init, update, yieldsMethods inherited from interface org.orekit.propagation.MatricesHarvester
getStateJacobianVsBuilderParameters
-
Constructor Details
-
AbstractAnalyticalMatricesHarvester
Simple constructor.The arguments for initial matrices must be compatible with the
orbit typeandposition anglethat will be used by propagator- Parameters:
propagator- propagator bound to this harvester
-
-
Method Details
-
setInitialStm
Set the initial State Transition Matrix.The arguments for initial matrices must be compatible with the
orbit typeandposition anglethat will be used by propagator, which may be different from input and output- Overrides:
setInitialStmin classAbstractMatricesHarvester- Parameters:
stmName- State Transition Matrix state namestm- initial State Transition Matrix ∂Y/∂I₀ if null (which is the most frequent case), input and output orbit types are assumed to be identical and the matrix is assumed to be the 6x6 identity
-
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:
getJacobiansColumnsNamesin 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:
freezeColumnsNamesin classAbstractMatricesHarvester
-
getName
Get the name of the additional data.If a provider just modifies one of the basic elements (orbit, attitude or mass) without adding any new data, it should return the empty string as its name.
- Specified by:
getNamein interfaceAdditionalDataProvider<double[]>- Returns:
- name of the additional data (names containing "orekit" with any case are reserved for the library internal use)
-
getAdditionalData
Get the additional data.- Specified by:
getAdditionalDatain interfaceAdditionalDataProvider<double[]>- Parameters:
state- spacecraft state to which additional data should correspond- Returns:
- additional state corresponding to spacecraft state
-
getStateTransitionMatrix
Extract state transition matrix from state.Some propagators use an orbit type B as the propagator builder parameter, and a different type Y for the propagated orbit. Typical examples are TLE or specialized GNSS propagators that use Keplerian-like builder parameters but produce Cartesian states. This method is not aware of such parameters change, so it always computes dY/dY₀ with the same representation for the current propagated state Y and the initial state Y₀.
In order to compute dY/dB₀ where the current propagated state Y and the initial building state B₀ have different types, one should compute dY/dB₀ = dY/dY₀ dY₀/dB₀, where the first factor dY/dY₀ is given by this method and the second factor dY₀/dB₀ is given by the method
MatricesHarvester.getStateJacobianVsBuilderParameters(SpacecraftState).- Specified by:
getStateTransitionMatrixin interfaceMatricesHarvester- 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
Get the Jacobian with respect to propagation parameters.- Specified by:
getParametersJacobianin interfaceMatricesHarvester- Parameters:
state- spacecraft state- Returns:
- Jacobian with respect to propagation parameters, or null if there are no parameters
-
setReferenceState
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:
setReferenceStatein interfaceMatricesHarvester- Overrides:
setReferenceStatein classAbstractMatricesHarvester- Parameters:
reference- reference state to set
-
getOrbitType
Get the orbit type used for the matrix computation.- Specified by:
getOrbitTypein interfaceMatricesHarvester- Returns:
- the orbit type used for the matrix computation
-
getPositionAngleType
Get the position angle used for the matrix computation.Irrelevant if
MatricesHarvester.getOrbitType()returnsOrbitType.CARTESIAN.- Specified by:
getPositionAngleTypein interfaceMatricesHarvester- Returns:
- the position angle used for the matrix computation
-
getGradientConverter
Get the gradient converter related to the analytical orbit propagator.- Returns:
- the gradient converter
-