isce3 0.25.0
Loading...
Searching...
No Matches
Attitude.h
1#pragma once
2#define EIGEN_MPL2_ONLY
3#include "forward.h"
4
5#include <vector>
6
7#include <Eigen/Geometry>
8
9#include "Attitude.h"
10#include "DateTime.h"
11#include "Quaternion.h"
12#include "TimeDelta.h"
13
14namespace isce3 { namespace core {
15
17class Attitude {
18
19public:
28 Attitude(const std::vector<double>& time,
29 const std::vector<Quaternion>& quaternions, const DateTime& epoch);
30
31 Attitude() = default;
32
34 Quaternion interpolate(double t) const;
35
37 const std::vector<double>& time() const { return _time; }
38
40 const std::vector<Quaternion>& quaternions() const { return _quaternions; };
41
43 int size() const { return _time.size(); }
44
46 const DateTime& referenceEpoch() const { return _reference_epoch; }
47
54 void referenceEpoch(const DateTime& epoch);
55
57 double startTime() const { return _time[0]; }
58
60 double endTime() const { return _time[size() - 1]; }
61
63 bool contains(double time) const {
64 return (startTime() <= time) && (time <= endTime());
65 }
66
69 {
70 return _reference_epoch + TimeDelta(startTime());
71 }
72
75 {
76 return _reference_epoch + TimeDelta(endTime());
77 }
78
88 Attitude crop(const DateTime& start, const DateTime& end, int npad = 0) const;
89
90private:
91 DateTime _reference_epoch;
92 std::vector<double> _time;
93 std::vector<Quaternion> _quaternions;
94};
95
96}} // namespace isce3::core
Store and interpolate attitude measurements.
Definition Attitude.h:17
double endTime() const
Time of last measurement relative to reference epoch (s)
Definition Attitude.h:60
Attitude(const std::vector< double > &time, const std::vector< Quaternion > &quaternions, const DateTime &epoch)
Constructor.
Definition Attitude.cpp:25
const DateTime & referenceEpoch() const
Get reference epoch (UTC) for time tags.
Definition Attitude.h:46
int size() const
Return number of epochs.
Definition Attitude.h:43
DateTime startDateTime() const
UTC time of first measurement.
Definition Attitude.h:68
bool contains(double time) const
Check if time falls in the valid interpolation domain.
Definition Attitude.h:63
const std::vector< double > & time() const
Return data vector of time.
Definition Attitude.h:37
Quaternion interpolate(double t) const
Return quaternion interpolated at requested time.
Definition Attitude.cpp:52
double startTime() const
Time of first measurement relative to reference epoch (s)
Definition Attitude.h:57
DateTime endDateTime() const
UTC time of last measurement.
Definition Attitude.h:74
Attitude crop(const DateTime &start, const DateTime &end, int npad=0) const
Create a new Attitude containing data in the requested interval.
Definition Attitude.cpp:85
const std::vector< Quaternion > & quaternions() const
Return data vector of quaternions.
Definition Attitude.h:40
Data structure to store date time to nano-sec precision.
Definition DateTime.h:18
Quaternion representation of rotations, based on double precision Eigen::Quaterniond.
Definition Quaternion.h:25
Data structure to store TimeDelta to double precision seconds.
Definition TimeDelta.h:16
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5

Generated for ISCE3.0 by doxygen 1.13.2.