isce3 0.25.0
Loading...
Searching...
No Matches
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
8namespace isce3 { namespace cuda { namespace container {
9
14 using DateTime = isce3::core::DateTime;
15 using LookSide = isce3::core::LookSide;
16 using RadarGridParameters = isce3::product::RadarGridParameters;
17
18 using HostOrbit = isce3::core::Orbit;
19 using DeviceOrbit = isce3::cuda::core::Orbit;
20
21 using HostRadarGeometry = isce3::container::RadarGeometry;
22
23 template<typename T>
24 using Linspace = isce3::core::Linspace<T>;
25
26 template<typename T>
27 using HostLUT2d = isce3::core::LUT2d<T>;
28
29 template<typename T>
30 using DeviceLUT2d = isce3::cuda::core::gpuLUT2d<T>;
31
32public:
34 RadarGeometry(const RadarGridParameters& radar_grid,
35 const DeviceOrbit& orbit, const DeviceLUT2d<double>& doppler);
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
45 RadarGeometry(const HostRadarGeometry& other)
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
77 double wavelength() const { return radarGrid().wavelength(); }
78
79private:
80 RadarGridParameters _radar_grid;
81 DeviceOrbit _orbit;
82 DeviceLUT2d<double> _doppler;
83};
84
85}}} // namespace isce3::cuda::container
86
87#include "RadarGeometry.icc"
Definition RadarGridParameters.h:16
Scene geometry in radar coordinate system.
Definition RadarGeometry.h:16
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
LookSide lookSide() const
Get radar look side.
Definition RadarGeometry.h:74
RadarGeometry(const HostRadarGeometry &other)
Copy a host RadarGeometry object to the device.
Definition RadarGeometry.h:45
RadarGeometry(const RadarGridParameters &radar_grid, const DeviceOrbit &orbit, const DeviceLUT2d< double > &doppler)
Construct a new RadarGeometry object.
Definition RadarGeometry.icc:17
RadarGeometry(const RadarGridParameters &radar_grid, const HostOrbit &orbit, const HostLUT2d< double > &doppler)
Construct a new RadarGeometry object.
Definition RadarGeometry.h:38
Linspace< double > sensingTime() const
Get radar grid azimuth time samples relative to reference epoch (s)
Definition RadarGeometry.icc:35
const RadarGridParameters & radarGrid() const
Get radar grid.
Definition RadarGeometry.h:50
const DateTime & referenceEpoch() const
Get reference epoch.
Definition RadarGeometry.h:59
const DeviceOrbit & orbit() const
Get orbit.
Definition RadarGeometry.h:53
size_t gridWidth() const
Get radar grid width (number of range samples)
Definition RadarGeometry.h:65
const DeviceLUT2d< double > & doppler() const
Get Doppler.
Definition RadarGeometry.h:56
double wavelength() const
Get radar wavelength.
Definition RadarGeometry.h:77
Linspace< double > slantRange() const
Get radar grid slant range samples (m)
Definition RadarGeometry.icc:49
size_t gridLength() const
Get radar grid length (number of azimuth lines)
Definition RadarGeometry.h:62
CUDA counterpart of isce3::core::Orbit.
Definition Orbit.h:22
const isce3::core::DateTime & referenceEpoch() const
Reference epoch (UTC)
Definition Orbit.h:59
Definition gpuLUT2d.h:15
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.