T
- the type of the field elementspublic class TimeStampedFieldPVCoordinates<T extends RealFieldElement<T>> extends FieldPVCoordinates<T>
Modifier and Type | Method and Description |
---|---|
FieldAbsoluteDate<T> |
getDate()
Get the date.
|
static <T extends RealFieldElement<T>> |
interpolate(FieldAbsoluteDate<T> date,
CartesianDerivativesFilter filter,
Collection<TimeStampedFieldPVCoordinates<T>> sample)
Interpolate position-velocity.
|
static <T extends RealFieldElement<T>> |
interpolate(FieldAbsoluteDate<T> date,
CartesianDerivativesFilter filter,
Stream<TimeStampedFieldPVCoordinates<T>> sample)
Interpolate position-velocity.
|
TimeStampedFieldPVCoordinates<T> |
shiftedBy(double dt)
Get a time-shifted state.
|
TimeStampedFieldPVCoordinates<T> |
shiftedBy(T dt)
Get a time-shifted state.
|
String |
toString()
Return a string representation of this position/velocity pair.
|
TimeStampedPVCoordinates |
toTimeStampedPVCoordinates()
Convert to a constant position-velocity.
|
crossProduct, estimateVelocity, getAcceleration, getAngularVelocity, getMomentum, getPosition, getVelocity, getZero, negate, normalize, toDerivativeStructurePV, toDerivativeStructureVector, toPVCoordinates
public TimeStampedFieldPVCoordinates(AbsoluteDate date, FieldVector3D<T> position, FieldVector3D<T> velocity, FieldVector3D<T> acceleration)
date
- coordinates dateposition
- the position vector (m)velocity
- the velocity vector (m/s)acceleration
- the acceleration vector (m/s²)public TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, FieldVector3D<T> position, FieldVector3D<T> velocity, FieldVector3D<T> acceleration)
date
- coordinates dateposition
- the position vector (m)velocity
- the velocity vector (m/s)acceleration
- the acceleration vector (m/s²)public TimeStampedFieldPVCoordinates(AbsoluteDate date, FieldPVCoordinates<T> pv)
Build a PVCoordinates from another one at a given date
The PVCoordinates built will be pv
date
- date of the built coordinatespv
- base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, FieldPVCoordinates<T> pv)
Build a PVCoordinates from another one at a given date
The PVCoordinates built will be pv
date
- date of the built coordinatespv
- base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(AbsoluteDate date, double a, FieldPVCoordinates<T> pv)
Build a PVCoordinates from another one and a scale factor.
The PVCoordinates built will be a * pv
date
- date of the built coordinatesa
- scale factorpv
- base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, double a, FieldPVCoordinates<T> pv)
Build a PVCoordinates from another one and a scale factor.
The PVCoordinates built will be a * pv
date
- date of the built coordinatesa
- scale factorpv
- base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(AbsoluteDate date, T a, FieldPVCoordinates<T> pv)
Build a PVCoordinates from another one and a scale factor.
The PVCoordinates built will be a * pv
date
- date of the built coordinatesa
- scale factorpv
- base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, T a, FieldPVCoordinates<T> pv)
Build a PVCoordinates from another one and a scale factor.
The PVCoordinates built will be a * pv
date
- date of the built coordinatesa
- scale factorpv
- base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(AbsoluteDate date, T a, PVCoordinates pv)
Build a PVCoordinates from another one and a scale factor.
The PVCoordinates built will be a * pv
date
- date of the built coordinatesa
- scale factorpv
- base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, T a, PVCoordinates pv)
Build a PVCoordinates from another one and a scale factor.
The PVCoordinates built will be a * pv
date
- date of the built coordinatesa
- scale factorpv
- base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(AbsoluteDate date, FieldPVCoordinates<T> start, FieldPVCoordinates<T> end)
Build a relative PVCoordinates from a start and an end position.
The PVCoordinates built will be end - start.
date
- date of the built coordinatesstart
- Starting PVCoordinatesend
- ending PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, FieldPVCoordinates<T> start, FieldPVCoordinates<T> end)
Build a relative PVCoordinates from a start and an end position.
The PVCoordinates built will be end - start.
date
- date of the built coordinatesstart
- Starting PVCoordinatesend
- ending PVCoordinatespublic TimeStampedFieldPVCoordinates(AbsoluteDate date, double a1, FieldPVCoordinates<T> pv1, double a2, FieldPVCoordinates<T> pv2)
Build a PVCoordinates from two other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, double a1, FieldPVCoordinates<T> pv1, double a2, FieldPVCoordinates<T> pv2)
Build a PVCoordinates from two other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(AbsoluteDate date, T a1, FieldPVCoordinates<T> pv1, T a2, FieldPVCoordinates<T> pv2)
Build a PVCoordinates from two other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, T a1, FieldPVCoordinates<T> pv1, T a2, FieldPVCoordinates<T> pv2)
Build a PVCoordinates from two other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(AbsoluteDate date, T a1, PVCoordinates pv1, T a2, PVCoordinates pv2)
Build a PVCoordinates from two other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, T a1, PVCoordinates pv1, T a2, PVCoordinates pv2)
Build a PVCoordinates from two other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(AbsoluteDate date, double a1, FieldPVCoordinates<T> pv1, double a2, FieldPVCoordinates<T> pv2, double a3, FieldPVCoordinates<T> pv3)
Build a PVCoordinates from three other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatesa3
- third scale factorpv3
- third base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, double a1, FieldPVCoordinates<T> pv1, double a2, FieldPVCoordinates<T> pv2, double a3, FieldPVCoordinates<T> pv3)
Build a PVCoordinates from three other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatesa3
- third scale factorpv3
- third base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(AbsoluteDate date, T a1, FieldPVCoordinates<T> pv1, T a2, FieldPVCoordinates<T> pv2, T a3, FieldPVCoordinates<T> pv3)
Build a PVCoordinates from three other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatesa3
- third scale factorpv3
- third base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, T a1, FieldPVCoordinates<T> pv1, T a2, FieldPVCoordinates<T> pv2, T a3, FieldPVCoordinates<T> pv3)
Build a PVCoordinates from three other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatesa3
- third scale factorpv3
- third base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(AbsoluteDate date, T a1, PVCoordinates pv1, T a2, PVCoordinates pv2, T a3, PVCoordinates pv3)
Build a PVCoordinates from three other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatesa3
- third scale factorpv3
- third base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, T a1, PVCoordinates pv1, T a2, PVCoordinates pv2, T a3, PVCoordinates pv3)
Build a PVCoordinates from three other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatesa3
- third scale factorpv3
- third base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(AbsoluteDate date, double a1, FieldPVCoordinates<T> pv1, double a2, FieldPVCoordinates<T> pv2, double a3, FieldPVCoordinates<T> pv3, double a4, FieldPVCoordinates<T> pv4)
Build a PVCoordinates from four other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatesa3
- third scale factorpv3
- third base (unscaled) PVCoordinatesa4
- fourth scale factorpv4
- fourth base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, double a1, FieldPVCoordinates<T> pv1, double a2, FieldPVCoordinates<T> pv2, double a3, FieldPVCoordinates<T> pv3, double a4, FieldPVCoordinates<T> pv4)
Build a PVCoordinates from four other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatesa3
- third scale factorpv3
- third base (unscaled) PVCoordinatesa4
- fourth scale factorpv4
- fourth base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(AbsoluteDate date, T a1, FieldPVCoordinates<T> pv1, T a2, FieldPVCoordinates<T> pv2, T a3, FieldPVCoordinates<T> pv3, T a4, FieldPVCoordinates<T> pv4)
Build a PVCoordinates from four other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatesa3
- third scale factorpv3
- third base (unscaled) PVCoordinatesa4
- fourth scale factorpv4
- fourth base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, T a1, FieldPVCoordinates<T> pv1, T a2, FieldPVCoordinates<T> pv2, T a3, FieldPVCoordinates<T> pv3, T a4, FieldPVCoordinates<T> pv4)
Build a PVCoordinates from four other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatesa3
- third scale factorpv3
- third base (unscaled) PVCoordinatesa4
- fourth scale factorpv4
- fourth base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(AbsoluteDate date, T a1, PVCoordinates pv1, T a2, PVCoordinates pv2, T a3, PVCoordinates pv3, T a4, PVCoordinates pv4)
Build a PVCoordinates from four other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatesa3
- third scale factorpv3
- third base (unscaled) PVCoordinatesa4
- fourth scale factorpv4
- fourth base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, T a1, PVCoordinates pv1, T a2, PVCoordinates pv2, T a3, PVCoordinates pv3, T a4, PVCoordinates pv4)
Build a PVCoordinates from four other ones and corresponding scale factors.
The PVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatesa3
- third scale factorpv3
- third base (unscaled) PVCoordinatesa4
- fourth scale factorpv4
- fourth base (unscaled) PVCoordinatespublic TimeStampedFieldPVCoordinates(FieldAbsoluteDate<T> date, FieldVector3D<FieldDerivativeStructure<T>> p)
FieldVector3D
<FieldDerivativeStructure
>.
The vector components must have time as their only derivation parameter and have consistent derivation orders.
date
- date of the built coordinatesp
- vector with time-derivatives embedded within the coordinatespublic FieldAbsoluteDate<T> getDate()
public TimeStampedFieldPVCoordinates<T> shiftedBy(double dt)
The state can be slightly shifted to close dates. This shift is based on a simple linear model. It is not intended as a replacement for proper orbit propagation (it is not even Keplerian!) but should be sufficient for either small time shifts or coarse accuracy.
shiftedBy
in interface TimeShiftable<FieldPVCoordinates<T extends RealFieldElement<T>>>
shiftedBy
in class FieldPVCoordinates<T extends RealFieldElement<T>>
dt
- time shift in secondspublic TimeStampedFieldPVCoordinates<T> shiftedBy(T dt)
The state can be slightly shifted to close dates. This shift is based on a simple linear model. It is not intended as a replacement for proper orbit propagation (it is not even Keplerian!) but should be sufficient for either small time shifts or coarse accuracy.
shiftedBy
in class FieldPVCoordinates<T extends RealFieldElement<T>>
dt
- time shift in secondspublic static <T extends RealFieldElement<T>> TimeStampedFieldPVCoordinates<T> interpolate(FieldAbsoluteDate<T> date, CartesianDerivativesFilter filter, Collection<TimeStampedFieldPVCoordinates<T>> sample)
The interpolated instance is created by polynomial Hermite interpolation ensuring velocity remains the exact derivative of position.
Note that even if first time derivatives (velocities) from sample can be ignored, the interpolated instance always includes interpolated derivatives. This feature can be used explicitly to compute these derivatives when it would be too complex to compute them from an analytical formula: just compute a few sample points from the explicit formula and set the derivatives to zero in these sample points, then use interpolation to add derivatives consistent with the positions.
T
- the type of the field elementsdate
- interpolation datefilter
- filter for derivatives from the sample to use in interpolationsample
- sample points on which interpolation should be donepublic static <T extends RealFieldElement<T>> TimeStampedFieldPVCoordinates<T> interpolate(FieldAbsoluteDate<T> date, CartesianDerivativesFilter filter, Stream<TimeStampedFieldPVCoordinates<T>> sample)
The interpolated instance is created by polynomial Hermite interpolation ensuring velocity remains the exact derivative of position.
Note that even if first time derivatives (velocities) from sample can be ignored, the interpolated instance always includes interpolated derivatives. This feature can be used explicitly to compute these derivatives when it would be too complex to compute them from an analytical formula: just compute a few sample points from the explicit formula and set the derivatives to zero in these sample points, then use interpolation to add derivatives consistent with the positions.
T
- the type of the field elementsdate
- interpolation datefilter
- filter for derivatives from the sample to use in interpolationsample
- sample points on which interpolation should be donepublic TimeStampedPVCoordinates toTimeStampedPVCoordinates()
public String toString()
toString
in class FieldPVCoordinates<T extends RealFieldElement<T>>
Copyright © 2002-2019 CS Systèmes d'information. All rights reserved.