3#include <thrust/device_vector.h>
6#include <isce3/core/DateTime.h>
7#include <isce3/core/Linspace.h>
8#include <isce3/core/Orbit.h>
9#include <isce3/core/StateVector.h>
10#include <isce3/core/TimeDelta.h>
11#include <isce3/core/Vector.h>
13namespace isce3 {
namespace cuda {
namespace core {
38 Orbit(
const std::vector<isce3::core::StateVector> & statevecs,
39 isce3::core::OrbitInterpMethod interp_method = isce3::core::OrbitInterpMethod::Hermite);
48 Orbit(
const std::vector<isce3::core::StateVector> & statevecs,
50 isce3::core::OrbitInterpMethod interp_method = isce3::core::OrbitInterpMethod::Hermite);
65 isce3::core::OrbitInterpMethod
interpMethod()
const {
return _interp_method; }
68 void interpMethod(isce3::core::OrbitInterpMethod interp_method) { _interp_method = interp_method; }
89 double spacing()
const {
return _time.spacing(); }
92 int size()
const {
return _time.size(); }
98 const thrust::device_vector<isce3::core::Vec3> &
position()
const {
return _position; }
101 const thrust::device_vector<isce3::core::Vec3> &
velocity()
const {
return _velocity; }
104 double time(
int idx)
const {
return _time[idx]; }
107 isce3::core::Vec3
position(
int idx)
const {
return _position[idx]; }
110 isce3::core::Vec3
velocity(
int idx)
const {
return _velocity[idx]; }
125 isce3::error::ErrorCode
128 isce3::core::OrbitInterpBorderMode border_mode =
129 isce3::core::OrbitInterpBorderMode::Error)
const;
134 thrust::device_vector<isce3::core::Vec3> _position;
135 thrust::device_vector<isce3::core::Vec3> _velocity;
136 isce3::core::OrbitInterpMethod _interp_method = isce3::core::OrbitInterpMethod::Hermite;
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing,...
Definition Orbit.h:44
Data structure to store date time to nano-sec precision.
Definition DateTime.h:18
A uniformly-spaced sequence of values over some interval.
Definition Linspace.h:9
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing,...
Definition Orbit.h:44
Data structure to store TimeDelta to double precision seconds.
Definition TimeDelta.h:16
double midTime() const
Time of center of orbit relative to reference epoch (s)
Definition Orbit.h:74
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.
Definition Orbit.cu:126
const thrust::device_vector< isce3::core::Vec3 > & position() const
Get state vector positions in ECEF coordinates (m)
Definition Orbit.h:98
isce3::core::Vec3 position(int idx) const
Get the specified state vector position in ECEF coordinates (m)
Definition Orbit.h:107
const isce3::core::DateTime & referenceEpoch() const
Reference epoch (UTC)
Definition Orbit.h:59
isce3::core::DateTime midDateTime() const
UTC time of center of orbit.
Definition Orbit.h:83
isce3::core::OrbitInterpMethod interpMethod() const
Interpolation method.
Definition Orbit.h:65
std::vector< isce3::core::StateVector > getStateVectors() const
Export list of state vectors.
Definition Orbit.cu:74
double spacing() const
Time interval between state vectors (s)
Definition Orbit.h:89
isce3::core::DateTime startDateTime() const
UTC time of first state vector.
Definition Orbit.h:80
const thrust::device_vector< isce3::core::Vec3 > & velocity() const
Get state vector velocities in ECEF coordinates (m/s)
Definition Orbit.h:101
double endTime() const
Time of last state vector relative to reference epoch (s)
Definition Orbit.h:77
void interpMethod(isce3::core::OrbitInterpMethod interp_method)
Set interpolation method.
Definition Orbit.h:68
double startTime() const
Time of first state vector relative to reference epoch (s)
Definition Orbit.h:71
void setStateVectors(const std::vector< isce3::core::StateVector > &)
Set orbit state vectors.
Definition Orbit.cu:91
const isce3::core::Linspace< double > & time() const
Get state vector times relative to reference epoch (s)
Definition Orbit.h:95
isce3::core::Vec3 velocity(int idx) const
Get the specified state vector velocity in ECEF coordinates (m/s)
Definition Orbit.h:110
int size() const
Number of state vectors in orbit.
Definition Orbit.h:92
double time(int idx) const
Get the specified state vector time relative to reference epoch (s)
Definition Orbit.h:104
isce3::core::DateTime endDateTime() const
UTC time of last state vector.
Definition Orbit.h:86
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5