org.orekit.utils
Class TimeStampedPVCoordinates

java.lang.Object
  extended by org.orekit.utils.PVCoordinates
      extended by org.orekit.utils.TimeStampedPVCoordinates
All Implemented Interfaces:
Serializable, TimeShiftable<PVCoordinates>, TimeStamped

public class TimeStampedPVCoordinates
extends PVCoordinates
implements TimeStamped

time-stamped version of PVCoordinates.

Instances of this class are guaranteed to be immutable.

Since:
3.1
Author:
Luc Maisonobe
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.orekit.utils.PVCoordinates
ZERO
 
Constructor Summary
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 triplet.
 
Method Summary
 AbsoluteDate getDate()
          Get the date.
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.
 
Methods inherited from class org.orekit.utils.PVCoordinates
crossProduct, estimateVelocity, getAcceleration, getAngularVelocity, getMomentum, getPosition, getVelocity, interpolate, negate, normalize, toDerivativeStructureVector
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TimeStampedPVCoordinates

public TimeStampedPVCoordinates(AbsoluteDate date,
                                Vector3D position,
                                Vector3D velocity,
                                Vector3D acceleration)
Builds a TimeStampedPVCoordinates triplet.

Parameters:
date - coordinates date
position - the position vector (m)
velocity - the velocity vector (m/s)
acceleration - the acceleration vector (m/s²)

TimeStampedPVCoordinates

public TimeStampedPVCoordinates(AbsoluteDate date,
                                Vector3D position,
                                Vector3D velocity)
Build from position and velocity. Acceleration is set to zero.

Parameters:
date - coordinates date
position - the position vector (m)
velocity - the velocity vector (m/s)

TimeStampedPVCoordinates

public TimeStampedPVCoordinates(AbsoluteDate date,
                                PVCoordinates pv)
Build from position velocity acceleration coordinates.

Parameters:
date - coordinates date
pv - position velocity, and acceleration coordinates, in meters and seconds.

TimeStampedPVCoordinates

public TimeStampedPVCoordinates(AbsoluteDate date,
                                double a,
                                PVCoordinates pv)
Multiplicative constructor

Build a TimeStampedPVCoordinates from another one and a scale factor.

The TimeStampedPVCoordinates built will be a * pv

Parameters:
date - date of the built coordinates
a - scale factor
pv - base (unscaled) PVCoordinates

TimeStampedPVCoordinates

public TimeStampedPVCoordinates(AbsoluteDate date,
                                PVCoordinates start,
                                PVCoordinates end)
Subtractive constructor

Build a relative TimeStampedPVCoordinates from a start and an end position.

The TimeStampedPVCoordinates built will be end - start.

Parameters:
date - date of the built coordinates
start - Starting PVCoordinates
end - ending PVCoordinates

TimeStampedPVCoordinates

public TimeStampedPVCoordinates(AbsoluteDate date,
                                double a1,
                                PVCoordinates pv1,
                                double a2,
                                PVCoordinates pv2)
Linear constructor

Build a TimeStampedPVCoordinates from two other ones and corresponding scale factors.

The TimeStampedPVCoordinates built will be a1 * u1 + a2 * u2

Parameters:
date - date of the built coordinates
a1 - first scale factor
pv1 - first base (unscaled) PVCoordinates
a2 - second scale factor
pv2 - second base (unscaled) PVCoordinates

TimeStampedPVCoordinates

public TimeStampedPVCoordinates(AbsoluteDate date,
                                double a1,
                                PVCoordinates pv1,
                                double a2,
                                PVCoordinates pv2,
                                double a3,
                                PVCoordinates pv3)
Linear constructor

Build a TimeStampedPVCoordinates from three other ones and corresponding scale factors.

The TimeStampedPVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3

Parameters:
date - date of the built coordinates
a1 - first scale factor
pv1 - first base (unscaled) PVCoordinates
a2 - second scale factor
pv2 - second base (unscaled) PVCoordinates
a3 - third scale factor
pv3 - third base (unscaled) PVCoordinates

TimeStampedPVCoordinates

public TimeStampedPVCoordinates(AbsoluteDate date,
                                double a1,
                                PVCoordinates pv1,
                                double a2,
                                PVCoordinates pv2,
                                double a3,
                                PVCoordinates pv3,
                                double a4,
                                PVCoordinates pv4)
Linear constructor

Build a TimeStampedPVCoordinates from four other ones and corresponding scale factors.

The TimeStampedPVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4

Parameters:
date - date of the built coordinates
a1 - first scale factor
pv1 - first base (unscaled) PVCoordinates
a2 - second scale factor
pv2 - second base (unscaled) PVCoordinates
a3 - third scale factor
pv3 - third base (unscaled) PVCoordinates
a4 - fourth scale factor
pv4 - fourth base (unscaled) PVCoordinates

TimeStampedPVCoordinates

public TimeStampedPVCoordinates(AbsoluteDate date,
                                FieldVector3D<DerivativeStructure> p)
Builds a TimeStampedPVCoordinates triplet from a FieldVector3D<DerivativeStructure>.

The vector components must have time as their only derivation parameter and have consistent derivation orders.

Parameters:
date - date of the built coordinates
p - vector with time-derivatives embedded within the coordinates
Method Detail

getDate

public AbsoluteDate getDate()
Get the date.

Specified by:
getDate in interface TimeStamped
Returns:
date attached to the object

shiftedBy

public TimeStampedPVCoordinates shiftedBy(double dt)
Get a time-shifted state.

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.

Specified by:
shiftedBy in interface TimeShiftable<PVCoordinates>
Overrides:
shiftedBy in class PVCoordinates
Parameters:
dt - time shift in seconds
Returns:
a new state, shifted with respect to the instance (which is immutable)
See Also:
AbsoluteDate.shiftedBy(double), Attitude.shiftedBy(double), Orbit.shiftedBy(double), SpacecraftState.shiftedBy(double)

interpolate

public static TimeStampedPVCoordinates interpolate(AbsoluteDate date,
                                                   CartesianDerivativesFilter filter,
                                                   Collection<TimeStampedPVCoordinates> sample)
Interpolate position-velocity.

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.

Parameters:
date - interpolation date
filter - filter for derivatives from the sample to use in interpolation
sample - sample points on which interpolation should be done
Returns:
a new position-velocity, interpolated at specified date

toString

public String toString()
Return a string representation of this position/velocity pair.

Overrides:
toString in class PVCoordinates
Returns:
string representation of this position/velocity pair


Copyright © 2016 CNES. All Rights Reserved.