isce3 0.25.0
Loading...
Searching...
No Matches
GeoGridParameters.h
1#pragma once
2#include <isce3/core/forward.h>
3#include <isce3/io/forward.h>
4
5#include <limits>
6
7#include <pyre/journal.h>
8
9#include <isce3/core/Common.h>
10#include <isce3/core/Constants.h>
11#include <isce3/geometry/detail/Rdr2Geo.h>
12
13#include "RadarGridParameters.h"
14
15namespace isce3 { namespace product {
16
17std::string to_string(const GeoGridParameters& geogrid);
18
19std::ostream& operator<<(std::ostream& out, const GeoGridParameters& geogrid);
20
21class GeoGridParameters {
22public:
23 GeoGridParameters() = default;
24
37 GeoGridParameters(double geoGridStartX, double geoGridStartY,
38 double geoGridSpacingX, double geoGridSpacingY,
39 int width, int length, int epsgcode);
40
44 void print() const;
45
47 void startX(double x0) { _startX = x0; }
48
50 void startY(double y0) { _startY = y0; }
51
53 void spacingX(double dx) { _spacingX = dx; }
54
56 void spacingY(double dy) { _spacingY = dy; }
57
59 void length(int l) { _length = l; };
60
62 void width(int w) { _width = w; };
63
65 void epsg(int e) { _epsg = e; };
66
68 CUDA_HOSTDEV constexpr double startX() const { return _startX; };
69
71 CUDA_HOSTDEV constexpr double startY() const { return _startY; };
72
74 CUDA_HOSTDEV constexpr double endX() const {
75 return _startX + _spacingX * _width;
76 };
77
79 CUDA_HOSTDEV constexpr double endY() const {
80 return _startY + _spacingY * _length;
81 };
82
84 CUDA_HOSTDEV constexpr double spacingX() const { return _spacingX; };
85
87 CUDA_HOSTDEV constexpr double spacingY() const { return _spacingY; };
88
90 CUDA_HOSTDEV constexpr int width() const { return _width; };
91
93 CUDA_HOSTDEV constexpr int length() const { return _length; };
94
96 CUDA_HOSTDEV constexpr int epsg() const { return _epsg; };
97
98
99protected:
101 double _startX = 0.0;
102
104 double _startY = 0.0;
105
107 double _spacingX = 0.0;
108
110 double _spacingY = 0.0;
111
113 int _width = 0;
114
116 int _length = 0;
117
119 int _epsg = 4326;
120};
121
141 const isce3::core::Orbit& orbit,
142 const isce3::core::LUT2d<double>& doppler, double spacing_x,
143 double spacing_y, int epsg,
144 double min_height = isce3::core::GLOBAL_MIN_HEIGHT,
145 double max_height = isce3::core::GLOBAL_MAX_HEIGHT,
146 const double margin = 0.0, const int points_per_edge = 11,
147 const double threshold = isce3::geometry::detail::DEFAULT_TOL_HEIGHT,
148 const double height_threshold = 100);
149
168 const isce3::core::Orbit& orbit,
169 const isce3::core::LUT2d<double>& doppler,
170 const isce3::io::Raster& dem_raster,
171 double spacing_scale = 1.0,
172 double min_height = isce3::core::GLOBAL_MIN_HEIGHT,
173 double max_height = isce3::core::GLOBAL_MAX_HEIGHT,
174 const double margin = 0.0, const int points_per_edge = 11,
175 const double threshold = isce3::geometry::detail::DEFAULT_TOL_HEIGHT,
176 const double height_threshold = 100);
177
178
179}} // namespace isce3::product
Data structure to store 2D Lookup table.
Definition LUT2d.h:20
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing,...
Definition Orbit.h:44
Data structure meant to handle Raster I/O operations.
Definition Raster.h:32
Definition GeoGridParameters.h:21
double _spacingX
X spacing for the geocoded grid.
Definition GeoGridParameters.h:107
CUDA_HOSTDEV constexpr int epsg() const
Get epsg code for geocoded grid.
Definition GeoGridParameters.h:96
void print() const
Print GeoGridParameters attributes.
Definition GeoGridParameters.cpp:64
void startX(double x0)
Set start x position for geocoded grid.
Definition GeoGridParameters.h:47
CUDA_HOSTDEV constexpr double endY() const
Get end y position for geocoded grid.
Definition GeoGridParameters.h:79
int _length
number of lines in north-south direction (Y direction)
Definition GeoGridParameters.h:116
CUDA_HOSTDEV constexpr double spacingY() const
Get y spacing for geocoded grid.
Definition GeoGridParameters.h:87
void spacingY(double dy)
Set y spacing for geocoded grid.
Definition GeoGridParameters.h:56
CUDA_HOSTDEV constexpr double startX() const
Get start x position for geocoded grid.
Definition GeoGridParameters.h:68
void epsg(int e)
Set epsg code for geocoded grid.
Definition GeoGridParameters.h:65
double _startX
start X position for the geocoded grid
Definition GeoGridParameters.h:101
int _epsg
epsg code for the output geocoded grid
Definition GeoGridParameters.h:119
CUDA_HOSTDEV constexpr double spacingX() const
Get x spacing for geocoded grid.
Definition GeoGridParameters.h:84
double _spacingY
Y spacing for the geocoded grid.
Definition GeoGridParameters.h:110
CUDA_HOSTDEV constexpr double startY() const
Get start y position for geocoded grid.
Definition GeoGridParameters.h:71
CUDA_HOSTDEV constexpr int length() const
Get number of pixels in north-south/y direction for geocoded grid.
Definition GeoGridParameters.h:93
CUDA_HOSTDEV constexpr double endX() const
Get end x position for geocoded grid.
Definition GeoGridParameters.h:74
void length(int l)
Set number of pixels in east-west/x direction for geocoded grid.
Definition GeoGridParameters.h:59
void width(int w)
Set number of pixels in north-south/y direction for geocoded grid.
Definition GeoGridParameters.h:62
double _startY
start Y position for the geocoded grid
Definition GeoGridParameters.h:104
int _width
number of pixels in east-west direction (X direction)
Definition GeoGridParameters.h:113
CUDA_HOSTDEV constexpr int width() const
Get number of pixels in east-west/x direction for geocoded grid.
Definition GeoGridParameters.h:90
void startY(double y0)
Set start y position for geocoded grid.
Definition GeoGridParameters.h:50
void spacingX(double dx)
Set x spacing for geocoded grid.
Definition GeoGridParameters.h:53
Definition RadarGridParameters.h:16
The isce3::product namespace.
Definition forward.h:3
GeoGridParameters bbox2GeoGridScaled(const RadarGridParameters &radar_grid, const isce3::core::Orbit &orbit, const isce3::core::LUT2d< double > &doppler, const isce3::io::Raster &dem_raster, double spacing_scale, double min_height, double max_height, const double margin, const int pointsPerEdge, const double threshold, const double height_threshold)
Function to create a GeoGridParameters object by using DEM spacing and EPSG, and by estimating the bo...
Definition GeoGridParameters.cpp:123
GeoGridParameters bbox2GeoGrid(const RadarGridParameters &radar_grid, const isce3::core::Orbit &orbit, const isce3::core::LUT2d< double > &doppler, double spacing_x, double spacing_y, int epsg, double min_height, double max_height, const double margin, const int pointsPerEdge, const double threshold, const double height_threshold)
Function to create a GeoGridParameters object by using DEM spacing and EPSG, and by estimating the bo...
Definition GeoGridParameters.cpp:84
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5

Generated for ISCE3.0 by doxygen 1.13.2.