isce3  0.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Geo2rdr.h
1 //-*- C++ -*-
2 //-*- coding: utf-8 -*-
3 //
4 // Author: Bryan Riel, Joshua Cohen
5 // Copyright 2017-2018
6 
7 #pragma once
8 
9 // pyre
10 #include <pyre/journal.h>
11 
12 // isce3::core
13 #include <isce3/core/Metadata.h>
14 #include <isce3/core/Orbit.h>
15 #include <isce3/core/Poly2d.h>
16 #include <isce3/core/LUT1d.h>
17 #include <isce3/core/Ellipsoid.h>
18 #include <isce3/core/Peg.h>
19 #include <isce3/core/Projections.h>
20 
21 // isce3::io
22 #include <isce3/io/Raster.h>
23 
24 // isce3::product
25 #include <isce3/product/Product.h>
26 #include <isce3/product/RadarGridParameters.h>
27 
28 // Declaration
29 namespace isce3 {
30  namespace geometry {
31  class Geo2rdr;
32  }
33 }
34 
42 public:
43 
52  char frequency = 'A',
53  bool nativeDoppler = false);
54 
64  const isce3::core::Orbit &,
66  const isce3::core::Metadata &);
67 
77  const isce3::core::Orbit & orbit,
79  const isce3::core::LUT2d<double> & doppler = {});
80 
86  void threshold(double t) { _threshold = t; }
87 
93  void numiter(int n) { _numiter = n; }
94 
105  void geo2rdr(isce3::io::Raster & topoRaster,
106  isce3::io::Raster & rgoffRaster,
107  isce3::io::Raster & azoffRaster,
108  double azshift=0.0, double rgshift=0.0);
109 
123  void geo2rdr(isce3::io::Raster & topoRaster,
124  const std::string & outdir,
125  double azshift=0.0, double rgshift=0.0);
126 
128  const double NULL_VALUE = -1.0e6;
129 
130  // Getters for isce objects
131 
133  const isce3::core::Orbit & orbit() const { return _orbit; }
134 
136  const isce3::core::Ellipsoid & ellipsoid() const { return _ellipsoid; }
137 
139  const isce3::core::LUT2d<double> & doppler() const { return _doppler; }
140 
142  const isce3::product::RadarGridParameters & radarGridParameters() const { return _radarGrid; }
143 
144  // Get geo2rdr processing options
145 
147  double threshold() const { return _threshold; }
148 
150  int numiter() const { return _numiter; }
151 
152 private:
153 
155  void _printExtents(pyre::journal::info_t &,
156  double, double, double,
157  double, double, double,
158  size_t, size_t);
159 
161  void _checkOrbitInterpolation(double);
162 
163  // isce3::core objects
164  isce3::core::Ellipsoid _ellipsoid;
165  isce3::core::Orbit _orbit;
167 
168  // RadarGridParameters
170 
171  // Projection related data
172  isce3::core::ProjectionBase * _projTopo;
173 
174  // Processing parameters
175  int _numiter;
176  double _threshold;
177  size_t _linesPerBlock = 1000;
178 };
179 
180 // Get inline implementations for Geo2rdr
181 #define ISCE_GEOMETRY_GEO2RDR_ICC
182 #include "Geo2rdr.icc"
183 #undef ISCE_GEOMETRY_GEO2RDR_ICC
double threshold() const
Return the azimuth time convergence threshold used for processing.
Definition: Geo2rdr.h:147
Data structure to store Ellipsoid information.
Definition: Ellipsoid.h:20
const isce3::core::Orbit & orbit() const
Get Orbit object used for processing.
Definition: Geo2rdr.h:133
void geo2rdr(isce3::io::Raster &topoRaster, isce3::io::Raster &rgoffRaster, isce3::io::Raster &azoffRaster, double azshift=0.0, double rgshift=0.0)
Run geo2rdr with offsets and externally created offset rasters.
Definition: Geo2rdr.cpp:48
Definition: RadarGridParameters.h:15
const isce3::core::LUT2d< double > & doppler() const
Get Doppler model used for processing.
Definition: Geo2rdr.h:139
Data structure for storing basic radar geometry image metadata.
Definition: Metadata.h:17
const isce3::product::RadarGridParameters & radarGridParameters() const
Get read-only reference to RadarGridParameters.
Definition: Geo2rdr.h:142
void numiter(int n)
Set number of Newton-Raphson iterations.
Definition: Geo2rdr.h:93
Abstract base class for individual projections.
Definition: Projections.h:22
const double NULL_VALUE
NoData Value.
Definition: Geo2rdr.h:128
Geo2rdr(const isce3::product::Product &, char frequency= 'A', bool nativeDoppler=false)
Constructor from product.
Definition: Geo2rdr.icc:13
Definition: Product.h:29
void threshold(double t)
Set convergence threshold.
Definition: Geo2rdr.h:86
Transformer from map coordinates to radar geometry coordinates.
Definition: Geo2rdr.h:41
const isce3::core::Ellipsoid & ellipsoid() const
Get Ellipsoid object used for processing.
Definition: Geo2rdr.h:136
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing, supporting efficient lookup and interpolation.
Definition: Orbit.h:43
int numiter() const
Return number of Newton-Raphson iterations used for processing.
Definition: Geo2rdr.h:150
Data structure meant to handle Raster I/O operations.
Definition: Raster.h:34

Generated for ISCE3.0 by doxygen 1.8.5.