isce3 0.25.0
Loading...
Searching...
No Matches
RadarGeometry.icc
1#include <isce3/except/Error.h>
2#include <limits>
3
4namespace isce3 {
5namespace container {
6
7inline RadarGeometry::RadarGeometry(const RadarGridParameters& radar_grid,
8 const Orbit& orbit,
9 const LUT2d<double>& doppler)
10:
11 _radar_grid(radar_grid),
12 _orbit(orbit),
13 _doppler(doppler)
14{
15 if (_radar_grid.refEpoch() != _orbit.referenceEpoch()) {
16 auto old_refepoch = _radar_grid.refEpoch();
17 auto new_refepoch = _orbit.referenceEpoch();
18
19 auto old_sensing_start = _radar_grid.sensingStart();
20 auto dt = (old_refepoch - new_refepoch).getTotalSeconds();
21 auto new_sensing_start = old_sensing_start + dt;
22
23 _radar_grid.refEpoch(new_refepoch);
24 _radar_grid.sensingStart(new_sensing_start);
25 }
26}
27
29{
30 // check for overflow when converting gridLength() -> int
31 constexpr static auto maxint =
32 static_cast<size_t>(std::numeric_limits<int>::max());
33 if (gridLength() > maxint) {
34 using isce3::except::OverflowError;
35 throw OverflowError(ISCE_SRCINFO(), "grid length exceeds max int");
36 }
37
38 auto t0 = radarGrid().sensingStart();
39 auto dt = radarGrid().azimuthTimeInterval();
40 auto lines = static_cast<int>(gridLength());
41 return {t0, dt, lines};
42}
43
45{
46 // check for overflow when converting gridWidth() -> int
47 constexpr static auto maxint =
48 static_cast<size_t>(std::numeric_limits<int>::max());
49 if (gridWidth() > maxint) {
50 using isce3::except::OverflowError;
51 throw OverflowError(ISCE_SRCINFO(), "grid width exceeds max int");
52 }
53
54 auto r0 = radarGrid().startingRange();
55 auto dr = radarGrid().rangePixelSpacing();
56 auto samples = static_cast<int>(gridWidth());
57 return {r0, dr, samples};
58}
59
60} // namespace container
61} // namespace isce3
const RadarGridParameters & radarGrid() const
Get radar grid.
Definition RadarGeometry.h:31
Linspace< double > sensingTime() const
Get radar grid azimuth time samples relative to reference epoch (s)
Definition RadarGeometry.icc:28
size_t gridLength() const
Get radar grid length (number of azimuth lines)
Definition RadarGeometry.h:43
size_t gridWidth() const
Get radar grid width (number of range samples)
Definition RadarGeometry.h:46
Linspace< double > slantRange() const
Get radar grid slant range samples (m)
Definition RadarGeometry.icc:44
A uniformly-spaced sequence of values over some interval.
Definition Linspace.h:9
double sensingStart() const
Get sensing start time in seconds since reference epoch.
Definition RadarGridParameters.h:78
double startingRange() const
Get starting slant range in meters.
Definition RadarGridParameters.h:99
double rangePixelSpacing() const
Get slant range pixel spacing in meters.
Definition RadarGridParameters.h:105
double azimuthTimeInterval() const
Get azimuth time interval in seconds.
Definition RadarGridParameters.h:96
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5

Generated for ISCE3.0 by doxygen 1.13.2.