isce3  0.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
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 
10 namespace isce3 { namespace container {
11 
13 class RSD {
14 public:
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 
91 private:
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
double rangeWindowStartTime() const
Time of first range sample relative to Tx pulse start (s)
Definition: RSD.h:62
isce3::core::DateTime startDateTime() const
DateTime of first azimuth line (UTC)
Definition: RSD.icc:51
double rangeSamplingRate() const
Range sampling rate (Hz)
Definition: RSD.h:71
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 lines() const
Number of azimuth lines.
Definition: RSD.h:35
double azimuthEndTime() const
Time of last azimuth line relative to reference epoch (s)
Definition: RSD.h:50
double azimuthMidTime() const
Time of center of data relative to reference epoch (s)
Definition: RSD.h:47
isce3::core::LookSide lookSide() const
Radar look side.
Definition: RSD.h:74
double rangeWindowEndTime() const
Time of last range sample relative to Tx pulse start (s)
Definition: RSD.icc:71
Data structure to store date time to nano-sec precision.
Definition: DateTime.h:18
LookSide
Side that radar looks at, Left or Right.
Definition: LookSide.h:13
const isce3::io::gdal::Raster & signalData() const
Get signal data Raster.
Definition: RSD.h:86
void readLine(std::complex< float > *dst, int line) const
Read a single line of signal data.
Definition: RSD.icc:76
Radar signal data.
Definition: RSD.h:13
double azimuthStartTime() const
Time of first azimuth line relative to reference epoch (s)
Definition: RSD.h:44
const isce3::core::DateTime & referenceEpoch() const
Reference epoch (UTC)
Definition: RSD.h:41
void readAll(std::complex< float > *dst) const
Read all signal data lines.
Definition: RSD.h:83
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 rangeWindowMidTime() const
Time of center of range sampling window relative to Tx pulse start (s)
Definition: RSD.icc:66
void readAll(T *dst) const
Read all pixel data from the raster.
Definition: Raster.icc:201
isce3::core::DateTime midDateTime() const
DateTime of center of data (UTC)
Definition: RSD.icc:56
int length() const
Number of rows.
Definition: Raster.h:152
const std::vector< double > & azimuthTime() const
Get azimuth timepoints relative to reference epoch (s)
Definition: RSD.h:89
Wrapper for GDALRasterBand representing a single raster.
Definition: Raster.h:14
int width() const
Number of columns.
Definition: Raster.h:149
int samples() const
Number of range samples.
Definition: RSD.h:38
isce3::core::DateTime endDateTime() const
DateTime of last azimuth line (UTC)
Definition: RSD.icc:61

Generated for ISCE3.0 by doxygen 1.8.5.