Class FieldOrbitHermiteInterpolator<KK extends CalculusFieldElement<KK>>
- Type Parameters:
KK- type of the field element
- All Implemented Interfaces:
FieldTimeInterpolator<FieldOrbit<KK>,KK>
Depending on given sample orbit type, the interpolation may differ :
- For Keplerian, Circular and Equinoctial orbits, the interpolated instance is created by polynomial Hermite interpolation, using derivatives when available.
- For Cartesian orbits, the interpolated instance is created using the cartesian derivatives filter given at instance construction. Hence, it will fall back to Lagrange interpolation if this instance has been designed to not use derivatives.
In any case, it should be used only with small number of interpolation points (about 10-20 points) in order to avoid Runge's phenomenon and numerical problems (including NaN appearing).
- Author:
- Luc Maisonobe, Vincent Cucchietti
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.orekit.time.AbstractFieldTimeInterpolator
AbstractFieldTimeInterpolator.InterpolationData -
Field Summary
Fields inherited from class org.orekit.time.AbstractFieldTimeInterpolator
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC, DEFAULT_INTERPOLATION_POINTS -
Constructor Summary
ConstructorsConstructorDescriptionFieldOrbitHermiteInterpolator(int interpolationPoints, double extrapolationThreshold, Frame outputInertialFrame, CartesianDerivativesFilter pvaFilter) Constructor.FieldOrbitHermiteInterpolator(int interpolationPoints, Frame outputInertialFrame) Constructor with : Default extrapolation threshold value (DEFAULT_EXTRAPOLATION_THRESHOLD_SECs) Use of position and two time derivatives during interpolation As this implementation of interpolation is polynomial, it should be used only with small number of interpolation points (about 10-20 points) in order to avoid Runge's phenomenon and numerical problems (including NaN appearing).FieldOrbitHermiteInterpolator(int interpolationPoints, Frame outputInertialFrame, CartesianDerivativesFilter pvaFilter) Constructor with default extrapolation threshold value (DEFAULT_EXTRAPOLATION_THRESHOLD_SECs).FieldOrbitHermiteInterpolator(Frame outputInertialFrame) Constructor with : Default number of interpolation points ofDEFAULT_INTERPOLATION_POINTSDefault extrapolation threshold value (DEFAULT_EXTRAPOLATION_THRESHOLD_SECs) Use of position and two time derivatives during interpolation As this implementation of interpolation is polynomial, it should be used only with small number of interpolation points (about 10-20 points) in order to avoid Runge's phenomenon and numerical problems (including NaN appearing). -
Method Summary
Modifier and TypeMethodDescriptionGet filter for derivatives from the sample to use in position-velocity-acceleration interpolation.protected FieldOrbit<KK> interpolate(AbstractFieldTimeInterpolator<FieldOrbit<KK>, KK>.InterpolationData interpolationData) Interpolate instance from given interpolation data.Methods inherited from class org.orekit.orbits.AbstractFieldOrbitInterpolator
getOutputInertialFrame, interpolateMethods inherited from class org.orekit.time.AbstractFieldTimeInterpolator
addOptionalSubInterpolatorIfDefined, checkInterpolatorCompatibilityWithSampleSize, getCentralDate, getCentralDate, getExtrapolationThreshold, getInternalNbInterpolationPoints, getNbInterpolationPoints, getSubInterpolators, getTimeParameter, interpolateMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.orekit.time.FieldTimeInterpolator
interpolate, interpolate
-
Constructor Details
-
FieldOrbitHermiteInterpolator
Constructor with :- Default number of interpolation points of
DEFAULT_INTERPOLATION_POINTS - Default extrapolation threshold value (
DEFAULT_EXTRAPOLATION_THRESHOLD_SECs) - Use of position and two time derivatives during interpolation
- Parameters:
outputInertialFrame- output inertial frame
- Default number of interpolation points of
-
FieldOrbitHermiteInterpolator
Constructor with :- Default extrapolation threshold value (
DEFAULT_EXTRAPOLATION_THRESHOLD_SECs) - Use of position and two time derivatives during interpolation
- Parameters:
interpolationPoints- number of interpolation pointsoutputInertialFrame- output inertial frame
- Default extrapolation threshold value (
-
FieldOrbitHermiteInterpolator
public FieldOrbitHermiteInterpolator(int interpolationPoints, Frame outputInertialFrame, CartesianDerivativesFilter pvaFilter) Constructor with default extrapolation threshold value (DEFAULT_EXTRAPOLATION_THRESHOLD_SECs).As this implementation of interpolation is polynomial, it should be used only with small number of interpolation points (about 10-20 points) in order to avoid Runge's phenomenon and numerical problems (including NaN appearing).
- Parameters:
interpolationPoints- number of interpolation pointsoutputInertialFrame- output inertial framepvaFilter- filter for derivatives from the sample to use in position-velocity-acceleration interpolation
-
FieldOrbitHermiteInterpolator
public FieldOrbitHermiteInterpolator(int interpolationPoints, double extrapolationThreshold, Frame outputInertialFrame, CartesianDerivativesFilter pvaFilter) Constructor.As this implementation of interpolation is polynomial, it should be used only with small number of interpolation points (about 10-20 points) in order to avoid Runge's phenomenon and numerical problems (including NaN appearing).
- Parameters:
interpolationPoints- number of interpolation pointsextrapolationThreshold- extrapolation threshold beyond which the propagation will failoutputInertialFrame- output inertial framepvaFilter- filter for derivatives from the sample to use in position-velocity-acceleration interpolation
-
-
Method Details
-
getPVAFilter
Get filter for derivatives from the sample to use in position-velocity-acceleration interpolation.- Returns:
- filter for derivatives from the sample to use in position-velocity-acceleration interpolation
-
interpolate
protected FieldOrbit<KK> interpolate(AbstractFieldTimeInterpolator<FieldOrbit<KK>, KK>.InterpolationData interpolationData) Interpolate instance from given interpolation data.Depending on given sample orbit type, the interpolation may differ :
- For Keplerian, Circular and Equinoctial orbits, the interpolated instance is created by polynomial Hermite interpolation, using derivatives when available.
- For Cartesian orbits, the interpolated instance is created using the cartesian derivatives filter given at instance construction. Hence, it will fall back to Lagrange interpolation if this instance has been designed to not use derivatives.
Ephemerisclass is a better way than using this low-level interpolation. The Ephemeris class automatically handles selection of a neighboring sub-sample with a predefined number of point from a large global sample in a thread-safe way.- Specified by:
interpolatein classAbstractFieldTimeInterpolator<FieldOrbit<KK extends CalculusFieldElement<KK>>,KK extends CalculusFieldElement<KK>> - Parameters:
interpolationData- interpolation data- Returns:
- interpolated instance for given interpolation data
-