8#include <isce3/core/DateTime.h>
9#include <isce3/core/LUT2d.h>
10#include <isce3/core/Constants.h>
11#include <isce3/product/SubSwaths.h>
12#include <isce3/io/Raster.h>
13#include <isce3/except/Error.h>
30 inline const std::valarray<double> &
slantRange()
const {
return _slantRange; }
32 inline void slantRange(
const std::valarray<double> & rng) {
34 _subSwaths.width(_slantRange.size());
41 inline const std::valarray<double> &
zeroDopplerTime()
const {
return _zeroDopplerTime; }
45 _subSwaths.length(_zeroDopplerTime.size());
49 inline size_t samples()
const {
return _slantRange.size(); }
52 inline size_t lines()
const {
return _zeroDopplerTime.size(); }
66 return isce3::core::speed_of_light / _processedCenterFrequency;
91 return _sceneCenterAlongTrackSpacing;
95 _sceneCenterAlongTrackSpacing = s;
100 return _sceneCenterGroundRangeSpacing;
104 _sceneCenterGroundRangeSpacing = s;
129 if (_subSwaths.width() != _slantRange.size()) {
130 std::string error_msg =
"WARNING the number of range samples";
131 error_msg +=
" of SubSwaths (";
132 error_msg += std::to_string(_subSwaths.width());
133 error_msg +=
") and Swath (" + std::to_string(_slantRange.size());
134 error_msg +=
") objects differ.";
135 throw isce3::except::InvalidArgument(ISCE_SRCINFO(), error_msg);
137 if (_subSwaths.length() != _zeroDopplerTime.size()) {
138 std::string error_msg =
"WARNING the number of azimuth lines";
139 error_msg +=
" of SubSwaths (";
140 error_msg += std::to_string(_subSwaths.length());
141 error_msg +=
") and Swath (" + std::to_string(_zeroDopplerTime.size());
142 error_msg +=
") objects differ.";
143 throw isce3::except::InvalidArgument(ISCE_SRCINFO(), error_msg);
150 std::valarray<double> _slantRange;
151 std::valarray<double> _zeroDopplerTime;
157 double _acquiredCenterFrequency;
158 double _processedCenterFrequency;
159 double _acquiredRangeBandwidth;
160 double _processedRangeBandwidth;
161 double _nominalAcquisitionPRF;
162 double _zeroDopplerTimeSpacing;
163 double _sceneCenterAlongTrackSpacing;
164 double _sceneCenterGroundRangeSpacing;
165 double _processedAzimuthBandwidth;
Data structure to store date time to nano-sec precision.
Definition DateTime.h:18
Sub-swaths metadata of a SAR dataset.
Definition SubSwaths.h:23
size_t samples() const
Get the number of samples.
Definition Swath.h:49
void zeroDopplerTime(const std::valarray< double > &t)
Set zero Doppler time array.
Definition Swath.h:43
double rangePixelSpacing() const
Get the range pixel spacing.
Definition Swath.h:38
void processedAzimuthBandwidth(double b)
Set processed azimuth bandwidth.
Definition Swath.h:110
void refEpoch(const isce3::core::DateTime &epoch)
Set reference epoch.
Definition Swath.h:115
const isce3::core::DateTime & refEpoch() const
Get reference epoch.
Definition Swath.h:113
double sceneCenterAlongTrackSpacing() const
Get scene center along track spacing.
Definition Swath.h:90
void sceneCenterGroundRangeSpacing(double s)
Set scene center ground range spacing.
Definition Swath.h:103
double processedAzimuthBandwidth() const
Get processed azimuth bandwidth.
Definition Swath.h:108
void acquiredCenterFrequency(double f)
Set acquired center frequency.
Definition Swath.h:57
void processedRangeBandwidth(double b)
Set acquired range bandwidth.
Definition Swath.h:77
void nominalAcquisitionPRF(double f)
Set nominal acquisition PRF.
Definition Swath.h:82
double acquiredCenterFrequency() const
Get acquired center frequency.
Definition Swath.h:55
void zeroDopplerTimeSpacing(double dt)
Set time spacing of raster grid.
Definition Swath.h:87
void slantRange(const std::valarray< double > &rng)
Set slant range array.
Definition Swath.h:32
double processedCenterFrequency() const
Get processed center frequency.
Definition Swath.h:60
void subSwaths(const isce3::product::SubSwaths &v)
Set SubSwaths object.
Definition Swath.h:127
const std::valarray< double > & zeroDopplerTime() const
Get zero Doppler time array.
Definition Swath.h:41
void sceneCenterAlongTrackSpacing(double s)
Set scene center along track spacing.
Definition Swath.h:94
size_t lines() const
Get the number of lines.
Definition Swath.h:52
isce3::product::SubSwaths & subSwaths()
Get SubSwaths object.
Definition Swath.h:118
double sceneCenterGroundRangeSpacing() const
Get scene center ground range spacing.
Definition Swath.h:99
double processedWavelength() const
Get processed wavelength.
Definition Swath.h:65
void processedCenterFrequency(double f)
Set processed center frequency.
Definition Swath.h:62
double processedRangeBandwidth() const
Get processed range bandwidth.
Definition Swath.h:75
double acquiredRangeBandwidth() const
Get acquired range bandwidth.
Definition Swath.h:70
double zeroDopplerTimeSpacing() const
Get time spacing of raster grid.
Definition Swath.h:85
double nominalAcquisitionPRF() const
Get nominal acquisition PRF.
Definition Swath.h:80
const std::valarray< double > & slantRange() const
Get slant range array.
Definition Swath.h:30
void acquiredRangeBandwidth(double b)
Set acquired range bandwidth.
Definition Swath.h:72
The isce3::product namespace.
Definition forward.h:3
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5