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

CUDA counterpart of isce3::core::Orbit. More...

#include <Orbit.h>

Public Member Functions

 Orbit (const isce3::core::Orbit &)
 Construct from isce3::core::Orbit (copy from host to device)
 
 Orbit (const std::vector< isce3::core::StateVector > &statevecs, isce3::core::OrbitInterpMethod interp_method=isce3::core::OrbitInterpMethod::Hermite)
 Construct from list of state vectors. More...
 
 Orbit (const std::vector< isce3::core::StateVector > &statevecs, const isce3::core::DateTime &reference_epoch, isce3::core::OrbitInterpMethod interp_method=isce3::core::OrbitInterpMethod::Hermite)
 Construct from list of state vectors and reference epoch. More...
 
std::vector
< isce3::core::StateVector
getStateVectors () const
 Export list of state vectors.
 
void setStateVectors (const std::vector< isce3::core::StateVector > &)
 Set orbit state vectors.
 
const isce3::core::DateTimereferenceEpoch () const
 Reference epoch (UTC)
 
void referenceEpoch (const isce3::core::DateTime &)
 Set reference epoch (UTC)
 
isce3::core::OrbitInterpMethod interpMethod () const
 Interpolation method.
 
void interpMethod (isce3::core::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)
 
isce3::core::DateTime startDateTime () const
 UTC time of first state vector.
 
isce3::core::DateTime midDateTime () const
 UTC time of center of orbit.
 
isce3::core::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 isce3::core::Linspace
< double > & 
time () const
 Get state vector times relative to reference epoch (s)
 
const thrust::device_vector
< isce3::core::Vec3 > & 
position () const
 Get state vector positions in ECEF coordinates (m)
 
const thrust::device_vector
< isce3::core::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)
 
isce3::core::Vec3 position (int idx) const
 Get the specified state vector position in ECEF coordinates (m)
 
isce3::core::Vec3 velocity (int idx) const
 Get the specified state vector velocity in ECEF coordinates (m/s)
 
isce3::error::ErrorCode interpolate (isce3::core::Vec3 *position, isce3::core::Vec3 *velocity, double t, isce3::core::OrbitInterpBorderMode border_mode=isce3::core::OrbitInterpBorderMode::Error) const
 Interpolate platform position and/or velocity. More...
 

Detailed Description

CUDA counterpart of isce3::core::Orbit.

This class exports a host-side interface for managing and interacting with orbit data residing in device memory. It is not intended for use in device code - use OrbitView instead.

Constructor & Destructor Documentation

isce3::cuda::core::Orbit::Orbit ( const std::vector< isce3::core::StateVector > &  statevecs,
isce3::core::OrbitInterpMethod  interp_method = isce3::core::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::cuda::core::Orbit::Orbit ( const std::vector< isce3::core::StateVector > &  statevecs,
const isce3::core::DateTime reference_epoch,
isce3::core::OrbitInterpMethod  interp_method = isce3::core::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

isce3::error::ErrorCode isce3::cuda::core::Orbit::interpolate ( isce3::core::Vec3 position,
isce3::core::Vec3 velocity,
double  t,
isce3::core::OrbitInterpBorderMode  border_mode = isce3::core::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 file:

Generated for ISCE3.0 by doxygen 1.8.5.