public class AbsolutePVCoordinates extends TimeStampedPVCoordinates implements TimeStamped, TimeInterpolable<AbsolutePVCoordinates>, Serializable, PVCoordinatesProvider
ZERO
Constructor and Description |
---|
AbsolutePVCoordinates(AbsoluteDate date,
AbsolutePVCoordinates start,
AbsolutePVCoordinates end)
Subtractive constructor
|
AbsolutePVCoordinates(AbsoluteDate date,
double a,
AbsolutePVCoordinates AbsPva)
Multiplicative constructor
|
AbsolutePVCoordinates(AbsoluteDate date,
double a1,
AbsolutePVCoordinates absPv1,
double a2,
AbsolutePVCoordinates absPv2)
Linear constructor
|
AbsolutePVCoordinates(AbsoluteDate date,
double a1,
AbsolutePVCoordinates absPv1,
double a2,
AbsolutePVCoordinates absPv2,
double a3,
AbsolutePVCoordinates absPv3)
Linear constructor
|
AbsolutePVCoordinates(AbsoluteDate date,
double a1,
AbsolutePVCoordinates absPv1,
double a2,
AbsolutePVCoordinates absPv2,
double a3,
AbsolutePVCoordinates absPv3,
double a4,
AbsolutePVCoordinates absPv4)
Linear constructor
|
AbsolutePVCoordinates(Frame frame,
AbsoluteDate date,
FieldVector3D<DerivativeStructure> p)
Builds a AbsolutePVCoordinates triplet from a
FieldVector3D <DerivativeStructure >. |
AbsolutePVCoordinates(Frame frame,
AbsoluteDate date,
PVCoordinates pva)
Build from frame, date and PVA coordinates.
|
AbsolutePVCoordinates(Frame frame,
AbsoluteDate date,
Vector3D position,
Vector3D velocity)
Build from position and velocity.
|
AbsolutePVCoordinates(Frame frame,
AbsoluteDate date,
Vector3D position,
Vector3D velocity,
Vector3D acceleration)
Build from position, velocity, acceleration.
|
AbsolutePVCoordinates(Frame frame,
TimeStampedPVCoordinates pva)
Build from frame and TimeStampedPVCoordinates.
|
Modifier and Type | Method and Description |
---|---|
Frame |
getFrame()
Get the frame in which the coordinates are defined.
|
TimeStampedPVCoordinates |
getPVCoordinates()
Get the TimeStampedPVCoordinates.
|
TimeStampedPVCoordinates |
getPVCoordinates(AbsoluteDate otherDate,
Frame outputFrame)
Get the
PVCoordinates of the body in the selected frame. |
TimeStampedPVCoordinates |
getPVCoordinates(Frame outputFrame)
Get the TimeStampedPVCoordinates in a specified frame.
|
AbsolutePVCoordinates |
interpolate(AbsoluteDate date,
Stream<AbsolutePVCoordinates> sample)
Get an interpolated instance.
|
static AbsolutePVCoordinates |
interpolate(Frame frame,
AbsoluteDate date,
CartesianDerivativesFilter filter,
Stream<AbsolutePVCoordinates> sample)
Interpolate position-velocity.
|
AbsolutePVCoordinates |
shiftedBy(double dt)
Get a time-shifted state.
|
PVCoordinatesProvider |
toTaylorProvider()
Create a local provider using simply Taylor expansion through
shiftedBy(double) . |
getDate, interpolate, interpolate, toString, toString, toTaylorProvider
crossProduct, estimateVelocity, getAcceleration, getAngularVelocity, getMomentum, getPosition, getVelocity, negate, normalize, toDerivativeStructurePV, toDerivativeStructureVector
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getDate
interpolate
public AbsolutePVCoordinates(Frame frame, AbsoluteDate date, Vector3D position, Vector3D velocity, Vector3D acceleration)
frame
- the frame in which the coordinates are defineddate
- coordinates dateposition
- the position vector (m)velocity
- the velocity vector (m/s)acceleration
- the acceleration vector (m/sÂý)public AbsolutePVCoordinates(Frame frame, AbsoluteDate date, Vector3D position, Vector3D velocity)
frame
- the frame in which the coordinates are defineddate
- coordinates dateposition
- the position vector (m)velocity
- the velocity vector (m/s)public AbsolutePVCoordinates(Frame frame, AbsoluteDate date, PVCoordinates pva)
frame
- the frame in which the coordinates are defineddate
- date of the coordinatespva
- TimeStampedPVCoordinatespublic AbsolutePVCoordinates(Frame frame, TimeStampedPVCoordinates pva)
frame
- the frame in which the coordinates are definedpva
- TimeStampedPVCoordinatespublic AbsolutePVCoordinates(AbsoluteDate date, double a, AbsolutePVCoordinates AbsPva)
Build a AbsolutePVCoordinates from another one and a scale factor.
The TimeStampedPVCoordinates built will be a * AbsPva
date
- date of the built coordinatesa
- scale factorAbsPva
- base (unscaled) AbsolutePVCoordinatespublic AbsolutePVCoordinates(AbsoluteDate date, AbsolutePVCoordinates start, AbsolutePVCoordinates end)
Build a relative AbsolutePVCoordinates from a start and an end position.
The AbsolutePVCoordinates built will be end - start.
In case start and end use two different pseudo-inertial frames, the new AbsolutePVCoordinates arbitrarily be defined in the start frame.
date
- date of the built coordinatesstart
- Starting AbsolutePVCoordinatesend
- ending AbsolutePVCoordinatespublic AbsolutePVCoordinates(AbsoluteDate date, double a1, AbsolutePVCoordinates absPv1, double a2, AbsolutePVCoordinates absPv2)
Build a AbsolutePVCoordinates from two other ones and corresponding scale factors.
The AbsolutePVCoordinates built will be a1 * u1 + a2 * u2
In case the AbsolutePVCoordinates use different pseudo-inertial frames, the new AbsolutePVCoordinates arbitrarily be defined in the first frame.
date
- date of the built coordinatesa1
- first scale factorabsPv1
- first base (unscaled) AbsolutePVCoordinatesa2
- second scale factorabsPv2
- second base (unscaled) AbsolutePVCoordinatespublic AbsolutePVCoordinates(AbsoluteDate date, double a1, AbsolutePVCoordinates absPv1, double a2, AbsolutePVCoordinates absPv2, double a3, AbsolutePVCoordinates absPv3)
Build a AbsolutePVCoordinates from three other ones and corresponding scale factors.
The AbsolutePVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3
In case the AbsolutePVCoordinates use different pseudo-inertial frames, the new AbsolutePVCoordinates arbitrarily be defined in the first frame.
date
- date of the built coordinatesa1
- first scale factorabsPv1
- first base (unscaled) AbsolutePVCoordinatesa2
- second scale factorabsPv2
- second base (unscaled) AbsolutePVCoordinatesa3
- third scale factorabsPv3
- third base (unscaled) AbsolutePVCoordinatespublic AbsolutePVCoordinates(AbsoluteDate date, double a1, AbsolutePVCoordinates absPv1, double a2, AbsolutePVCoordinates absPv2, double a3, AbsolutePVCoordinates absPv3, double a4, AbsolutePVCoordinates absPv4)
Build a AbsolutePVCoordinates from four other ones and corresponding scale factors.
The AbsolutePVCoordinates built will be a1 * u1 + a2 * u2 + a3 * u3 + a4 * u4
In case the AbsolutePVCoordinates use different pseudo-inertial frames, the new AbsolutePVCoordinates arbitrarily be defined in the first frame.
date
- date of the built coordinatesa1
- first scale factorabsPv1
- first base (unscaled) AbsolutePVCoordinatesa2
- second scale factorabsPv2
- second base (unscaled) AbsolutePVCoordinatesa3
- third scale factorabsPv3
- third base (unscaled) AbsolutePVCoordinatesa4
- fourth scale factorabsPv4
- fourth base (unscaled) AbsolutePVCoordinatespublic AbsolutePVCoordinates(Frame frame, AbsoluteDate date, FieldVector3D<DerivativeStructure> p)
FieldVector3D
<DerivativeStructure
>.
The vector components must have time as their only derivation parameter and have consistent derivation orders.
frame
- the frame in which the parameters are defineddate
- date of the built coordinatesp
- vector with time-derivatives embedded within the coordinatespublic AbsolutePVCoordinates 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 TimeStampedPVCoordinates
dt
- time shift in secondspublic PVCoordinatesProvider toTaylorProvider()
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.
public Frame getFrame()
public TimeStampedPVCoordinates getPVCoordinates()
public TimeStampedPVCoordinates getPVCoordinates(Frame outputFrame)
outputFrame
- frame in which the position/velocity coordinates shall be computedOrekitException
- if transformation between frames cannot be computedgetPVCoordinates()
public TimeStampedPVCoordinates getPVCoordinates(AbsoluteDate otherDate, Frame outputFrame)
PVCoordinatesProvider
PVCoordinates
of the body in the selected frame.getPVCoordinates
in interface PVCoordinatesProvider
otherDate
- current dateoutputFrame
- the frame where to define the positionpublic AbsolutePVCoordinates interpolate(AbsoluteDate date, Stream<AbsolutePVCoordinates> sample)
TimeInterpolable
Note that the state of the current instance may not be used in the interpolation process, only its type and non interpolable fields are used (for example central attraction coefficient or frame when interpolating orbits). The interpolable fields taken into account are taken only from the states of the sample points. So if the state of the instance must be used, the instance should be included in the sample points.
Note that this method is designed for small samples only (say up to about 10-20 points) so it can be implemented using polynomial interpolation (typically Hermite interpolation). Using too much points may induce Runge's phenomenon and numerical problems (including NaN appearing).
interpolate
in interface TimeInterpolable<AbsolutePVCoordinates>
date
- interpolation datesample
- sample points on which interpolation should be donepublic static AbsolutePVCoordinates interpolate(Frame frame, AbsoluteDate date, CartesianDerivativesFilter filter, Stream<AbsolutePVCoordinates> 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.
frame
- frame for the interpolted instancedate
- interpolation datefilter
- filter for derivatives from the sample to use in interpolationsample
- sample points on which interpolation should be doneOrekitIllegalArgumentException
- if some elements in the sample do not
have the same defining frame as otherCopyright © 2002-2020 CS Group. All rights reserved.