Class AbstractPropagatorBuilder
- java.lang.Object
-
- org.orekit.propagation.conversion.AbstractPropagatorBuilder
-
- All Implemented Interfaces:
PropagatorBuilder
- Direct Known Subclasses:
BrouwerLyddanePropagatorBuilder
,DSSTPropagatorBuilder
,EcksteinHechlerPropagatorBuilder
,EphemerisPropagatorBuilder
,KeplerianPropagatorBuilder
,NumericalPropagatorBuilder
,TLEPropagatorBuilder
public abstract class AbstractPropagatorBuilder extends Object implements PropagatorBuilder
Base class for propagator builders.- Since:
- 7.1
- Author:
- Pascal Parraud
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractPropagatorBuilder(Orbit templateOrbit, PositionAngleType positionAngleType, double positionScale, boolean addDriverForCentralAttraction)
Build a new instance.protected
AbstractPropagatorBuilder(Orbit templateOrbit, PositionAngleType positionAngleType, double positionScale, boolean addDriverForCentralAttraction, AttitudeProvider attitudeProvider)
Build a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAdditionalDerivativesProvider(AdditionalDerivativesProvider provider)
Add a set of user-specified equations to be integrated along with the orbit propagation (author Shiva Iyer).protected void
addSupportedParameters(List<ParameterDriver> drivers)
Add supported parameters.protected Orbit
createInitialOrbit()
Build an initial orbit using the current selected parameters.void
deselectDynamicParameters()
Deselects orbital and propagation drivers.protected List<AdditionalDerivativesProvider>
getAdditionalDerivativesProviders()
Get the list of additional equations.AttitudeProvider
getAttitudeProvider()
Get the attitude provider.Frame
getFrame()
Get the frame in which the orbit is propagated.AbsoluteDate
getInitialOrbitDate()
Get the date of the initial orbit.double
getMu()
Get the central attraction coefficient (µ - m³/s²) value.ParameterDriversList
getOrbitalParametersDrivers()
Get the drivers for the configurable orbital parameters.OrbitType
getOrbitType()
Get the orbit type expected for the 6 first parameters inPropagatorBuilder.buildPropagator(double[])
.PositionAngleType
getPositionAngleType()
Get the position angle type expected for the 6 first parameters inPropagatorBuilder.buildPropagator(double[])
.double
getPositionScale()
Get the position scale.ParameterDriversList
getPropagationParametersDrivers()
Get the drivers for the configurable propagation parameters.double[]
getSelectedNormalizedParameters()
Get the current value of selected normalized parameters.void
resetOrbit(Orbit newOrbit)
Reset the orbit in the propagator builder.void
setAttitudeProvider(AttitudeProvider attitudeProvider)
Set the attitude provider.protected void
setParameters(double[] normalizedParameters)
Set the selected parameters.-
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.conversion.PropagatorBuilder
buildLeastSquaresModel, buildPropagator, copy
-
-
-
-
Constructor Detail
-
AbstractPropagatorBuilder
protected AbstractPropagatorBuilder(Orbit templateOrbit, PositionAngleType positionAngleType, double positionScale, boolean addDriverForCentralAttraction)
Build a new instance.The template orbit is used as a model to
create initial orbit
. It defines the inertial frame, the central attraction coefficient, the orbit type, and is also used together with thepositionScale
to convert from thenormalized
parameters used by the callers of this builder to the real orbital parameters. The default attitude provider is aligned with the orbit's inertial frame.By default, all the
orbital parameters drivers
are selected, which means that if the builder is used for orbit determination or propagator conversion, all orbital parameters will be estimated. If only a subset of the orbital parameters must be estimated, caller must retrieve the orbital parameters by callinggetOrbitalParametersDrivers()
and then callsetSelected(false)
.- Parameters:
templateOrbit
- reference orbit from which real orbits will be builtpositionAngleType
- position angle type to usepositionScale
- scaling factor used for orbital parameters normalization (typically set to the expected standard deviation of the position)addDriverForCentralAttraction
- if true, aParameterDriver
should be set up for central attraction coefficient- Since:
- 8.0
- See Also:
AbstractPropagatorBuilder(Orbit, PositionAngleType, double, boolean, AttitudeProvider)
-
AbstractPropagatorBuilder
protected AbstractPropagatorBuilder(Orbit templateOrbit, PositionAngleType positionAngleType, double positionScale, boolean addDriverForCentralAttraction, AttitudeProvider attitudeProvider)
Build a new instance.The template orbit is used as a model to
create initial orbit
. It defines the inertial frame, the central attraction coefficient, the orbit type, and is also used together with thepositionScale
to convert from thenormalized
parameters used by the callers of this builder to the real orbital parameters.By default, all the
orbital parameters drivers
are selected, which means that if the builder is used for orbit determination or propagator conversion, all orbital parameters will be estimated. If only a subset of the orbital parameters must be estimated, caller must retrieve the orbital parameters by callinggetOrbitalParametersDrivers()
and then callsetSelected(false)
.- Parameters:
templateOrbit
- reference orbit from which real orbits will be builtpositionAngleType
- position angle type to usepositionScale
- scaling factor used for orbital parameters normalization (typically set to the expected standard deviation of the position)addDriverForCentralAttraction
- if true, aParameterDriver
should be set up for central attraction coefficientattitudeProvider
- for the propagator.- Since:
- 10.1
- See Also:
AbstractPropagatorBuilder(Orbit, PositionAngleType, double, boolean)
-
-
Method Detail
-
getOrbitType
public OrbitType getOrbitType()
Get the orbit type expected for the 6 first parameters inPropagatorBuilder.buildPropagator(double[])
.- Specified by:
getOrbitType
in interfacePropagatorBuilder
- Returns:
- orbit type to use in
PropagatorBuilder.buildPropagator(double[])
- See Also:
PropagatorBuilder.buildPropagator(double[])
,PropagatorBuilder.getPositionAngleType()
-
getPositionAngleType
public PositionAngleType getPositionAngleType()
Get the position angle type expected for the 6 first parameters inPropagatorBuilder.buildPropagator(double[])
.- Specified by:
getPositionAngleType
in interfacePropagatorBuilder
- Returns:
- position angle type to use in
PropagatorBuilder.buildPropagator(double[])
- See Also:
PropagatorBuilder.buildPropagator(double[])
,PropagatorBuilder.getOrbitType()
-
getInitialOrbitDate
public AbsoluteDate getInitialOrbitDate()
Get the date of the initial orbit.- Specified by:
getInitialOrbitDate
in interfacePropagatorBuilder
- Returns:
- date of the initial orbit
-
getFrame
public Frame getFrame()
Get the frame in which the orbit is propagated.- Specified by:
getFrame
in interfacePropagatorBuilder
- Returns:
- frame in which the orbit is propagated
-
getOrbitalParametersDrivers
public ParameterDriversList getOrbitalParametersDrivers()
Get the drivers for the configurable orbital parameters. Orbital drivers should have only 1 value estimated (1 span)- Specified by:
getOrbitalParametersDrivers
in interfacePropagatorBuilder
- Returns:
- drivers for the configurable orbital parameters
-
getPropagationParametersDrivers
public ParameterDriversList getPropagationParametersDrivers()
Get the drivers for the configurable propagation parameters.The parameters typically correspond to force models.
- Specified by:
getPropagationParametersDrivers
in interfacePropagatorBuilder
- Returns:
- drivers for the configurable propagation parameters
-
getAttitudeProvider
public AttitudeProvider getAttitudeProvider()
Get the attitude provider.- Returns:
- the attitude provider
- Since:
- 10.1
-
setAttitudeProvider
public void setAttitudeProvider(AttitudeProvider attitudeProvider)
Set the attitude provider.- Parameters:
attitudeProvider
- attitude provider- Since:
- 10.1
-
getPositionScale
public double getPositionScale()
Get the position scale.- Returns:
- the position scale used to scale the orbital drivers
-
getMu
public double getMu()
Get the central attraction coefficient (µ - m³/s²) value.- Specified by:
getMu
in interfacePropagatorBuilder
- Returns:
- the central attraction coefficient (µ - m³/s²) value
-
getSelectedNormalizedParameters
public double[] getSelectedNormalizedParameters()
Get the current value of selected normalized parameters.- Specified by:
getSelectedNormalizedParameters
in interfacePropagatorBuilder
- Returns:
- current value of selected normalized parameters
-
createInitialOrbit
protected Orbit createInitialOrbit()
Build an initial orbit using the current selected parameters.This method is a stripped down version of
PropagatorBuilder.buildPropagator(double[])
that only builds the initial orbit and not the full propagator.- Returns:
- an initial orbit
- Since:
- 8.0
-
setParameters
protected void setParameters(double[] normalizedParameters)
Set the selected parameters.- Parameters:
normalizedParameters
- normalized values for the selected parameters
-
addSupportedParameters
protected void addSupportedParameters(List<ParameterDriver> drivers)
Add supported parameters.- Parameters:
drivers
- drivers for the parameters
-
resetOrbit
public void resetOrbit(Orbit newOrbit)
Reset the orbit in the propagator builder.- Specified by:
resetOrbit
in interfacePropagatorBuilder
- Parameters:
newOrbit
- New orbit to set in the propagator builder
-
addAdditionalDerivativesProvider
public void addAdditionalDerivativesProvider(AdditionalDerivativesProvider provider)
Add a set of user-specified equations to be integrated along with the orbit propagation (author Shiva Iyer).- Parameters:
provider
- provider for additional derivatives- Since:
- 11.1
-
getAdditionalDerivativesProviders
protected List<AdditionalDerivativesProvider> getAdditionalDerivativesProviders()
Get the list of additional equations.- Returns:
- the list of additional equations
- Since:
- 11.1
-
deselectDynamicParameters
public void deselectDynamicParameters()
Deselects orbital and propagation drivers.
-
-