isce3 0.25.0
Loading...
Searching...
No Matches
RSD.h
1#pragma once
2
3#include <complex>
4#include <vector>
5
6#include <isce3/core/DateTime.h>
7#include <isce3/core/LookSide.h>
8#include <isce3/io/gdal/Raster.h>
9
10namespace isce3 { namespace container {
11
13class RSD {
14public:
27 RSD(const isce3::io::gdal::Raster & signal_data,
28 const isce3::core::DateTime & reference_epoch,
29 const std::vector<double> & azimuth_time,
30 double range_window_start,
31 double range_sampling_rate,
32 isce3::core::LookSide look_side);
33
35 int lines() const { return _signal_data.length(); }
36
38 int samples() const { return _signal_data.width(); }
39
41 const isce3::core::DateTime & referenceEpoch() const { return _reference_epoch; }
42
44 double azimuthStartTime() const { return _azimuth_time[0]; }
45
47 double azimuthMidTime() const { return 0.5 * azimuthStartTime() + 0.5 * azimuthEndTime(); }
48
50 double azimuthEndTime() const { return _azimuth_time[lines() - 1]; }
51
54
57
60
62 double rangeWindowStartTime() const { return _range_window_start; }
63
65 double rangeWindowMidTime() const;
66
68 double rangeWindowEndTime() const;
69
71 double rangeSamplingRate() const { return _range_sampling_rate; }
72
74 isce3::core::LookSide lookSide() const { return _look_side; }
75
77 void readLine(std::complex<float> * dst, int line) const;
78
80 void readLines(std::complex<float> * dst, int first_line, int num_lines) const;
81
83 void readAll(std::complex<float> * dst) const { return _signal_data.readAll(dst); }
84
86 const isce3::io::gdal::Raster & signalData() const { return _signal_data; }
87
89 const std::vector<double> & azimuthTime() const { return _azimuth_time; }
90
91private:
92 isce3::io::gdal::Raster _signal_data;
93 isce3::core::DateTime _reference_epoch;
94 std::vector<double> _azimuth_time;
95 double _range_window_start;
96 double _range_sampling_rate;
97 isce3::core::LookSide _look_side;
98};
99
100}}
101
102#define ISCE_CONTAINER_RSD_ICC
103#include "RSD.icc"
104#undef ISCE_CONTAINER_RSD_ICC
const isce3::core::DateTime & referenceEpoch() const
Reference epoch (UTC)
Definition RSD.h:41
double rangeWindowEndTime() const
Time of last range sample relative to Tx pulse start (s)
Definition RSD.icc:71
isce3::core::LookSide lookSide() const
Radar look side.
Definition RSD.h:74
void readLine(std::complex< float > *dst, int line) const
Read a single line of signal data.
Definition RSD.icc:76
double rangeSamplingRate() const
Range sampling rate (Hz)
Definition RSD.h:71
double rangeWindowMidTime() const
Time of center of range sampling window relative to Tx pulse start (s)
Definition RSD.icc:66
const isce3::io::gdal::Raster & signalData() const
Get signal data Raster.
Definition RSD.h:86
isce3::core::DateTime startDateTime() const
DateTime of first azimuth line (UTC)
Definition RSD.icc:51
void readAll(std::complex< float > *dst) const
Read all signal data lines.
Definition RSD.h:83
RSD(const isce3::io::gdal::Raster &signal_data, const isce3::core::DateTime &reference_epoch, const std::vector< double > &azimuth_time, double range_window_start, double range_sampling_rate, isce3::core::LookSide look_side)
Constructor.
Definition RSD.icc:10
int samples() const
Number of range samples.
Definition RSD.h:38
isce3::core::DateTime midDateTime() const
DateTime of center of data (UTC)
Definition RSD.icc:56
double azimuthStartTime() const
Time of first azimuth line relative to reference epoch (s)
Definition RSD.h:44
int lines() const
Number of azimuth lines.
Definition RSD.h:35
double azimuthMidTime() const
Time of center of data relative to reference epoch (s)
Definition RSD.h:47
double rangeWindowStartTime() const
Time of first range sample relative to Tx pulse start (s)
Definition RSD.h:62
const std::vector< double > & azimuthTime() const
Get azimuth timepoints relative to reference epoch (s)
Definition RSD.h:89
isce3::core::DateTime endDateTime() const
DateTime of last azimuth line (UTC)
Definition RSD.icc:61
void readLines(std::complex< float > *dst, int first_line, int num_lines) const
Read one or more lines of signal data.
Definition RSD.icc:81
double azimuthEndTime() const
Time of last azimuth line relative to reference epoch (s)
Definition RSD.h:50
Data structure to store date time to nano-sec precision.
Definition DateTime.h:18
Wrapper for GDALRasterBand representing a single raster.
Definition Raster.h:14
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5

Generated for ISCE3.0 by doxygen 1.13.2.