Class TimeStampedPVCoordinates

    • Constructor Detail

      • TimeStampedPVCoordinates

        public TimeStampedPVCoordinates​(AbsoluteDate date,
                                        org.hipparchus.geometry.euclidean.threed.Vector3D position,
                                        org.hipparchus.geometry.euclidean.threed.Vector3D velocity,
                                        org.hipparchus.geometry.euclidean.threed.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,
                                        org.hipparchus.geometry.euclidean.threed.Vector3D position,
                                        org.hipparchus.geometry.euclidean.threed.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,
                                        org.hipparchus.geometry.euclidean.threed.FieldVector3D<org.hipparchus.analysis.differentiation.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

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

        public static TimeStampedPVCoordinates interpolate​(AbsoluteDate date,
                                                           CartesianDerivativesFilter filter,
                                                           Stream<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
        Since:
        9.0
      • 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