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::DateTime & | referenceEpoch () 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... | |
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.
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
[in] | statevecs | State vectors |
[in] | interp_method | Interpolation 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.
[in] | statevecs | State vectors |
[in] | reference_epoch | Reference epoch |
[in] | interp_method | Interpolation method |
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.
[out] | position | Interpolated position |
[out] | velocity | Interpolated velocity |
[in] | t | Interpolation time |
[in] | border_mode | Mode for handling interpolation outside orbit domain |