Class GNSSPropagator<O extends GNSSOrbitalElements<O>>
- Type Parameters:
O- type of the orbital elements
- All Implemented Interfaces:
Propagator,ParameterDriversProvider,PVCoordinatesProvider
AbstractAnalyticalPropagator methods for GNSS propagators.
This class allows to provide easily a subset of AbstractAnalyticalPropagator methods
for specific GNSS propagators.
- Author:
- Pascal Parraud
-
Field Summary
Fields inherited from interface org.orekit.propagation.Propagator
DEFAULT_MASS -
Constructor Summary
ConstructorsConstructorDescriptionGNSSPropagator(GNSSOrbitalElementsFactory<O> factory) Build a new instance.GNSSPropagator(SpacecraftState initialState, O nonKeplerianElements, Frame ecef, AttitudeProvider provider, double mass) Build a new instance from an initial state.GNSSPropagator(O orbitalElements, Frame eci, Frame ecef, AttitudeProvider provider, double mass) Build a new instance. -
Method Summary
Modifier and TypeMethodDescriptionstatic <O extends GNSSOrbitalElements<O>>
ObuildOrbitalElements(SpacecraftState initialState, O nonKeplerianElements, NonKeplerianDriversFactory driversFactory, Frame ecef, AttitudeProvider provider, double mass) Build orbital elements from initial state.protected AbstractMatricesHarvestercreateHarvester(String stmName, RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns) Create the harvester suitable for propagator.Get the factory for non-Keplerian elements drivers.getECEF()Gets the Earth Centered Earth Fixed frame used to propagate GNSS orbits according to the Interface Control Document.getECI()Gets the Earth Centered Inertial frame used to propagate the orbit.getFrame()Get the frame in which the orbit is propagated.Get the names of the parameters in the matrix returned byMatricesHarvester.getParametersJacobian(org.orekit.propagation.SpacecraftState).protected doublegetMass(AbsoluteDate date) Get the mass.doublegetMU()Gets the Earth gravity coefficient used for GNSS propagation.Get the underlying GNSS propagation orbital elements.Get the drivers for parameters.propagateInEcef(AbsoluteDate date) Gets the PVCoordinates of the GNSS SV inECEF frame.propagateOrbit(AbsoluteDate date) Extrapolate an orbit up to a specific target date.voidresetInitialState(SpacecraftState state) Reset the propagator initial state.protected voidresetIntermediateState(SpacecraftState state, boolean forward) Reset an intermediate state.Methods inherited from class org.orekit.propagation.analytical.AbstractAnalyticalPropagator
acceptStep, addEventDetector, basicPropagate, clearEventsDetectors, clearMatricesComputation, getEphemerisGenerator, getEventDetectors, getPvProvider, propagateMethods inherited from class org.orekit.propagation.AbstractPropagator
addAdditionalDataProvider, getAdditionalDataProviders, getAttitudeProvider, getBaseInitialState, getHarvester, getInitialState, getManagedAdditionalData, getMultiplexer, getStartDate, initializeAdditionalData, initializePropagation, isAdditionalDataManaged, propagate, removeAdditionalDataProvider, setAttitudeProvider, setStartDate, setupMatricesComputation, stateChanged, updateAdditionalData, updateUnmanagedDataMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.utils.ParameterDriversProvider
getNbParametersDriversValue, getParameterDriver, getParameterDriverWithSubstring, getParameters, getParameters, getParameters, getParameters, getParametersAllValues, getParametersAllValues, isSupportedMethods inherited from interface org.orekit.propagation.Propagator
clearStepHandlers, getPosition, getPVCoordinates, getVelocity, setStepHandler, setStepHandler
-
Constructor Details
-
GNSSPropagator
Build a new instance.Beware that since GNSS orbital elements refer to an Earth frame frozen at a specific date to become an inertial frame, the factory date must have been initialized properly (by calling
GNSSOrbitalElementsFactory.setTimeOfEphemeris(GNSSDate)). Setting the date allows the frozen frame to be set properly, otherwise a null pointer exception will be thrown when the propagator builder attempts to use the frame.The attitude provider is set by default to be aligned with the provided inertial frame. This can be changed (typically to
GenericGNSS) after construction by callingsetAttitudeProviderThe mass is set to the
DEFAULT_MASS.- Parameters:
factory- factory for the elements and frames- Since:
- 14.0
-
GNSSPropagator
public GNSSPropagator(O orbitalElements, Frame eci, Frame ecef, AttitudeProvider provider, double mass) Build a new instance.- Parameters:
orbitalElements- GNSS orbital elementseci- Earth Centered Inertial frameecef- Earth Centered Earth Fixed frameprovider- attitude providermass- satellite mass (kg)
-
GNSSPropagator
public GNSSPropagator(SpacecraftState initialState, O nonKeplerianElements, Frame ecef, AttitudeProvider provider, double mass) Build a new instance from an initial state.The Keplerian elements already present in the
nonKeplerianElementsargument will be ignored as it is theinitialStateargument that will be used to build the complete orbital elements of the propagator- Parameters:
initialState- initial statenonKeplerianElements- non-Keplerian orbital elements (the Keplerian orbital elements will be ignored)ecef- Earth Centered Earth Fixed frameprovider- attitude providermass- spacecraft mass- Since:
- 13.0
-
-
Method Details
-
getParametersDrivers
Get the drivers for parameters.- Specified by:
getParametersDriversin interfaceParameterDriversProvider- Returns:
- drivers for parameters
-
getDriversFactory
Get the factory for non-Keplerian elements drivers.- Returns:
- factory for non-Keplerian elements drivers
-
getECI
Gets the Earth Centered Inertial frame used to propagate the orbit.- Returns:
- the ECI frame
-
getECEF
Gets the Earth Centered Earth Fixed frame used to propagate GNSS orbits according to the Interface Control Document.- Returns:
- the ECEF frame
-
getMU
public double getMU()Gets the Earth gravity coefficient used for GNSS propagation.- Returns:
- the Earth gravity coefficient.
-
getOrbitalElements
Get the underlying GNSS propagation orbital elements.- Returns:
- the underlying GNSS orbital elements
- Since:
- 13.0
-
createHarvester
protected AbstractMatricesHarvester createHarvester(String stmName, RealMatrix initialStm, DoubleArrayDictionary initialJacobianColumns) Create the harvester suitable for propagator.- Overrides:
createHarvesterin classAbstractPropagator- Parameters:
stmName- 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- Returns:
- harvester to retrieve computed matrices during and after propagation
- Since:
- 13.0
-
getJacobiansColumnsNames
Get the names of the parameters in the matrix returned byMatricesHarvester.getParametersJacobian(org.orekit.propagation.SpacecraftState).- Overrides:
getJacobiansColumnsNamesin classAbstractAnalyticalPropagator- Returns:
- names of the parameters (i.e. columns) of the Jacobian matrix
- Since:
- 13.0
-
propagateOrbit
Extrapolate an orbit up to a specific target date.- Specified by:
propagateOrbitin classAbstractAnalyticalPropagator- Parameters:
date- target date for the orbit- Returns:
- extrapolated parameters
-
propagateInEcef
Gets the PVCoordinates of the GNSS SV inECEF frame.The algorithm uses automatic differentiation to compute velocity and acceleration.
- Parameters:
date- the computation date- Returns:
- the GNSS SV PVCoordinates in
ECEF frame
-
getFrame
Get the frame in which the orbit is propagated.The propagation frame is the definition frame of the initial state, so this method should be called after this state has been set, otherwise it may return null.
- Specified by:
getFramein interfacePropagator- Overrides:
getFramein classAbstractPropagator- Returns:
- frame in which the orbit is propagated
- See Also:
-
getMass
Get the mass.- Specified by:
getMassin classAbstractAnalyticalPropagator- Parameters:
date- target date for the orbit- Returns:
- mass mass
-
resetInitialState
Reset the propagator initial state.- Specified by:
resetInitialStatein interfacePropagator- Overrides:
resetInitialStatein classAbstractPropagator- Parameters:
state- new initial state to consider (without additional data)
-
resetIntermediateState
Reset an intermediate state.- Specified by:
resetIntermediateStatein classAbstractAnalyticalPropagator- Parameters:
state- new intermediate state to considerforward- if true, the intermediate state is valid for propagations after itself
-
buildOrbitalElements
public static <O extends GNSSOrbitalElements<O>> O buildOrbitalElements(SpacecraftState initialState, O nonKeplerianElements, NonKeplerianDriversFactory driversFactory, Frame ecef, AttitudeProvider provider, double mass) Build orbital elements from initial state.This method is roughly the inverse of
propagateInEcef(AbsoluteDate), except it starts from a state in inertial frame- Type Parameters:
O- type of the orbital elements (non-field version)- Parameters:
initialState- initial statenonKeplerianElements- non-Keplerian orbital elements (the Keplerian orbital elements will be overridden)driversFactory- factory for non-Keplerian driversecef- Earth Centered Earth Fixed frameprovider- attitude providermass- satellite mass (kg)- Returns:
- orbital elements that generate the
initialStatewhen used with a propagator - Since:
- 13.0
-