public class TimeStampedPVCoordinates extends PVCoordinates implements TimeStamped
ZERO
Constructor and Description |
---|
TimeStampedPVCoordinates(AbsoluteDate dateIn,
double a,
PVCoordinates pv)
Multiplicative constructor
|
TimeStampedPVCoordinates(AbsoluteDate dateIn,
double a1,
PVCoordinates pv1,
double a2,
PVCoordinates pv2)
Linear constructor
|
TimeStampedPVCoordinates(AbsoluteDate dateIn,
double a1,
PVCoordinates pv1,
double a2,
PVCoordinates pv2,
double a3,
PVCoordinates pv3)
Linear constructor
|
TimeStampedPVCoordinates(AbsoluteDate dateIn,
double a1,
PVCoordinates pv1,
double a2,
PVCoordinates pv2,
double a3,
PVCoordinates pv3,
double a4,
PVCoordinates pv4)
Linear constructor
|
TimeStampedPVCoordinates(AbsoluteDate dateIn,
FieldVector3D<DerivativeStructure> p)
Builds a TimeStampedPVCoordinates triplet from a
FieldVector3D <DerivativeStructure >. |
TimeStampedPVCoordinates(AbsoluteDate dateIn,
PVCoordinates pv)
Build from position velocity acceleration coordinates.
|
TimeStampedPVCoordinates(AbsoluteDate dateIn,
PVCoordinates start,
PVCoordinates end)
Subtractive constructor
|
TimeStampedPVCoordinates(AbsoluteDate dateIn,
Vector3D position,
Vector3D velocity)
Build from position and velocity.
|
TimeStampedPVCoordinates(AbsoluteDate dateIn,
Vector3D position,
Vector3D velocity,
Vector3D acceleration)
Builds a TimeStampedPVCoordinates triplet.
|
Modifier and Type | Method and Description |
---|---|
static Function<AbsoluteDate,TimeStampedPVCoordinates> |
buildInterpolationFunction(TimeStampedPVCoordinates[] samples,
int indexInf,
int indexSup,
CartesianDerivativesFilter filter,
boolean computeAcceleration)
Build an interpolation function for the
TimeStampedPVCoordinates . |
boolean |
equals(Object object) |
AbsoluteDate |
getDate()
Get the date.
|
int |
hashCode() |
static TimeStampedPVCoordinates |
interpolate(AbsoluteDate date,
CartesianDerivativesFilter filter,
Collection<TimeStampedPVCoordinates> sample)
Interpolate position-velocity.
|
TimeStampedPVCoordinates |
shiftedBy(double dt)
Get a time-shifted state.
|
String |
toString()
Return a string representation of this position/velocity pair.
|
crossProduct, estimateVelocity, getAcceleration, getAngularVelocity, getMomentum, getPosition, getVelocity, negate, normalize, toArray, toDerivativeStructureVector
public TimeStampedPVCoordinates(AbsoluteDate dateIn, Vector3D position, Vector3D velocity, Vector3D acceleration)
dateIn
- coordinates dateposition
- the position vector (m)velocity
- the velocity vector (m/s)acceleration
- the acceleration vector (m/s²)public TimeStampedPVCoordinates(AbsoluteDate dateIn, Vector3D position, Vector3D velocity)
dateIn
- coordinates dateposition
- the position vector (m)velocity
- the velocity vector (m/s)public TimeStampedPVCoordinates(AbsoluteDate dateIn, PVCoordinates pv)
dateIn
- coordinates datepv
- position velocity, and acceleration coordinates, in meters and seconds.public TimeStampedPVCoordinates(AbsoluteDate dateIn, double a, PVCoordinates pv)
Build a TimeStampedPVCoordinates from another one and a scale factor.
The TimeStampedPVCoordinates built will be a * pv
dateIn
- date of the built coordinatesa
- scale factorpv
- base (unscaled) PVCoordinatespublic TimeStampedPVCoordinates(AbsoluteDate dateIn, PVCoordinates start, PVCoordinates end)
Build a relative TimeStampedPVCoordinates from a start and an end position.
The TimeStampedPVCoordinates built will be end - start.
dateIn
- date of the built coordinatesstart
- Starting PVCoordinatesend
- ending PVCoordinatespublic TimeStampedPVCoordinates(AbsoluteDate dateIn, double a1, PVCoordinates pv1, double a2, PVCoordinates pv2)
Build a TimeStampedPVCoordinates from two other ones and corresponding scale factors.
The TimeStampedPVCoordinates built will be a1 * u1 + a2 * u2
dateIn
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatespublic TimeStampedPVCoordinates(AbsoluteDate dateIn, double a1, PVCoordinates pv1, double a2, PVCoordinates pv2, double a3, PVCoordinates pv3)
Build a TimeStampedPVCoordinates from three other ones and corresponding scale factors.
The TimeStampedPVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3
dateIn
- 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 TimeStampedPVCoordinates(AbsoluteDate dateIn, double a1, PVCoordinates pv1, double a2, PVCoordinates pv2, double a3, PVCoordinates pv3, double a4, PVCoordinates pv4)
Build a TimeStampedPVCoordinates from four other ones and corresponding scale factors.
The TimeStampedPVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4
dateIn
- 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 TimeStampedPVCoordinates(AbsoluteDate dateIn, FieldVector3D<DerivativeStructure> p)
FieldVector3D
<DerivativeStructure
>.
The vector components must have time as their only derivation parameter and have consistent derivation orders.
dateIn
- date of the built coordinatesp
- vector with time-derivatives embedded within the coordinatespublic AbsoluteDate getDate()
getDate
in interface TimeStamped
public TimeStampedPVCoordinates shiftedBy(double dt)
The state can be slightly shifted to close dates. This shift is based on a simple Taylor expansion. 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<PVCoordinates>
shiftedBy
in class PVCoordinates
dt
- time shift in secondsAbsoluteDate.shiftedBy(double)
,
Attitude.shiftedBy(double)
,
Orbit.shiftedBy(double)
,
SpacecraftState.shiftedBy(double)
public String toString()
toString
in class PVCoordinates
public boolean equals(Object object)
equals
in class PVCoordinates
public int hashCode()
hashCode
in class PVCoordinates
public static TimeStampedPVCoordinates interpolate(AbsoluteDate date, CartesianDerivativesFilter filter, Collection<TimeStampedPVCoordinates> 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.
date
- interpolation datefilter
- filter for derivatives from the sample to use in interpolationsample
- sample points on which interpolation should be donepublic static Function<AbsoluteDate,TimeStampedPVCoordinates> buildInterpolationFunction(TimeStampedPVCoordinates[] samples, int indexInf, int indexSup, CartesianDerivativesFilter filter, boolean computeAcceleration)
TimeStampedPVCoordinates
.
Note: this interpolation function can produce small numerical differences compared to the
interpolate(AbsoluteDate, CartesianDerivativesFilter, Collection)
method, as both methods don't build
the dataset abscissas the same way: this one with the first date of the samples as origin, the other with the
interpolated date as origin.
samples
- The samples of time stamped PV data. It should be sorted.indexInf
- Inferior indexindexSup
- Superior indexfilter
- Filter describing which derivatives to use in TimeStampedPVCoordinates
and interpolationcomputeAcceleration
- true
if the acceleration should be computed, false
otherwiseTimeStampedPVCoordinates
Copyright © 2023 CNES. All rights reserved.