Class TimeStampedPVCoordinates

java.lang.Object
org.orekit.utils.PVCoordinates
org.orekit.utils.TimeStampedPVCoordinates
All Implemented Interfaces:
Blendable<PVCoordinates>, TimeShiftable<PVCoordinates>, TimeStamped
Direct Known Subclasses:
CPF.CPFCoordinate, SP3Coordinate

public class TimeStampedPVCoordinates extends PVCoordinates implements TimeStamped
time-stamped version of PVCoordinates.

Instances of this class are guaranteed to be immutable.

Since:
7.0
Author:
Luc Maisonobe
  • Constructor Details

    • TimeStampedPVCoordinates

      public TimeStampedPVCoordinates(AbsoluteDate date, Vector3D position, Vector3D velocity, Vector3D acceleration)
      Builds a TimeStampedPVCoordinates pair.
      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<U> p)
      Builds a TimeStampedPVCoordinates triplet from a FieldVector3D<Derivative>.

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

      Type Parameters:
      U - type of the derivative
      Parameters:
      date - date of the built coordinates
      p - vector with time-derivatives embedded within the coordinates
  • Method Details

    • 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)
    • shiftedBy

      public TimeStampedPVCoordinates shiftedBy(TimeOffset 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>
      Parameters:
      dt - time shift
      Returns:
      a new state, shifted with respect to the instance (which is immutable)
      Since:
      13.0
    • toTaylorProvider

      public PVCoordinatesProvider toTaylorProvider(Frame instanceFrame)
      Create a local provider using simply Taylor expansion through 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.

      Parameters:
      instanceFrame - frame in which the instance is defined
      Returns:
      provider based on Taylor expansion, for small time shifts around instance date
    • toDerivativeStructurePV

      public TimeStampedFieldPVCoordinates<DerivativeStructure> toDerivativeStructurePV(int order)
      Description copied from class: PVCoordinates
      Transform the instance to a FieldPVCoordinates<DerivativeStructure>.

      The DerivativeStructure coordinates correspond to time-derivatives up to the user-specified order. As both the instance components position, velocity and acceleration and the derivatives of the components holds time-derivatives, there are several ways to retrieve these derivatives. If for example the order is set to 2, then both pv.getPosition().getX().getPartialDerivative(2), pv.getVelocity().getX().getPartialDerivative(1) and pv.getAcceleration().getX().getValue() return the exact same value.

      If derivation order is 1, the first derivative of acceleration will be computed as a Keplerian-only jerk. If derivation order is 2, the second derivative of velocity (which is also the first derivative of acceleration) will be computed as a Keplerian-only jerk, and the second derivative of acceleration will be computed as a Keplerian-only jounce.

      Overrides:
      toDerivativeStructurePV in class PVCoordinates
      Parameters:
      order - derivation order for the vector components (must be either 0, 1 or 2)
      Returns:
      pv coordinates with time-derivatives embedded within the coordinates
    • toUnivariateDerivative1PV

      public TimeStampedFieldPVCoordinates<UnivariateDerivative1> toUnivariateDerivative1PV()
      Description copied from class: PVCoordinates
      Transform the instance to a FieldPVCoordinates<UnivariateDerivative1>.

      The UnivariateDerivative1 coordinates correspond to time-derivatives up to the order 1. The first derivative of acceleration will be computed as a Keplerian-only jerk.

      Overrides:
      toUnivariateDerivative1PV in class PVCoordinates
      Returns:
      pv coordinates with time-derivatives embedded within the coordinates
    • toUnivariateDerivative2PV

      public TimeStampedFieldPVCoordinates<UnivariateDerivative2> toUnivariateDerivative2PV()
      Description copied from class: PVCoordinates
      Transform the instance to a FieldPVCoordinates<UnivariateDerivative2>.

      The UnivariateDerivative2 coordinates correspond to time-derivatives up to the order 2. As derivation order is 2, the second derivative of velocity (which is also the first derivative of acceleration) will be computed as a Keplerian-only jerk, and the second derivative of acceleration will be computed as a Keplerian-only jounce.

      Overrides:
      toUnivariateDerivative2PV in class PVCoordinates
      Returns:
      pv coordinates with time-derivatives embedded within the coordinates
    • toString

      @DefaultDataContext public String toString()
      Return a string representation of this date, position, velocity, and acceleration.

      This method uses the default data context.

      Overrides:
      toString in class PVCoordinates
      Returns:
      string representation of this.
    • toString

      public String toString(TimeScale utc)
      Return a string representation of this date, position, velocity, and acceleration.
      Parameters:
      utc - time scale used to print the date.
      Returns:
      string representation of this.