Transformer from radar geometry coordinates to map coordinates with DEM / reference altitude. More...
#include <Topo.h>
Public Member Functions | |
Topo (const isce3::product::Product &, char frequency= 'A', bool nativeDoppler=false) | |
Constructor using a product. More... | |
Topo (const isce3::product::RadarGridParameters &radarGrid, const isce3::core::Orbit &orbit, const isce3::core::Ellipsoid &ellipsoid, const isce3::core::LUT2d< double > &doppler={}) | |
Alternative constructor from ellipsoid orbit and radarGrid. More... | |
Topo (const isce3::core::Ellipsoid &ellipsoid, const isce3::core::Orbit &orbit, const isce3::core::LUT2d< double > &doppler, const isce3::core::Metadata &meta) | |
Constructor using core objects. More... | |
void | threshold (double t) |
Set convergence threshold. More... | |
void | numiter (int n) |
Set number of primary iterations. More... | |
void | extraiter (int n) |
Set number of secondary iterations. More... | |
void | demMethod (isce3::core::dataInterpMethod method) |
Set the DEM interpolation method while checking its validity. More... | |
void | epsgOut (int epsgcode) |
Set output coordinate system. More... | |
void | computeMask (bool mask) |
Set mask computation flag. More... | |
void | minimumHeight (double minh) |
Set minimum height. More... | |
void | maximumHeight (double maxh) |
Set maximum height. More... | |
void | decimaldegMargin (double deg) |
Set margin in decimal degrees. More... | |
isce3::core::LookSide | lookSide () const |
Get lookSide used for processing. | |
double | threshold () const |
Get distance convergence threshold used for processing. | |
int | numiter () const |
Get number of primary iterations used for processing. | |
int | extraiter () const |
Get number of secondary iterations used for processing. | |
int | epsgOut () const |
Get the output coordinate system used for processing. | |
isce3::core::dataInterpMethod | demMethod () const |
Get the DEM interpolation method used for processing. | |
bool | computeMask () const |
Get mask computation flag. | |
double | minimumHeight () const |
Get minimum height. | |
double | maximumHeight () const |
Get maximum height. | |
double | decimaldegMargin () const |
Get margin in decimal degrees. | |
const isce3::product::RadarGridParameters & | radarGridParameters () const |
Get read-only reference to RadarGridParameters. | |
void | computeDEMBounds (isce3::io::Raster &, DEMInterpolator &, size_t, size_t) |
void | topo (isce3::io::Raster &demRaster, const std::string &outdir) |
Main entry point for the module; internal creation of topo rasters. More... | |
void | topo (isce3::io::Raster &demRaster, TopoLayers &layers) |
Run topo with externally created topo rasters in TopoLayers object. More... | |
void | topo (isce3::io::Raster &demRaster, isce3::io::Raster &xRaster, isce3::io::Raster &yRaster, isce3::io::Raster &heightRaster, isce3::io::Raster &incRaster, isce3::io::Raster &hdgRaster, isce3::io::Raster &localIncRaster, isce3::io::Raster &localPsiRaster, isce3::io::Raster &simRaster, isce3::io::Raster &maskRaster) |
Run topo with externally created topo rasters; generate mask. More... | |
void | topo (isce3::io::Raster &demRaster, isce3::io::Raster &xRaster, isce3::io::Raster &yRaster, isce3::io::Raster &heightRaster, isce3::io::Raster &incRaster, isce3::io::Raster &hdgRaster, isce3::io::Raster &localIncRaster, isce3::io::Raster &localPsiRaster, isce3::io::Raster &simRaster) |
Run topo with externally created topo rasters; generate mask. More... | |
void | topo (isce3::geometry::DEMInterpolator &demInterp, const std::string &outdir) |
Main entry point for the module; internal creation of topo rasters. More... | |
void | topo (isce3::geometry::DEMInterpolator &demInterp, TopoLayers &layers) |
Run topo with externally created topo rasters in TopoLayers object. More... | |
void | topo (isce3::geometry::DEMInterpolator &demInterp, isce3::io::Raster &xRaster, isce3::io::Raster &yRaster, isce3::io::Raster &heightRaster, isce3::io::Raster &incRaster, isce3::io::Raster &hdgRaster, isce3::io::Raster &localIncRaster, isce3::io::Raster &localPsiRaster, isce3::io::Raster &simRaster, isce3::io::Raster &maskRaster) |
Run topo with externally created topo rasters; generate mask. More... | |
void | topo (isce3::geometry::DEMInterpolator &demInterp, isce3::io::Raster &xRaster, isce3::io::Raster &yRaster, isce3::io::Raster &heightRaster, isce3::io::Raster &incRaster, isce3::io::Raster &hdgRaster, isce3::io::Raster &localIncRaster, isce3::io::Raster &localPsiRaster, isce3::io::Raster &simRaster) |
Run topo with externally created topo rasters; generate mask. More... | |
void | setLayoverShadow (TopoLayers &, DEMInterpolator &, std::vector< isce3::core::Vec3 > &) |
Compute layover/shadow masks. More... | |
const isce3::core::Orbit & | orbit () const |
Get the orbits used for processing. | |
const isce3::core::Ellipsoid & | ellipsoid () const |
Get the ellipsoid used for processing. | |
const isce3::core::LUT2d < double > & | doppler () const |
Get the doppler module used for processing. | |
Transformer from radar geometry coordinates to map coordinates with DEM / reference altitude.
See geometry overview for a description of the algorithm
isce3::geometry::Topo::Topo | ( | const isce3::product::Product & | product, |
char | frequency = 'A' , |
||
bool | nativeDoppler = false |
||
) |
Constructor using a product.
[in] | product | Input Product |
[in] | frequency | Frequency designation |
[in] | nativeDoppler | Flag for using native Doppler frequencies instead of zero-Doppler |
|
inline |
Alternative constructor from ellipsoid orbit and radarGrid.
[in] | radarGrid | RadarGridParameters object |
[in] | orbit | Orbit object |
[in] | ellipsoid | Ellipsoid object |
[in] | lookSide | look direction of the radar |
[in] | doppler | LUT2d doppler model |
|
inline |
Constructor using core objects.
Alternative constructor from ellipsoid orbit and metadata. Used for supporting VRT-formatted products.
[in] | ellipsoid | Ellipsoid object |
[in] | orbit | Orbit object |
[in] | doppler | LUT1d doppler model |
[in] | meta | Metadata object with radar image parameters |
|
inline |
Set mask computation flag.
[in] | mask | Boolean for mask computation |
|
inline |
Set margin in decimal degrees.
[in] | deg | Margin around bounding box in decimal degrees |
|
inline |
Set the DEM interpolation method while checking its validity.
[in] | DEM | inerpolation method |
|
inline |
Set output coordinate system.
Set the EPSG code of the output layers and configure projection. See here for supported projections.
[in] | epsgcode | EPSG code of desired pixel-by-pixel outputs |
|
inline |
Set number of secondary iterations.
When we haven't converged after primary iterations, it typically means that the solver is iterating between two very close solutions. In this case, we use the previous 2 solutions and use the average to initialize the next iteration. This is equivalent to changing the step size between iterations.
[in] | n | Number of secondary iterations |
|
inline |
Set maximum height.
[in] | maxh | Maximum altitude for the scene |
|
inline |
Set minimum height.
[in] | minh | Minimum altitude for the scene |
|
inline |
Set number of primary iterations.
This is the number of iterations where solution of previous solution is directly used to initialize the next iteration
[in] | n | Number of primary iterations |
void isce3::geometry::Topo::setLayoverShadow | ( | TopoLayers & | , |
DEMInterpolator & | , | ||
std::vector< isce3::core::Vec3 > & | |||
) |
Compute layover/shadow masks.
[in] | layers | Object containing output layers |
[in] | demInterp | DEMInterpolator object |
[in] | satPosition | Vector of satellite position vectors for each line in block |
|
inline |
Set convergence threshold.
[in] | t | Distance threshold to flag convergence of iterations |
void isce3::geometry::Topo::topo | ( | isce3::io::Raster & | demRaster, |
const std::string & | outdir | ||
) |
Main entry point for the module; internal creation of topo rasters.
This is the main topo driver. The pixel-by-pixel output file names are fixed for now
[in] | demRaster | input DEM raster |
[in] | outdir | directory to write outputs to |
void isce3::geometry::Topo::topo | ( | isce3::io::Raster & | demRaster, |
TopoLayers & | layers | ||
) |
Run topo with externally created topo rasters in TopoLayers object.
[in] | demRaster | input DEM raster |
[in] | layers | TopoLayers object for storing and writing results |
void isce3::geometry::Topo::topo | ( | isce3::io::Raster & | demRaster, |
isce3::io::Raster & | xRaster, | ||
isce3::io::Raster & | yRaster, | ||
isce3::io::Raster & | heightRaster, | ||
isce3::io::Raster & | incRaster, | ||
isce3::io::Raster & | hdgRaster, | ||
isce3::io::Raster & | localIncRaster, | ||
isce3::io::Raster & | localPsiRaster, | ||
isce3::io::Raster & | simRaster, | ||
isce3::io::Raster & | maskRaster | ||
) |
Run topo with externally created topo rasters; generate mask.
[in] | demRaster | input DEM raster |
[in] | xRaster | output raster for X coordinate in requested projection system (meters or degrees) |
[in] | yRaster | output raster for Y cooordinate in requested projection system (meters or degrees) |
[in] | zRaster | output raster for height above ellipsoid (meters) |
[in] | incRaster | output raster for incidence angle (degrees) computed from vertical at target |
[in] | hdgRaster | output raster for azimuth angle (degrees) computed anti-clockwise from EAST (Right hand rule) |
[in] | localIncRaster | output raster for local incidence angle (degrees) at target |
[in] | localPsiRaster | output raster for local projection angle (degrees) at target |
[in] | simRaster | output raster for simulated amplitude image. |
[in] | maskRaster | output raster for layover/shadow mask. |
void isce3::geometry::Topo::topo | ( | isce3::io::Raster & | demRaster, |
isce3::io::Raster & | xRaster, | ||
isce3::io::Raster & | yRaster, | ||
isce3::io::Raster & | heightRaster, | ||
isce3::io::Raster & | incRaster, | ||
isce3::io::Raster & | hdgRaster, | ||
isce3::io::Raster & | localIncRaster, | ||
isce3::io::Raster & | localPsiRaster, | ||
isce3::io::Raster & | simRaster | ||
) |
Run topo with externally created topo rasters; generate mask.
[in] | demRaster | input DEM raster |
[in] | xRaster | output raster for X coordinate in requested projection system (meters or degrees) |
[in] | yRaster | output raster for Y cooordinate in requested projection system (meters or degrees) |
[in] | zRaster | output raster for height above ellipsoid (meters) |
[in] | incRaster | output raster for incidence angle (degrees) computed from vertical at target |
[in] | hdgRaster | output raster for azimuth angle (degrees) computed anti-clockwise from EAST (Right hand rule) |
[in] | localIncRaster | output raster for local incidence angle (degrees) at target |
[in] | localPsiRaster | output raster for local projection angle (degrees) at target |
[in] | simRaster | output raster for simulated amplitude image. |
void isce3::geometry::Topo::topo | ( | isce3::geometry::DEMInterpolator & | demInterp, |
const std::string & | outdir | ||
) |
Main entry point for the module; internal creation of topo rasters.
This is the main topo driver. The pixel-by-pixel output file names are fixed for now
[in] | demInterp | input DEM interpolator |
[in] | outdir | directory to write outputs to |
void isce3::geometry::Topo::topo | ( | isce3::geometry::DEMInterpolator & | demInterp, |
TopoLayers & | layers | ||
) |
Run topo with externally created topo rasters in TopoLayers object.
[in] | demInterp | input DEM interpolator |
[in] | layers | TopoLayers object for storing and writing results |
void isce3::geometry::Topo::topo | ( | isce3::geometry::DEMInterpolator & | demInterp, |
isce3::io::Raster & | xRaster, | ||
isce3::io::Raster & | yRaster, | ||
isce3::io::Raster & | heightRaster, | ||
isce3::io::Raster & | incRaster, | ||
isce3::io::Raster & | hdgRaster, | ||
isce3::io::Raster & | localIncRaster, | ||
isce3::io::Raster & | localPsiRaster, | ||
isce3::io::Raster & | simRaster, | ||
isce3::io::Raster & | maskRaster | ||
) |
Run topo with externally created topo rasters; generate mask.
[in] | demInterp | input DEM interpolator |
[in] | xRaster | output raster for X coordinate in requested projection system (meters or degrees) |
[in] | yRaster | output raster for Y cooordinate in requested projection system (meters or degrees) |
[in] | zRaster | output raster for height above ellipsoid (meters) |
[in] | incRaster | output raster for incidence angle (degrees) computed from vertical at target |
[in] | hdgRaster | output raster for azimuth angle (degrees) computed anti-clockwise from EAST (Right hand rule) |
[in] | localIncRaster | output raster for local incidence angle (degrees) at target |
[in] | localPsiRaster | output raster for local projection angle (degrees) at target |
[in] | simRaster | output raster for simulated amplitude image. |
[in] | maskRaster | output raster for layover/shadow mask. |
void isce3::geometry::Topo::topo | ( | isce3::geometry::DEMInterpolator & | demInterp, |
isce3::io::Raster & | xRaster, | ||
isce3::io::Raster & | yRaster, | ||
isce3::io::Raster & | heightRaster, | ||
isce3::io::Raster & | incRaster, | ||
isce3::io::Raster & | hdgRaster, | ||
isce3::io::Raster & | localIncRaster, | ||
isce3::io::Raster & | localPsiRaster, | ||
isce3::io::Raster & | simRaster | ||
) |
Run topo with externally created topo rasters; generate mask.
[in] | demInterp | input DEM interpolator |
[in] | xRaster | output raster for X coordinate in requested projection system (meters or degrees) |
[in] | yRaster | output raster for Y cooordinate in requested projection system (meters or degrees) |
[in] | zRaster | output raster for height above ellipsoid (meters) |
[in] | incRaster | output raster for incidence angle (degrees) computed from vertical at target |
[in] | hdgRaster | output raster for azimuth angle (degrees) computed anti-clockwise from EAST (Right hand rule) |
[in] | localIncRaster | output raster for local incidence angle (degrees) at target |
[in] | localPsiRaster | output raster for local projection angle (degrees) at target |
[in] | simRaster | output raster for simulated amplitude image. |