isce3  0.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | List of all members
isce3::core::Orbit Class Reference

Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing, supporting efficient lookup and interpolation. More...

#include <Orbit.h>

Public Member Functions

 Orbit (const std::vector< StateVector > &statevecs, OrbitInterpMethod interp_method=OrbitInterpMethod::Hermite)
 Construct from list of state vectors. More...
 
 Orbit (const std::vector< StateVector > &statevecs, const DateTime &reference_epoch, OrbitInterpMethod interp_method=OrbitInterpMethod::Hermite)
 Construct from list of state vectors and reference epoch. More...
 
std::vector< StateVectorgetStateVectors () const
 Export list of state vectors.
 
void setStateVectors (const std::vector< StateVector > &)
 Set orbit state vectors.
 
const DateTimereferenceEpoch () const
 Reference epoch (UTC)
 
void referenceEpoch (const DateTime &)
 Set reference epoch (UTC)
 
OrbitInterpMethod interpMethod () const
 Interpolation method.
 
void interpMethod (OrbitInterpMethod interp_method)
 Set interpolation method.
 
double startTime () const
 Time of first state vector relative to reference epoch (s)
 
double midTime () const
 Time of center of orbit relative to reference epoch (s)
 
double endTime () const
 Time of last state vector relative to reference epoch (s)
 
DateTime startDateTime () const
 UTC time of first state vector.
 
DateTime midDateTime () const
 UTC time of center of orbit.
 
DateTime endDateTime () const
 UTC time of last state vector.
 
double spacing () const
 Time interval between state vectors (s)
 
int size () const
 Number of state vectors in orbit.
 
const Linspace< double > & time () const
 Get state vector times relative to reference epoch (s)
 
const std::vector< Vec3 > & position () const
 Get state vector positions in ECEF coordinates (m)
 
const std::vector< Vec3 > & velocity () const
 Get state vector velocities in ECEF coordinates (m/s)
 
double time (int idx) const
 Get the specified state vector time relative to reference epoch (s)
 
const Vec3position (int idx) const
 Get the specified state vector position in ECEF coordinates (m)
 
const Vec3velocity (int idx) const
 Get the specified state vector velocity in ECEF coordinates (m/s)
 
isce3::error::ErrorCode interpolate (Vec3 *position, Vec3 *velocity, double t, OrbitInterpBorderMode border_mode=OrbitInterpBorderMode::Error) const
 Interpolate platform position and/or velocity. More...
 

Detailed Description

Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing, supporting efficient lookup and interpolation.

DateTimes are expected to be UTC. Positions & velocities are in meters and meters per second respectively and in ECEF coordinates w.r.t WGS84 ellipsoid.

Platform position and velocity are stored at timepoints relative to a reference epoch. For best accuracy, reference epoch should be within 24 hours of orbit time tags.

Constructor & Destructor Documentation

isce3::core::Orbit::Orbit ( const std::vector< StateVector > &  statevecs,
OrbitInterpMethod  interp_method = OrbitInterpMethod::Hermite 
)

Construct from list of state vectors.

Reference epoch defaults to time of first state vector

Parameters
[in]statevecsState vectors
[in]interp_methodInterpolation method
isce3::core::Orbit::Orbit ( const std::vector< StateVector > &  statevecs,
const DateTime reference_epoch,
OrbitInterpMethod  interp_method = OrbitInterpMethod::Hermite 
)

Construct from list of state vectors and reference epoch.

Parameters
[in]statevecsState vectors
[in]reference_epochReference epoch
[in]interp_methodInterpolation method

Member Function Documentation

ErrorCode isce3::core::Orbit::interpolate ( Vec3 position,
Vec3 velocity,
double  t,
OrbitInterpBorderMode  border_mode = OrbitInterpBorderMode::Error 
) const

Interpolate platform position and/or velocity.

If either position or velocity is a null pointer, that output will not be computed. This may improve runtime by avoiding unnecessary operations.

Parameters
[out]positionInterpolated position
[out]velocityInterpolated velocity
[in]tInterpolation time
[in]border_modeMode for handling interpolation outside orbit domain
Returns
Error code indicating exit status

The documentation for this class was generated from the following files:

Generated for ISCE3.0 by doxygen 1.8.5.