Class OrbitBlender
- java.lang.Object
-
- org.orekit.time.AbstractTimeInterpolator<Orbit>
-
- org.orekit.orbits.AbstractOrbitInterpolator
-
- org.orekit.orbits.OrbitBlender
-
- All Implemented Interfaces:
TimeInterpolator<Orbit>
public class OrbitBlender extends AbstractOrbitInterpolator
Orbit blender.Its purpose is to interpolate orbit state between tabulated orbit states using the concept of blending, exposed in : "Efficient Covariance Interpolation using Blending of Approximate State Error Transitions" by Sergei Tanygin, and applying it to orbit states instead of covariances.
It propagates tabulated values to the interpolating time using given propagator and then blend each propagated states using a smoothstep function. It gives especially good results as explained here compared to Hermite interpolation when time steps between tabulated values get significant (In LEO, > 10 mn for example).
In most cases, an analytical propagator would be used to quickly fill the gap between tabulated values and recreate a dense ephemeris.
However, a fully configured and accurate numerical propagator can be used to recreate an even more precise ephemeris in case the initial tabulated values were obtained from an external source.
Note that in the current implementation, the returned blended orbit is necessarily Cartesian.
- Since:
- 12.0
- Author:
- Vincent Cucchietti
- See Also:
SmoothStepFactory
,SmoothStepFactory.SmoothStepFunction
,Propagator
,AbstractAnalyticalPropagator
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.orekit.time.AbstractTimeInterpolator
AbstractTimeInterpolator.InterpolationData
-
-
Field Summary
-
Fields inherited from class org.orekit.time.AbstractTimeInterpolator
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC, DEFAULT_INTERPOLATION_POINTS
-
-
Constructor Summary
Constructors Constructor Description OrbitBlender(SmoothStepFactory.SmoothStepFunction blendingFunction, Propagator blendingPropagator, Frame outputInertialFrame)
Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Orbit
interpolate(AbstractTimeInterpolator.InterpolationData interpolationData)
Interpolate instance from given interpolation data.-
Methods inherited from class org.orekit.orbits.AbstractOrbitInterpolator
checkOrbitsConsistency, getOutputInertialFrame, interpolate
-
Methods inherited from class org.orekit.time.AbstractTimeInterpolator
addOptionalSubInterpolatorIfDefined, checkInterpolatorCompatibilityWithSampleSize, getCentralDate, getCentralDate, getExtrapolationThreshold, getNbInterpolationPoints, getSubInterpolators, getTimeParameter, interpolate
-
-
-
-
Constructor Detail
-
OrbitBlender
public OrbitBlender(SmoothStepFactory.SmoothStepFunction blendingFunction, Propagator blendingPropagator, Frame outputInertialFrame)
Default constructor.In most cases, an analytical propagator would be used to quickly fill the gap between tabulated values and recreate a dense ephemeris.
However, a fully configured and accurate numerical propagator can be used to recreate an even more precise ephemeris in case the initial tabulated values were obtained from an external source.
- Parameters:
blendingFunction
-smoothstep function
used for blendingblendingPropagator
- propagator used to propagate tabulated orbits to interpolating timeoutputInertialFrame
- output inertial frame- Throws:
OrekitException
- if output frame is not inertial- See Also:
SmoothStepFactory.SmoothStepFunction
-
-
Method Detail
-
interpolate
protected Orbit interpolate(AbstractTimeInterpolator.InterpolationData interpolationData)
Interpolate instance from given interpolation data.- Specified by:
interpolate
in classAbstractTimeInterpolator<Orbit>
- Parameters:
interpolationData
- interpolation data- Returns:
- interpolated instance from given interpolation data.
-
-