KK
- type of the field elementpublic class FieldSpacecraftStateInterpolator<KK extends org.hipparchus.CalculusFieldElement<KK>> extends AbstractFieldTimeInterpolator<FieldSpacecraftState<KK>,KK>
The user can specify what interpolator to use for each attribute of the spacecraft state. However, at least one interpolator for either orbit or absolute position-velocity-acceleration is needed. All the other interpolators can be left to null if the user do not want to interpolate these values.
SpacecraftState
AbstractFieldTimeInterpolator.InterpolationData
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC, DEFAULT_INTERPOLATION_POINTS
Constructor and Description |
---|
FieldSpacecraftStateInterpolator(Frame outputFrame)
Simplest constructor to create a default Hermite interpolator for every spacecraft state field.
|
FieldSpacecraftStateInterpolator(Frame outputFrame,
FieldTimeInterpolator<FieldOrbit<KK>,KK> orbitInterpolator,
FieldTimeInterpolator<FieldAbsolutePVCoordinates<KK>,KK> absPVAInterpolator,
FieldTimeInterpolator<TimeStampedField<KK>,KK> massInterpolator,
FieldTimeInterpolator<FieldAttitude<KK>,KK> attitudeInterpolator,
FieldTimeInterpolator<TimeStampedField<KK>,KK> additionalStateInterpolator)
Constructor.
|
FieldSpacecraftStateInterpolator(int interpolationPoints,
double extrapolationThreshold,
Frame outputFrame,
Frame attitudeReferenceFrame)
Constructor to create a customizable Hermite interpolator for every spacecraft state field.
|
FieldSpacecraftStateInterpolator(int interpolationPoints,
double extrapolationThreshold,
Frame outputFrame,
Frame attitudeReferenceFrame,
CartesianDerivativesFilter pvaFilter,
AngularDerivativesFilter angularFilter)
Constructor.
|
FieldSpacecraftStateInterpolator(int interpolationPoints,
Frame outputFrame)
Constructor to create a customizable Hermite interpolator for every spacecraft state field.
|
FieldSpacecraftStateInterpolator(int interpolationPoints,
Frame outputFrame,
Frame attitudeReferenceFrame)
Constructor to create a customizable Hermite interpolator for every spacecraft state field.
|
addOptionalSubInterpolatorIfDefined, checkInterpolatorCompatibilityWithSampleSize, getExtrapolationThreshold, getTimeParameter, interpolate
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
interpolate, interpolate
public FieldSpacecraftStateInterpolator(Frame outputFrame)
The interpolators will have the following configuration :
DEFAULT_INTERPOLATION_POINTS
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
sAs 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).
BEWARE: output frame must be inertial if this instance is going to interpolate between tabulated spacecraft states defined by orbit, will throw an error otherwise.
outputFrame
- output framepublic FieldSpacecraftStateInterpolator(int interpolationPoints, Frame outputFrame)
The interpolators will have the following configuration :
DEFAULT_INTERPOLATION_POINTS
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
sAs 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).
BEWARE: output frame must be inertial if this instance is going to interpolate between tabulated spacecraft states defined by orbit, will throw an error otherwise.
interpolationPoints
- number of interpolation pointsoutputFrame
- output framepublic FieldSpacecraftStateInterpolator(int interpolationPoints, Frame outputFrame, Frame attitudeReferenceFrame)
The interpolators will have the following configuration :
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
sAs 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).
BEWARE: output frame must be inertial if this instance is going to interpolate between tabulated spacecraft states defined by orbit, will throw an error otherwise.
interpolationPoints
- number of interpolation pointsoutputFrame
- output frameattitudeReferenceFrame
- reference frame from which attitude is definedpublic FieldSpacecraftStateInterpolator(int interpolationPoints, double extrapolationThreshold, Frame outputFrame, Frame attitudeReferenceFrame)
The interpolators will have the following configuration :
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).
BEWARE: output frame must be inertial if this instance is going to interpolate between tabulated spacecraft states defined by orbit, will throw an error otherwise.
interpolationPoints
- number of interpolation pointsextrapolationThreshold
- extrapolation threshold beyond which the propagation will failoutputFrame
- output frameattitudeReferenceFrame
- reference frame from which attitude is definedpublic FieldSpacecraftStateInterpolator(int interpolationPoints, double extrapolationThreshold, Frame outputFrame, Frame attitudeReferenceFrame, CartesianDerivativesFilter pvaFilter, AngularDerivativesFilter angularFilter)
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).
BEWARE: output frame must be inertial if this instance is going to interpolate between tabulated spacecraft states defined by orbit, will throw an error otherwise.
interpolationPoints
- number of interpolation pointsextrapolationThreshold
- extrapolation threshold beyond which the propagation will failoutputFrame
- output framepvaFilter
- filter for derivatives from the sample to use in position-velocity-acceleration interpolationattitudeReferenceFrame
- reference frame from which attitude is definedangularFilter
- filter for derivatives from the sample to use in attitude interpolationpublic FieldSpacecraftStateInterpolator(Frame outputFrame, FieldTimeInterpolator<FieldOrbit<KK>,KK> orbitInterpolator, FieldTimeInterpolator<FieldAbsolutePVCoordinates<KK>,KK> absPVAInterpolator, FieldTimeInterpolator<TimeStampedField<KK>,KK> massInterpolator, FieldTimeInterpolator<FieldAttitude<KK>,KK> attitudeInterpolator, FieldTimeInterpolator<TimeStampedField<KK>,KK> additionalStateInterpolator)
BEWARE: output frame must be inertial if interpolated spacecraft states are defined by orbit. Throws an error otherwise.
outputFrame
- output frameorbitInterpolator
- orbit interpolatorabsPVAInterpolator
- absolute position-velocity-accelerationmassInterpolator
- mass interpolatorattitudeInterpolator
- attitude interpolatoradditionalStateInterpolator
- additional state interpolatorpublic FieldSpacecraftState<KK> interpolate(FieldAbsoluteDate<KK> interpolationDate, Collection<FieldSpacecraftState<KK>> sample)
The additional states that are interpolated are the ones already present in the first neighbor instance. The sample instances must therefore have at least the same additional states as this neighbor instance. They may have more additional states, but the extra ones will be ignored.
All the sample instances must be based on similar trajectory data, i.e. they must either all be based on
orbits or all be based on absolute position-velocity-acceleration. Any inconsistency will trigger an
OrekitIllegalArgumentException
.
interpolate
in interface FieldTimeInterpolator<FieldSpacecraftState<KK extends org.hipparchus.CalculusFieldElement<KK>>,KK extends org.hipparchus.CalculusFieldElement<KK>>
interpolate
in class AbstractFieldTimeInterpolator<FieldSpacecraftState<KK extends org.hipparchus.CalculusFieldElement<KK>>,KK extends org.hipparchus.CalculusFieldElement<KK>>
interpolationDate
- interpolation datesample
- time stamped sampleOrekitIllegalArgumentException
- if there are states defined by orbits and absolute
position-velocity-acceleration coordinatesOrekitIllegalArgumentException
- if there is no defined interpolator for given sample spacecraft state
definition typepublic List<FieldTimeInterpolator<? extends FieldTimeStamped<KK>,KK>> getSubInterpolators()
An example would be the spacecraft state interpolator which can use different interpolators for each of its attributes (orbit, absolute position-velocity-acceleration coordinates, mass...). In this case, it would return the list of all of these interpolators (or possibly all of their sub-interpolators if they were to use multiple interpolators themselves).
getSubInterpolators
in interface FieldTimeInterpolator<FieldSpacecraftState<KK extends org.hipparchus.CalculusFieldElement<KK>>,KK extends org.hipparchus.CalculusFieldElement<KK>>
getSubInterpolators
in class AbstractFieldTimeInterpolator<FieldSpacecraftState<KK extends org.hipparchus.CalculusFieldElement<KK>>,KK extends org.hipparchus.CalculusFieldElement<KK>>
public int getNbInterpolationPoints()
AbstractFieldTimeInterpolator
getNbInterpolationPoints
in interface FieldTimeInterpolator<FieldSpacecraftState<KK extends org.hipparchus.CalculusFieldElement<KK>>,KK extends org.hipparchus.CalculusFieldElement<KK>>
getNbInterpolationPoints
in class AbstractFieldTimeInterpolator<FieldSpacecraftState<KK extends org.hipparchus.CalculusFieldElement<KK>>,KK extends org.hipparchus.CalculusFieldElement<KK>>
OrekitException
- because multiple interpolator are defined so the number of interpolation points used may
differ.protected FieldSpacecraftState<KK> interpolate(AbstractFieldTimeInterpolator.InterpolationData interpolationData)
interpolate
in class AbstractFieldTimeInterpolator<FieldSpacecraftState<KK extends org.hipparchus.CalculusFieldElement<KK>>,KK extends org.hipparchus.CalculusFieldElement<KK>>
interpolationData
- interpolation datapublic Frame getOutputFrame()
public Optional<FieldTimeInterpolator<FieldOrbit<KK>,KK>> getOrbitInterpolator()
Optional
public Optional<FieldTimeInterpolator<FieldAbsolutePVCoordinates<KK>,KK>> getAbsPVAInterpolator()
Optional
public Optional<FieldTimeInterpolator<TimeStampedField<KK>,KK>> getMassInterpolator()
Optional
public Optional<FieldTimeInterpolator<FieldAttitude<KK>,KK>> getAttitudeInterpolator()
Optional
public Optional<FieldTimeInterpolator<TimeStampedField<KK>,KK>> getAdditionalStateInterpolator()
Optional
Copyright © 2002-2023 CS GROUP. All rights reserved.