public class TimeStampedPVCoordinates extends PVCoordinates implements TimeStamped
ZERO
Constructor and Description |
---|
TimeStampedPVCoordinates(AbsoluteDate date,
double a,
PVCoordinates pv)
Multiplicative constructor
|
TimeStampedPVCoordinates(AbsoluteDate date,
double a1,
PVCoordinates pv1,
double a2,
PVCoordinates pv2)
Linear constructor
|
TimeStampedPVCoordinates(AbsoluteDate date,
double a1,
PVCoordinates pv1,
double a2,
PVCoordinates pv2,
double a3,
PVCoordinates pv3)
Linear constructor
|
TimeStampedPVCoordinates(AbsoluteDate date,
double a1,
PVCoordinates pv1,
double a2,
PVCoordinates pv2,
double a3,
PVCoordinates pv3,
double a4,
PVCoordinates pv4)
Linear constructor
|
TimeStampedPVCoordinates(AbsoluteDate date,
FieldVector3D<DerivativeStructure> p)
Builds a TimeStampedPVCoordinates triplet from a
FieldVector3D <DerivativeStructure >. |
TimeStampedPVCoordinates(AbsoluteDate date,
PVCoordinates pv)
Build from position velocity acceleration coordinates.
|
TimeStampedPVCoordinates(AbsoluteDate date,
PVCoordinates start,
PVCoordinates end)
Subtractive constructor
|
TimeStampedPVCoordinates(AbsoluteDate date,
Vector3D position,
Vector3D velocity)
Build from position and velocity.
|
TimeStampedPVCoordinates(AbsoluteDate date,
Vector3D position,
Vector3D velocity,
Vector3D acceleration)
Builds a TimeStampedPVCoordinates pair.
|
Modifier and Type | Method and Description |
---|---|
AbsoluteDate |
getDate()
Get the date.
|
static TimeStampedPVCoordinates |
interpolate(AbsoluteDate date,
CartesianDerivativesFilter filter,
Collection<TimeStampedPVCoordinates> sample)
Interpolate position-velocity.
|
static TimeStampedPVCoordinates |
interpolate(AbsoluteDate date,
CartesianDerivativesFilter filter,
Stream<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.
|
PVCoordinatesProvider |
toTaylorProvider(Frame instanceFrame)
Create a local provider using simply Taylor expansion through
shiftedBy(double) . |
crossProduct, estimateVelocity, getAcceleration, getAngularVelocity, getMomentum, getPosition, getVelocity, negate, normalize, toDerivativeStructurePV, toDerivativeStructureVector
public TimeStampedPVCoordinates(AbsoluteDate date, Vector3D position, Vector3D velocity, Vector3D acceleration)
date
- coordinates dateposition
- the position vector (m)velocity
- the velocity vector (m/s)acceleration
- the acceleration vector (m/s²)public TimeStampedPVCoordinates(AbsoluteDate date, Vector3D position, Vector3D velocity)
date
- coordinates dateposition
- the position vector (m)velocity
- the velocity vector (m/s)public TimeStampedPVCoordinates(AbsoluteDate date, PVCoordinates pv)
date
- coordinates datepv
- position velocity, and acceleration coordinates, in meters and seconds.public TimeStampedPVCoordinates(AbsoluteDate date, double a, PVCoordinates pv)
Build a TimeStampedPVCoordinates from another one and a scale factor.
The TimeStampedPVCoordinates built will be a * pv
date
- date of the built coordinatesa
- scale factorpv
- base (unscaled) PVCoordinatespublic TimeStampedPVCoordinates(AbsoluteDate date, PVCoordinates start, PVCoordinates end)
Build a relative TimeStampedPVCoordinates from a start and an end position.
The TimeStampedPVCoordinates built will be end - start.
date
- date of the built coordinatesstart
- Starting PVCoordinatesend
- ending PVCoordinatespublic TimeStampedPVCoordinates(AbsoluteDate date, 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
date
- date of the built coordinatesa1
- first scale factorpv1
- first base (unscaled) PVCoordinatesa2
- second scale factorpv2
- second base (unscaled) PVCoordinatespublic TimeStampedPVCoordinates(AbsoluteDate date, 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
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 TimeStampedPVCoordinates(AbsoluteDate date, 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
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 TimeStampedPVCoordinates(AbsoluteDate date, FieldVector3D<DerivativeStructure> p)
FieldVector3D
<DerivativeStructure
>.
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 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 secondspublic PVCoordinatesProvider toTaylorProvider(Frame instanceFrame)
shiftedBy(double)
.
The time evolution 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.
instanceFrame
- frame in which the instance is definedpublic 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 TimeStampedPVCoordinates interpolate(AbsoluteDate date, CartesianDerivativesFilter filter, Stream<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 String toString()
toString
in class PVCoordinates
Copyright © 2002-2019 CS Systèmes d'information. All rights reserved.