isce3  0.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | List of all members
isce3::geometry::Topo Class Reference

Transformer from radar geometry coordinates to map coordinates with DEM / reference altitude. More...

#include <Topo.h>

Inheritance diagram for isce3::geometry::Topo:
isce3::cuda::geometry::Topo

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::Orbitorbit () const
 Get the orbits used for processing.
 
const isce3::core::Ellipsoidellipsoid () const
 Get the ellipsoid used for processing.
 
const isce3::core::LUT2d
< double > & 
doppler () const
 Get the doppler module used for processing.
 

Detailed Description

Transformer from radar geometry coordinates to map coordinates with DEM / reference altitude.

See geometry overview for a description of the algorithm

Constructor & Destructor Documentation

isce3::geometry::Topo::Topo ( const isce3::product::Product product,
char  frequency = 'A',
bool  nativeDoppler = false 
)

Constructor using a product.

Parameters
[in]productInput Product
[in]frequencyFrequency designation
[in]nativeDopplerFlag for using native Doppler frequencies instead of zero-Doppler
isce3::geometry::Topo::Topo ( const isce3::product::RadarGridParameters radarGrid,
const isce3::core::Orbit orbit,
const isce3::core::Ellipsoid ellipsoid,
const isce3::core::LUT2d< double > &  doppler = {} 
)
inline

Alternative constructor from ellipsoid orbit and radarGrid.

Parameters
[in]radarGridRadarGridParameters object
[in]orbitOrbit object
[in]ellipsoidEllipsoid object
[in]lookSidelook direction of the radar
[in]dopplerLUT2d doppler model
isce3::geometry::Topo::Topo ( const isce3::core::Ellipsoid ellipsoid,
const isce3::core::Orbit orbit,
const isce3::core::LUT2d< double > &  doppler,
const isce3::core::Metadata meta 
)
inline

Constructor using core objects.

Alternative constructor from ellipsoid orbit and metadata. Used for supporting VRT-formatted products.

Parameters
[in]ellipsoidEllipsoid object
[in]orbitOrbit object
[in]dopplerLUT1d doppler model
[in]metaMetadata object with radar image parameters

Member Function Documentation

void isce3::geometry::Topo::computeMask ( bool  mask)
inline

Set mask computation flag.

Parameters
[in]maskBoolean for mask computation
void isce3::geometry::Topo::decimaldegMargin ( double  deg)
inline

Set margin in decimal degrees.

Parameters
[in]degMargin around bounding box in decimal degrees
void isce3::geometry::Topo::demMethod ( isce3::core::dataInterpMethod  method)
inline

Set the DEM interpolation method while checking its validity.

Parameters
[in]DEMinerpolation method
void isce3::geometry::Topo::epsgOut ( int  epsgcode)
inline

Set output coordinate system.

Set the EPSG code of the output layers and configure projection. See here for supported projections.

Parameters
[in]epsgcodeEPSG code of desired pixel-by-pixel outputs
void isce3::geometry::Topo::extraiter ( int  n)
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.

Parameters
[in]nNumber of secondary iterations
void isce3::geometry::Topo::maximumHeight ( double  maxh)
inline

Set maximum height.

Parameters
[in]maxhMaximum altitude for the scene
void isce3::geometry::Topo::minimumHeight ( double  minh)
inline

Set minimum height.

Parameters
[in]minhMinimum altitude for the scene
void isce3::geometry::Topo::numiter ( int  n)
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

Parameters
[in]nNumber of primary iterations
void isce3::geometry::Topo::setLayoverShadow ( TopoLayers ,
DEMInterpolator ,
std::vector< isce3::core::Vec3 > &   
)

Compute layover/shadow masks.

Parameters
[in]layersObject containing output layers
[in]demInterpDEMInterpolator object
[in]satPositionVector of satellite position vectors for each line in block
void isce3::geometry::Topo::threshold ( double  t)
inline

Set convergence threshold.

Parameters
[in]tDistance 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

  • x.rdr - X coordinate in requested projection system (meters or degrees)
  • y.rdr - Y cooordinate in requested projection system (meters or degrees)
  • z.rdr - Height above ellipsoid (meters)
  • inc.rdr - Incidence angle (degrees) computed from vertical at target
  • hdg.rdr - Azimuth angle (degrees) computed anti-clockwise from EAST (Right hand rule)
  • localInc.rdr - Local incidence angle (degrees) at target
  • locaPsi.rdr - Local projection angle (degrees) at target
  • simamp.rdr - Simulated amplitude image.
Parameters
[in]demRasterinput DEM raster
[in]outdirdirectory 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.

Parameters
[in]demRasterinput DEM raster
[in]layersTopoLayers 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.

Parameters
[in]demRasterinput DEM raster
[in]xRasteroutput raster for X coordinate in requested projection system (meters or degrees)
[in]yRasteroutput raster for Y cooordinate in requested projection system (meters or degrees)
[in]zRasteroutput raster for height above ellipsoid (meters)
[in]incRasteroutput raster for incidence angle (degrees) computed from vertical at target
[in]hdgRasteroutput raster for azimuth angle (degrees) computed anti-clockwise from EAST (Right hand rule)
[in]localIncRasteroutput raster for local incidence angle (degrees) at target
[in]localPsiRasteroutput raster for local projection angle (degrees) at target
[in]simRasteroutput raster for simulated amplitude image.
[in]maskRasteroutput 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.

Parameters
[in]demRasterinput DEM raster
[in]xRasteroutput raster for X coordinate in requested projection system (meters or degrees)
[in]yRasteroutput raster for Y cooordinate in requested projection system (meters or degrees)
[in]zRasteroutput raster for height above ellipsoid (meters)
[in]incRasteroutput raster for incidence angle (degrees) computed from vertical at target
[in]hdgRasteroutput raster for azimuth angle (degrees) computed anti-clockwise from EAST (Right hand rule)
[in]localIncRasteroutput raster for local incidence angle (degrees) at target
[in]localPsiRasteroutput raster for local projection angle (degrees) at target
[in]simRasteroutput 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

  • x.rdr - X coordinate in requested projection system (meters or degrees)
  • y.rdr - Y cooordinate in requested projection system (meters or degrees)
  • z.rdr - Height above ellipsoid (meters)
  • inc.rdr - Incidence angle (degrees) computed from vertical at target
  • hdg.rdr - Azimuth angle (degrees) computed anti-clockwise from EAST (Right hand rule)
  • localInc.rdr - Local incidence angle (degrees) at target
  • locaPsi.rdr - Local projection angle (degrees) at target
  • simamp.rdr - Simulated amplitude image.
Parameters
[in]demInterpinput DEM interpolator
[in]outdirdirectory 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.

Parameters
[in]demInterpinput DEM interpolator
[in]layersTopoLayers 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.

Parameters
[in]demInterpinput DEM interpolator
[in]xRasteroutput raster for X coordinate in requested projection system (meters or degrees)
[in]yRasteroutput raster for Y cooordinate in requested projection system (meters or degrees)
[in]zRasteroutput raster for height above ellipsoid (meters)
[in]incRasteroutput raster for incidence angle (degrees) computed from vertical at target
[in]hdgRasteroutput raster for azimuth angle (degrees) computed anti-clockwise from EAST (Right hand rule)
[in]localIncRasteroutput raster for local incidence angle (degrees) at target
[in]localPsiRasteroutput raster for local projection angle (degrees) at target
[in]simRasteroutput raster for simulated amplitude image.
[in]maskRasteroutput 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.

Parameters
[in]demInterpinput DEM interpolator
[in]xRasteroutput raster for X coordinate in requested projection system (meters or degrees)
[in]yRasteroutput raster for Y cooordinate in requested projection system (meters or degrees)
[in]zRasteroutput raster for height above ellipsoid (meters)
[in]incRasteroutput raster for incidence angle (degrees) computed from vertical at target
[in]hdgRasteroutput raster for azimuth angle (degrees) computed anti-clockwise from EAST (Right hand rule)
[in]localIncRasteroutput raster for local incidence angle (degrees) at target
[in]localPsiRasteroutput raster for local projection angle (degrees) at target
[in]simRasteroutput raster for simulated amplitude image.

The documentation for this class was generated from the following files:

Generated for ISCE3.0 by doxygen 1.8.5.