isce3  0.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
RadarGeometry.h
1 #pragma once
2 
3 #include <isce3/container/RadarGeometry.h>
4 #include <isce3/cuda/core/Orbit.h>
5 #include <isce3/cuda/core/gpuLUT2d.h>
6 #include <isce3/product/RadarGridParameters.h>
7 
8 namespace isce3 { namespace cuda { namespace container {
9 
17 
20 
22 
23  template<typename T>
25 
26  template<typename T>
28 
29  template<typename T>
31 
32 public:
34  RadarGeometry(const RadarGridParameters& radar_grid,
36 
38  RadarGeometry(const RadarGridParameters& radar_grid, const HostOrbit& orbit,
39  const HostLUT2d<double>& doppler)
40  : RadarGeometry(radar_grid, DeviceOrbit(orbit),
41  DeviceLUT2d<double>(doppler))
42  {}
43 
46  : RadarGeometry(other.radarGrid(), other.orbit(), other.doppler())
47  {}
48 
50  const RadarGridParameters& radarGrid() const { return _radar_grid; }
51 
53  const DeviceOrbit& orbit() const { return _orbit; }
54 
56  const DeviceLUT2d<double>& doppler() const { return _doppler; }
57 
59  const DateTime& referenceEpoch() const { return orbit().referenceEpoch(); }
60 
62  size_t gridLength() const { return radarGrid().length(); }
63 
65  size_t gridWidth() const { return radarGrid().width(); }
66 
68  Linspace<double> sensingTime() const;
69 
71  Linspace<double> slantRange() const;
72 
74  LookSide lookSide() const { return radarGrid().lookSide(); }
75 
76 private:
77  RadarGridParameters _radar_grid;
78  DeviceOrbit _orbit;
79  DeviceLUT2d<double> _doppler;
80 };
81 
82 }}} // namespace isce3::cuda::container
83 
84 #include "RadarGeometry.icc"
CUDA counterpart of isce3::container::RadarGeometry.
Definition: RadarGeometry.h:13
const DateTime & referenceEpoch() const
Get reference epoch.
Definition: RadarGeometry.h:59
size_t gridWidth() const
Get radar grid width (number of range samples)
Definition: RadarGeometry.h:65
size_t gridLength() const
Get radar grid length (number of azimuth lines)
Definition: RadarGeometry.h:62
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
Definition: RadarGridParameters.h:15
A uniformly-spaced sequence of values over some interval.
Definition: forward.h:28
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
RadarGeometry(const RadarGridParameters &radar_grid, const DeviceOrbit &orbit, const DeviceLUT2d< double > &doppler)
Construct a new RadarGeometry object.
Definition: RadarGeometry.icc:17
Data structure to store 2D Lookup table.
Definition: forward.h:30
Linspace< double > sensingTime() const
Get radar grid azimuth time samples relative to reference epoch (s)
Definition: RadarGeometry.icc:35
CUDA counterpart of isce3::core::Orbit.
Definition: Orbit.h:22
const DeviceLUT2d< double > & doppler() const
Get Doppler.
Definition: RadarGeometry.h:56
RadarGeometry(const RadarGridParameters &radar_grid, const HostOrbit &orbit, const HostLUT2d< double > &doppler)
Construct a new RadarGeometry object.
Definition: RadarGeometry.h:38
Scene geometry in radar coordinate system.
Definition: RadarGeometry.h:16
RadarGeometry(const HostRadarGeometry &other)
Copy a host RadarGeometry object to the device.
Definition: RadarGeometry.h:45
const DeviceOrbit & orbit() const
Get orbit.
Definition: RadarGeometry.h:53
LookSide lookSide() const
Get radar look side.
Definition: RadarGeometry.h:74
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing, supporting efficient lookup and interpolation.
Definition: Orbit.h:43
const isce3::core::DateTime & referenceEpoch() const
Reference epoch (UTC)
Definition: Orbit.h:59
Definition: forward.h:13
Linspace< double > slantRange() const
Get radar grid slant range samples (m)
Definition: RadarGeometry.icc:49
const RadarGridParameters & radarGrid() const
Get radar grid.
Definition: RadarGeometry.h:50

Generated for ISCE3.0 by doxygen 1.8.5.