isce3 0.25.0
Loading...
Searching...
No Matches
RadarGeometry.h
1#pragma once
2
3#include <isce3/core/LUT2d.h>
4#include <isce3/core/Linspace.h>
5#include <isce3/core/Orbit.h>
6#include <isce3/product/RadarGridParameters.h>
7
8namespace isce3 {
9namespace container {
10
16class RadarGeometry {
17private:
18 using DateTime = isce3::core::DateTime;
19 using LookSide = isce3::core::LookSide;
20 using Orbit = isce3::core::Orbit;
21 using RadarGridParameters = isce3::product::RadarGridParameters;
22
23 template<typename T> using Linspace = isce3::core::Linspace<T>;
24 template<typename T> using LUT2d = isce3::core::LUT2d<T>;
25
26public:
27 RadarGeometry(const RadarGridParameters& radar_grid, const Orbit& orbit,
28 const LUT2d<double>& doppler);
29
31 const RadarGridParameters& radarGrid() const { return _radar_grid; }
32
34 const Orbit& orbit() const { return _orbit; }
35
37 const LUT2d<double>& doppler() const { return _doppler; }
38
40 const DateTime& referenceEpoch() const { return orbit().referenceEpoch(); }
41
43 size_t gridLength() const { return radarGrid().length(); }
44
46 size_t gridWidth() const { return radarGrid().width(); }
47
49 Linspace<double> sensingTime() const;
50
52 Linspace<double> slantRange() const;
53
55 LookSide lookSide() const { return radarGrid().lookSide(); }
56
58 double wavelength() const { return radarGrid().wavelength(); }
59
60private:
61 RadarGridParameters _radar_grid;
62 Orbit _orbit;
63 LUT2d<double> _doppler;
64};
65
66} // namespace container
67} // namespace isce3
68
69#include "RadarGeometry.icc"
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing,...
Definition Orbit.h:44
Definition RadarGridParameters.h:16
double wavelength() const
Get radar wavelength.
Definition RadarGeometry.h:58
const RadarGridParameters & radarGrid() const
Get radar grid.
Definition RadarGeometry.h:31
LookSide lookSide() const
Get radar look side.
Definition RadarGeometry.h:55
const LUT2d< double > & doppler() const
Get Doppler.
Definition RadarGeometry.h:37
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
const DateTime & referenceEpoch() const
Get reference epoch.
Definition RadarGeometry.h:40
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
const Orbit & orbit() const
Get platform orbit.
Definition RadarGeometry.h:34
Data structure to store date time to nano-sec precision.
Definition DateTime.h:18
Data structure to store 2D Lookup table.
Definition LUT2d.h:20
A uniformly-spaced sequence of values over some interval.
Definition Linspace.h:9
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing,...
Definition Orbit.h:44
const DateTime & referenceEpoch() const
Reference epoch (UTC)
Definition Orbit.h:105
Definition RadarGridParameters.h:16
size_t length() const
Get radar grid length.
Definition RadarGridParameters.h:111
double wavelength() const
Get radar wavelength in meters.
Definition RadarGridParameters.h:84
size_t width() const
Get radar grid width.
Definition RadarGridParameters.h:117
isce3::core::LookSide lookSide() const
Get the look direction.
Definition RadarGridParameters.h:61
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5

Generated for ISCE3.0 by doxygen 1.13.2.