states
— ALE States Classes & Functions¶
-
namespace ale
-
struct State¶
- #include <States.h>
A state vector with position and velocity
-
class States¶
- #include <States.h>
Public Functions
-
States(const std::vector<double> &ephemTimes, const std::vector<Vec3d> &positions, int refFrame = 1)¶
Creates a States object from a set of times and positions
-
States(const std::vector<double> &ephemTimes, const std::vector<std::vector<double>> &positions, int refFrame = 1)¶
Creates a States object from a set of times and positions
-
States(const std::vector<double> &ephemTimes, const std::vector<Vec3d> &positions, const std::vector<Vec3d> &velocities, int refFrame = 1)¶
Creates a States object from a set of times, positions, and velocities
-
States(const std::vector<double> &ephemTimes, const std::vector<State> &states, int refFrame = 1)¶
Creates a States object from a set of times, states
-
~States()¶
-
std::vector<double> getTimes() const¶
Returns the current times.
-
int getReferenceFrame() const¶
Returns reference frame as NAIF ID.
-
bool hasVelocity() const¶
Returns true if any velocities have been provided.
-
State getState(double time, PositionInterpolation interp = LINEAR) const¶
Returns a single state by interpolating state. If the Cache has been minimized, a cubic hermite is used to interpolate the position and velocity over the reduced cache. If not, a standard lagrange interpolation will be done.
- Parameters:
time – Time to get a value at
interp – Interpolation type to use. Will be ignored if cache is minimized.
- Returns:
The interpolated state
-
Vec3d getPosition(double time, PositionInterpolation interp = LINEAR) const¶
Gets a position at a single time. Operates the same way as getState()
-
Vec3d getVelocity(double time, PositionInterpolation interp = LINEAR) const¶
Gets a velocity at a single time. Operates the same way as getState()
-
double getStartTime()¶
Returns the first ephemeris time
-
double getStopTime()¶
Returns the last ephemeris time
-
States minimizeCache(double tolerance = 0.01)¶
Perform a cache reduction. After running this, getStates(), getPositions(), and getVelocities() will return vectors of reduced size, and getState(), getPosition(), and getVelocity() will returns values interpolated over the reduced cache using a cubic hermite spline
Adapted from Isis::SpicePosition::reduceCache().
- Parameters:
tolerance – Maximum error between hermite approximation and original value.
- Returns:
A new set of states that has been downsized.
Private Functions
-
std::vector<int> hermiteIndices(double tolerance, std::vector<int> indexList, double baseTime, double timeScale)¶
Calculates the points (indicies) which need to be kept for the hermite spline to interpolate between to mantain a maximum error of tolerance.
Adapted from Isis::SpicePosition::HermiteIndices.
- Parameters:
tolerance – Maximum error between hermite approximation and original value.
indexList – The list of indicies that need to be kept.
baseTime – Scaled base time for fit
timeScale – Time scale for fit.
- Returns:
The indices that should be kept to downsize the set of States
-
States(const std::vector<double> &ephemTimes, const std::vector<Vec3d> &positions, int refFrame = 1)¶
-
struct State¶