isce3  0.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
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 
8 namespace isce3 {
9 namespace container {
10 
17 private:
20  using Orbit = isce3::core::Orbit;
22 
23  template<typename T> using Linspace = isce3::core::Linspace<T>;
24  template<typename T> using LUT2d = isce3::core::LUT2d<T>;
25 
26 public:
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 
57 private:
58  RadarGridParameters _radar_grid;
59  Orbit _orbit;
60  LUT2d<double> _doppler;
61 };
62 
63 } // namespace container
64 } // namespace isce3
65 
66 #include "RadarGeometry.icc"
LookSide lookSide() const
Get radar look side.
Definition: RadarGeometry.h:55
const DateTime & referenceEpoch() const
Reference epoch (UTC)
Definition: Orbit.h:77
const RadarGridParameters & radarGrid() const
Get radar grid.
Definition: RadarGeometry.h:31
Data structure to store date time to nano-sec precision.
Definition: DateTime.h:18
size_t gridWidth() const
Get radar grid width (number of range samples)
Definition: RadarGeometry.h:46
LookSide
Side that radar looks at, Left or Right.
Definition: LookSide.h:13
Definition: RadarGridParameters.h:15
A uniformly-spaced sequence of values over some interval.
Definition: forward.h:28
Linspace< double > sensingTime() const
Get radar grid azimuth time samples relative to reference epoch (s)
Definition: RadarGeometry.icc:28
const LUT2d< double > & doppler() const
Get Doppler.
Definition: RadarGeometry.h:37
size_t width() const
Get radar grid width.
Definition: RadarGridParameters.h:116
size_t length() const
Get radar grid length.
Definition: RadarGridParameters.h:110
isce3::core::LookSide lookSide() const
Get the look direction.
Definition: RadarGridParameters.h:60
Data structure to store 2D Lookup table.
Definition: forward.h:30
const Orbit & orbit() const
Get platform orbit.
Definition: RadarGeometry.h:34
size_t gridLength() const
Get radar grid length (number of azimuth lines)
Definition: RadarGeometry.h:43
Scene geometry in radar coordinate system.
Definition: RadarGeometry.h:16
Linspace< double > slantRange() const
Get radar grid slant range samples (m)
Definition: RadarGeometry.icc:44
const DateTime & referenceEpoch() const
Get reference epoch.
Definition: RadarGeometry.h:40
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing, supporting efficient lookup and interpolation.
Definition: Orbit.h:43

Generated for ISCE3.0 by doxygen 1.8.5.