isce3  0.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Topo.h
1 //-*- coding: utf-8 -*_
2 //
3 // Author: Bryan V. Riel
4 // Copyright: 2017-2018
5 
6 #pragma once
7 
8 #include "forward.h"
9 
10 #include <isce3/geometry/forward.h>
11 #include <isce3/geometry/Topo.h>
12 
13 // CUDA Topo class definition
18 
19  public:
21  inline Topo(const isce3::product::Product & product,
22  char frequency = 'A',
23  bool nativeDoppler = false) :
24  isce3::geometry::Topo(product, frequency, nativeDoppler){}
25 
26  inline Topo(const isce3::product::RadarGridParameters & radarGrid,
27  const isce3::core::Orbit & orbit,
29  const isce3::core::LUT2d<double> & doppler = {}) :
30  isce3::geometry::Topo(radarGrid, orbit, ellipsoid, doppler) {}
31 
33  inline Topo(const isce3::core::Ellipsoid & ellps,
34  const isce3::core::Orbit & orbit,
36  const isce3::core::Metadata & meta) :
37  isce3::geometry::Topo(ellps, orbit, doppler, meta) {}
38 
40  void topo(isce3::io::Raster &, const std::string &);
41 
43  void topo(isce3::io::Raster & demRaster, isce3::io::Raster & xRaster,
44  isce3::io::Raster & yRaster, isce3::io::Raster & heightRaster,
45  isce3::io::Raster & incRaster, isce3::io::Raster & hdgRaster,
46  isce3::io::Raster & localIncRaster, isce3::io::Raster & localPsiRaster,
47  isce3::io::Raster & simRaster);
48 
50  void topo(isce3::io::Raster & demRaster, isce3::io::Raster & xRaster,
51  isce3::io::Raster & yRaster, isce3::io::Raster & heightRaster,
52  isce3::io::Raster & incRaster, isce3::io::Raster & hdgRaster,
53  isce3::io::Raster & localIncRaster, isce3::io::Raster & localPsiRaster,
54  isce3::io::Raster & simRaster, isce3::io::Raster & maskRaster);
55 
58 
59  private:
60  // Default number of lines per block
61  size_t _linesPerBlock = 1000;
62 
63  // Compute number of lines per block dynamically from GPU memmory
64  void computeLinesPerBlock(isce3::io::Raster &,
66 
67  // Generate layover/shadow masks using an orbit
68  void _setLayoverShadowWithOrbit(const isce3::core::Orbit & orbit,
71  size_t lineStart);
72 };
const isce3::core::LUT2d< double > & doppler() const
Get the doppler module used for processing.
Definition: Topo.h:356
Data structure to store Ellipsoid information.
Definition: Ellipsoid.h:20
Definition: DEMInterpolator.h:22
Definition: RadarGridParameters.h:15
const isce3::core::Orbit & orbit() const
Get the orbits used for processing.
Definition: Topo.h:352
Data structure for storing basic radar geometry image metadata.
Definition: Metadata.h:17
Topo(const isce3::core::Ellipsoid &ellps, const isce3::core::Orbit &orbit, const isce3::core::LUT2d< double > &doppler, const isce3::core::Metadata &meta)
Constructor from isce3::core objects.
Definition: Topo.h:33
const isce3::core::Ellipsoid & ellipsoid() const
Get the ellipsoid used for processing.
Definition: Topo.h:354
Definition: Product.h:29
Definition: TopoLayers.h:15
void topo(isce3::io::Raster &, const std::string &)
Run topo - main entrypoint; internal creation of topo rasters.
Definition: Topo.cpp:45
Transformer from radar geometry coordinates to map coordinates with DEM / reference altitude on GPU...
Definition: Topo.h:17
Sequence of platform ephemeris samples (state vectors) with uniform temporal spacing, supporting efficient lookup and interpolation.
Definition: Orbit.h:43
Topo(const isce3::product::Product &product, char frequency= 'A', bool nativeDoppler=false)
Constructor from Product.
Definition: Topo.h:21
Data structure meant to handle Raster I/O operations.
Definition: Raster.h:34
Transformer from radar geometry coordinates to map coordinates with DEM / reference altitude...
Definition: Topo.h:33

Generated for ISCE3.0 by doxygen 1.8.5.