isce3 0.25.0
Loading...
Searching...
No Matches
GeocodePolygon.h
1#pragma once
2
3// pyre
4#include <pyre/journal.h>
5
6// isce3::core
7#include <isce3/core/Ellipsoid.h>
8#include <isce3/core/LUT2d.h>
9#include <isce3/core/Orbit.h>
10
11// isce3::io
12#include <isce3/io/Raster.h>
13
14// isce3::product
15#include <isce3/product/RadarGridParameters.h>
16
17// isce3::geometry
18#include <isce3/geometry/RTC.h>
19
20
21namespace isce3 { namespace geocode {
22
23template<class T>
25public:
26
40 GeocodePolygon(const std::vector<double>& x_vect,
41 const std::vector<double>& y_vect,
43 const isce3::core::Orbit& orbit,
44 const isce3::core::Ellipsoid& ellipsoid,
45 const isce3::core::LUT2d<double>& input_dop,
46 isce3::io::Raster& dem_raster, double threshold = 1e-8,
47 int num_iter = 100, double delta_range = 1e-8);
48
78 void getPolygonMean(
80 const isce3::core::LUT2d<double>& input_dop,
81 isce3::io::Raster& input_raster,
82 isce3::io::Raster& output_raster,
83 isce3::io::Raster& dem_raster,
84 bool flag_apply_rtc = false,
85 isce3::geometry::rtcInputTerrainRadiometry input_terrain_radiometry =
86 isce3::geometry::rtcInputTerrainRadiometry::BETA_NAUGHT,
88 output_terrain_radiometry = isce3::geometry::
89 rtcOutputTerrainRadiometry::GAMMA_NAUGHT,
90 int exponent = 0,
91 double geogrid_upsampling =
92 std::numeric_limits<double>::quiet_NaN(),
93 float rtc_min_value_db = std::numeric_limits<float>::quiet_NaN(),
94 double abs_cal_factor = 1, float radar_grid_nlooks = 1,
95 isce3::io::Raster* output_off_diag_terms = nullptr,
96 isce3::io::Raster* output_radargrid_data = nullptr,
97 isce3::io::Raster* output_rtc = nullptr,
98 isce3::io::Raster* output_weights = nullptr,
99 isce3::core::dataInterpMethod interp_method =
100 isce3::core::dataInterpMethod::BIQUINTIC_METHOD);
101
102 // Radar grid X offset
103 int xoff() const { return _xoff; }
104
105 // Radar grid Y offset
106 int yoff() const { return _yoff; }
107
108 // Cropped radar grid X size
109 int xsize() const { return _xsize; }
110
111 // Cropped radar grid Y size
112 int ysize() const { return _ysize; }
113
114 // Output number of looks
115 float out_nlooks() const { return _out_nlooks; }
116
117private:
118
119 std::vector<double> _az_time_vect, _slant_range_vect;
120 int _xoff;
121 int _yoff;
122 int _xsize;
123 int _ysize;
124
125 float _out_nlooks;
126
127 double _threshold;
128 int _num_iter;
129 double _delta_range;
130
131 isce3::core::Orbit _orbit;
132
133 template<class T_out>
134 void _getPolygonMean(
136 const isce3::product::RadarGridParameters& radar_grid,
137 isce3::io::Raster& input_raster,
138 isce3::io::Raster& output_raster,
139 bool flag_apply_rtc = false,
140 float rtc_min_value = 0,
141 double abs_cal_factor = 1, float radar_grid_nlooks = 1,
142 isce3::io::Raster* output_off_diag_terms = nullptr,
143 isce3::io::Raster* output_radargrid_data = nullptr,
144 isce3::io::Raster* output_weights = nullptr);
145
146 void _ValidatePolygon(
147 const isce3::product::RadarGridParameters& radar_grid);
148
149};
150
151}} // namespace isce3::geocode
Data structure to store Ellipsoid information.
Definition Ellipsoid.h:20
Data structure to store 2D Lookup table.
Definition LUT2d.h:20
Data structure for a 2D row-major matrix.
Definition Matrix.h:23
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing,...
Definition Orbit.h:44
GeocodePolygon(const std::vector< double > &x_vect, const std::vector< double > &y_vect, const isce3::product::RadarGridParameters &radar_grid, const isce3::core::Orbit &orbit, const isce3::core::Ellipsoid &ellipsoid, const isce3::core::LUT2d< double > &input_dop, isce3::io::Raster &dem_raster, double threshold=1e-8, int num_iter=100, double delta_range=1e-8)
Calculate the mean value of radar-grid samples using a polygon defined over geographical coordinates.
Definition GeocodePolygon.cpp:21
void getPolygonMean(const isce3::product::RadarGridParameters &radar_grid, const isce3::core::LUT2d< double > &input_dop, isce3::io::Raster &input_raster, isce3::io::Raster &output_raster, isce3::io::Raster &dem_raster, bool flag_apply_rtc=false, isce3::geometry::rtcInputTerrainRadiometry input_terrain_radiometry=isce3::geometry::rtcInputTerrainRadiometry::BETA_NAUGHT, isce3::geometry::rtcOutputTerrainRadiometry output_terrain_radiometry=isce3::geometry::rtcOutputTerrainRadiometry::GAMMA_NAUGHT, int exponent=0, double geogrid_upsampling=std::numeric_limits< double >::quiet_NaN(), float rtc_min_value_db=std::numeric_limits< float >::quiet_NaN(), double abs_cal_factor=1, float radar_grid_nlooks=1, isce3::io::Raster *output_off_diag_terms=nullptr, isce3::io::Raster *output_radargrid_data=nullptr, isce3::io::Raster *output_rtc=nullptr, isce3::io::Raster *output_weights=nullptr, isce3::core::dataInterpMethod interp_method=isce3::core::dataInterpMethod::BIQUINTIC_METHOD)
Calculate the mean value of radar-grid samples using a polygon defined over geographical coordinates.
Definition GeocodePolygon.cpp:138
Data structure meant to handle Raster I/O operations.
Definition Raster.h:32
Definition RadarGridParameters.h:16
The isce3::geometry namespace.
Definition boundingbox.h:15
rtcInputTerrainRadiometry
Enumeration type to indicate input terrain radiometry (for RTC)
Definition RTC.h:22
rtcOutputTerrainRadiometry
Enumeration type to indicate output terrain radiometry (for RTC)
Definition RTC.h:30
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5

Generated for ISCE3.0 by doxygen 1.13.2.