public class SpacecraftStateInterpolator extends AbstractTimeInterpolator<SpacecraftState>
用户可以指定每个太空船状态属性使用什么插值器。但是,至少需要一个轨道或绝对位置-速度-加速度的插值器。如果用户不想对这些值进行插值,所有其他插值器都可以保留为空。
SpacecraftState
AbstractTimeInterpolator.InterpolationData
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC, DEFAULT_INTERPOLATION_POINTS
Constructor and Description |
---|
SpacecraftStateInterpolator(Frame outputFrame)
创建默认Hermite插值器以创建每个太空船状态字段的最简单构造函数。
|
SpacecraftStateInterpolator(Frame outputFrame, TimeInterpolator<Orbit> orbitInterpolator, TimeInterpolator<AbsolutePVCoordinates> absPVAInterpolator, TimeInterpolator<TimeStampedDouble> massInterpolator, TimeInterpolator<Attitude> attitudeInterpolator, TimeInterpolator<TimeStampedDouble> additionalStateInterpolator)
构造函数:默认插值点数为 DEFAULT_INTERPOLATION_POINTS ,默认外推阈值为DEFAULT_EXTRAPOLATION_THRESHOLD_SEC 秒
|
SpacecraftStateInterpolator(int interpolationPoints, double extrapolationThreshold, Frame outputFrame, Frame attitudeReferenceFrame)
创建可定制的Hermite插值器以创建每个太空船状态字段的构造函数。
|
SpacecraftStateInterpolator(int interpolationPoints, double extrapolationThreshold, Frame outputFrame, Frame attitudeReferenceFrame, CartesianDerivativesFilter pvaFilter, AngularDerivativesFilter angularFilter)
创建可定制的Hermite插值器以创建每个太空船状态字段的构造函数。
|
SpacecraftStateInterpolator(int interpolationPoints, double extrapolationThreshold, Frame outputFrame, TimeInterpolator<Orbit> orbitInterpolator, TimeInterpolator<AbsolutePVCoordinates> absPVAInterpolator, TimeInterpolator<TimeStampedDouble> massInterpolator, TimeInterpolator<Attitude> attitudeInterpolator, TimeInterpolator<TimeStampedDouble> additionalStateInterpolator)
构造函数。
|
SpacecraftStateInterpolator(int interpolationPoints, Frame outputFrame)
创建可定制的Hermite插值器以创建每个太空船状态字段的构造函数。
|
SpacecraftStateInterpolator(int interpolationPoints, Frame outputFrame, Frame attitudeReferenceFrame)
创建可定制的Hermite插值器以创建每个太空船状态字段的构造函数。
|
addOptionalSubInterpolatorIfDefined, checkInterpolatorCompatibilityWithSampleSize, getCentralDate, getExtrapolationThreshold, getNbInterpolationPoints, getTimeParameter, interpolate
public SpacecraftStateInterpolator(Frame outputFrame)
插值器将具有以下配置:
DEFAULT_INTERPOLATION_POINTS
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
秒由于此插值的实现是多项式的,应该仅在插值点数较小(约10-20点)时使用,以避免龙格现象和数值问题(包括NaN出现)。
注意:如果此实例将在轨道定义的表格化太空船状态之间进行插值,则输出参考系必须是惯性的,否则将引发错误。
outputFrame
- 输出参考系
AbstractTimeInterpolator
public SpacecraftStateInterpolator(int interpolationPoints, Frame outputFrame)
插值器将具有以下配置:
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
秒由于此插值的实现是多项式的,应该仅在插值点数较小(约10-20点)时使用,以避免龙格现象和数值问题(包括NaN出现)。
注意:如果此实例将在轨道定义的表格化太空船状态之间进行插值,则输出参考系必须是惯性的,否则将引发错误。
interpolationPoints
- 插值点数
outputFrame
- 输出参考系
AbstractTimeInterpolator
public SpacecraftStateInterpolator(int interpolationPoints, Frame outputFrame, Frame attitudeReferenceFrame)
插值器将具有以下配置:
DEFAULT_EXTRAPOLATION_THRESHOLD_SEC
秒由于此插值的实现是多项式的,应该仅在插值点数较小(约10-20点)时使用,以避免龙格现象和数值问题(包括NaN出现)。
注意:如果此实例将在轨道定义的表格化太空船状态之间进行插值,则输出参考系必须是惯性的,否则将引发错误。
interpolationPoints
- 插值点数
outputFrame
- 输出参考系
attitudeReferenceFrame
- 定义姿态的参考系
AbstractTimeInterpolator
public SpacecraftStateInterpolator(int interpolationPoints, double extrapolationThreshold, Frame outputFrame, Frame attitudeReferenceFrame)
插值器将具有以下配置:
由于此插值的实现是多项式的,应该仅在插值点数较小(约10-20点)时使用,以避免龙格现象和数值问题(包括NaN出现)。
注意:如果此实例将在轨道定义的表格化太空船状态之间进行插值,则输出参考系必须是惯性的,否则将引发错误。
interpolationPoints
- 插值点数
extrapolationThreshold
- 超出此阈值将导致传播失败的外推阈值
outputFrame
- 输出参考系
attitudeReferenceFrame
- 定义姿态的参考系
public SpacecraftStateInterpolator(int interpolationPoints, double extrapolationThreshold, Frame outputFrame, Frame attitudeReferenceFrame, CartesianDerivativesFilter pvaFilter, AngularDerivativesFilter angularFilter)
由于此插值的实现是多项式的,应该仅在插值点数较小(约10-20点)时使用,以避免龙格现象和数值问题(包括NaN出现)。
注意:如果此实例将在轨道定义的表格化太空船状态之间进行插值,则输出参考系必须是惯性的,否则将引发错误。
interpolationPoints
- 插值点数
extrapolationThreshold
- 超出此阈值将导致传播失败的外推阈值
outputFrame
- 输出参考系
attitudeReferenceFrame
- 定义姿态的参考系
pvaFilter
- 用于在绝对位置-速度-加速度插值中使用的样本导数的过滤器
angularFilter
- 用于在姿态插值中使用的样本导数的过滤器
public SpacecraftStateInterpolator(Frame outputFrame, TimeInterpolator<Orbit> orbitInterpolator, TimeInterpolator<AbsolutePVCoordinates> absPVAInterpolator, TimeInterpolator<TimeStampedDouble> massInterpolator, TimeInterpolator<Attitude> attitudeInterpolator, TimeInterpolator<TimeStampedDouble> additionalStateInterpolator)
至少需要一个轨道或绝对位置-速度-加速度的插值器。如果用户不想对这些值进行插值,所有其他插值器都可以保留为空。
注意:如果插值的太空船状态由轨道定义,则输出参考系必须是惯性的。否则将引发错误。
注意:用户需要检查输入插值器的一致性。
outputFrame
- 输出参考系(如果用户计划使用轨道插值器,则为惯性)
orbitInterpolator
- 轨道插值器(如果定义了absPVAInterpolator,则可以为空)
absPVAInterpolator
- 绝对位置-速度-加速度插值器(如果定义了轨道插值器,则可以为空)
massInterpolator
- 质量插值器(可以为空)
attitudeInterpolator
- 姿态插值器(可以为空)
additionalStateInterpolator
- 附加状态插值器(可以为空)
AbstractTimeInterpolator
public SpacecraftStateInterpolator(int interpolationPoints, double extrapolationThreshold, Frame outputFrame, TimeInterpolator<Orbit> orbitInterpolator, TimeInterpolator<AbsolutePVCoordinates> absPVAInterpolator, TimeInterpolator<TimeStampedDouble> massInterpolator, TimeInterpolator<Attitude> attitudeInterpolator, TimeInterpolator<TimeStampedDouble> additionalStateInterpolator)
至少需要一个轨道或绝对位置-速度-加速度的插值器。如果用户不想对这些值进行插值,所有其他插值器都可以保留为空。
注意:如果插值的太空船状态由轨道定义,则输出参考系必须是惯性的。否则将引发错误。
注意:用户需要检查输入插值器的一致性。
interpolationPoints
- 插值点的数量
extrapolationThreshold
- 超出此阈值的外推将导致传播失败
outputFrame
- 输出参考系(如果用户计划使用轨道插值器,则为惯性参考系)
orbitInterpolator
- 轨道插值器(如果定义了absPVAInterpolator,则可以为null)
absPVAInterpolator
- 绝对位置-速度-加速度插值器(如果定义了轨道插值器,则可以为null)
massInterpolator
- 质量插值器(可以为null)
attitudeInterpolator
- 姿态插值器(可以为null)
additionalStateInterpolator
- 附加状态插值器(可以为null)
public static void checkSampleAndInterpolatorConsistency(List<SpacecraftState> sample, boolean orbitInterpolatorIsPresent, boolean absPVInterpolatorIsPresent)
sample
- 样本(非空)
orbitInterpolatorIsPresent
- 标志,定义是否为此实例定义了轨道插值器
absPVInterpolatorIsPresent
- 标志,定义是否为此实例定义了绝对位置-速度-加速度插值器
OrekitIllegalArgumentException
- 如果给定样本航天器状态定义类型没有定义插值器
public static void checkStatesDefinitionsConsistency(List<SpacecraftState> states)
states
- 航天器状态样本
public SpacecraftState interpolate(AbsoluteDate interpolationDate, Collection<SpacecraftState> sample)
要插值的附加状态是已经存在于第一个邻居实例中的状态。因此,样本实例必须至少具有与此邻居实例相同的附加状态。它们可能具有更多的附加状态,但额外的状态将被忽略。
所有样本实例必须基于类似的轨迹数据,即它们必须全部基于轨道或全部基于绝对位置-速度-加速度。任何不一致都将触发一个OrekitIllegalArgumentException
。
interpolate
在接口 TimeInterpolator<SpacecraftState>
interpolate
在类 AbstractTimeInterpolator<SpacecraftState>
interpolationDate
- 插值日期
sample
- 时间戳样本
OrekitIllegalArgumentException
- 如果存在由轨道和绝对位置-速度-加速度坐标定义的状态
OrekitIllegalArgumentException
- 如果给定样本航天器状态定义类型没有定义插值器
public List<TimeInterpolator<? extends TimeStamped>> getSubInterpolators()
例如,航天器状态插值器可以为其每个属性(轨道、绝对位置-速度-加速度坐标、质量等)使用不同的插值器。在这种情况下,它将返回所有这些插值器的列表(或者如果它们要使用多个插值器本身,则可能返回所有这些插值器的子插值器)。
getSubInterpolators
在接口 TimeInterpolator<SpacecraftState>
getSubInterpolators
在类 AbstractTimeInterpolator<SpacecraftState>
protected SpacecraftState interpolate(AbstractTimeInterpolator.InterpolationData interpolationData)
interpolate
在类 AbstractTimeInterpolator<SpacecraftState>
interpolationData
- 插值数据
public Frame getOutputFrame()
public Optional<TimeInterpolator<Orbit>> getOrbitInterpolator()
Optional
public Optional<TimeInterpolator<AbsolutePVCoordinates>> getAbsPVAInterpolator()
Optional
public Optional<TimeInterpolator<TimeStampedDouble>> getMassInterpolator()
Optional
public Optional<TimeInterpolator<Attitude>> getAttitudeInterpolator()
Optional
public Optional<TimeInterpolator<TimeStampedDouble>> getAdditionalStateInterpolator()
Optional
Copyright © 2002-2023 CS GROUP. All rights reserved.