Class 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
    • 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 blending
        blendingPropagator - propagator used to propagate tabulated orbits to interpolating time
        outputInertialFrame - output inertial frame
        Throws:
        OrekitException - if output frame is not inertial
        See Also:
        SmoothStepFactory.SmoothStepFunction