public class OrbitBlender extends AbstractOrbitInterpolator
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.
SmoothStepFactory
,
SmoothStepFactory.SmoothStepFunction
,
Propagator
,
AbstractAnalyticalPropagator
AbstractTimeInterpolator.InterpolationData
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC, DEFAULT_INTERPOLATION_POINTS
Constructor and Description |
---|
OrbitBlender(org.hipparchus.analysis.polynomials.SmoothStepFactory.SmoothStepFunction blendingFunction,
Propagator blendingPropagator,
Frame outputInertialFrame)
Default constructor.
|
Modifier and Type | Method and Description |
---|---|
protected Orbit |
interpolate(AbstractTimeInterpolator.InterpolationData interpolationData)
Interpolate instance from given interpolation data.
|
checkOrbitsConsistency, getOutputInertialFrame, interpolate
addOptionalSubInterpolatorIfDefined, checkInterpolatorCompatibilityWithSampleSize, getCentralDate, getExtrapolationThreshold, getNbInterpolationPoints, getSubInterpolators, getTimeParameter, interpolate
public OrbitBlender(org.hipparchus.analysis.polynomials.SmoothStepFactory.SmoothStepFunction blendingFunction, Propagator blendingPropagator, Frame outputInertialFrame)
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.
blendingFunction
- smoothstep function
used for
blendingblendingPropagator
- propagator used to propagate tabulated orbits to interpolating timeoutputInertialFrame
- output inertial frameOrekitException
- if output frame is not inertialSmoothStepFactory.SmoothStepFunction
protected Orbit interpolate(AbstractTimeInterpolator.InterpolationData interpolationData)
interpolate
in class AbstractTimeInterpolator<Orbit>
interpolationData
- interpolation dataCopyright © 2002-2023 CS GROUP. All rights reserved.