@@ -11,54 +11,84 @@ class isce3::cuda::image::ResampSlc : public isce3::image::ResampSlc {
11
11
public:
12
12
// Meta-methods
13
13
// Constructor from an isce3::product::RadarGridProduct
14
- inline ResampSlc (const isce3::product::RadarGridProduct &product, char frequency = ' A' ) :
15
- isce3::image::ResampSlc(product, frequency) {}
14
+ inline ResampSlc (const isce3::product::RadarGridProduct &product, char frequency = ' A' ,
15
+ std::complex <float > invalid_value = std::complex <float >(0.0 , 0.0 )) :
16
+ isce3::image::ResampSlc(product, frequency, invalid_value) {}
16
17
17
18
// Constructor from an isce3::product::RadarGridProduct and reference product (flattening)
18
19
inline ResampSlc (const isce3::product::RadarGridProduct & product,
19
20
const isce3::product::RadarGridProduct & refProduct,
20
- char frequency = ' A' ) :
21
- isce3::image::ResampSlc(product, refProduct, frequency) {}
21
+ char frequency = ' A' ,
22
+ std::complex <float > invalid_value = std::complex <float >(0.0 , 0.0 )) :
23
+ isce3::image::ResampSlc(product, refProduct, frequency, invalid_value) {}
22
24
23
25
/* * Constructor from an isce3::product::RadarGridParameters (no flattening) */
24
26
inline ResampSlc (const isce3::product::RadarGridParameters & rdr_grid,
25
- const isce3::core::LUT2d<double > & doppler) :
26
- isce3::image::ResampSlc(rdr_grid, doppler) {}
27
+ const isce3::core::LUT2d<double > & doppler,
28
+ std::complex <float > invalid_value = std::complex <float >(0.0 , 0.0 )) :
29
+ isce3::image::ResampSlc(rdr_grid, doppler, invalid_value) {}
27
30
28
31
/* * Constructor from an isce3::product::RadarGridParameters and reference radar grid (flattening) */
29
32
inline ResampSlc (const isce3::product::RadarGridParameters & rdr_grid,
30
33
const isce3::product::RadarGridParameters & ref_rdr_grid,
31
34
const isce3::core::LUT2d<double > & doppler,
32
- double wvl, double ref_wvl ) :
33
- isce3::image::ResampSlc(rdr_grid, ref_rdr_grid, doppler, wvl, ref_wvl ) {}
35
+ std:: complex < float > invalid_value = std:: complex < float >( 0.0 , 0.0 ) ) :
36
+ isce3::image::ResampSlc(rdr_grid, ref_rdr_grid, doppler, invalid_value ) {}
34
37
35
38
// Constructor from individual components (no flattening)
36
39
inline ResampSlc (const isce3::core::LUT2d<double > & doppler,
37
40
double startingRange, double rangePixelSpacing,
38
- double sensingStart, double prf, double wvl) :
41
+ double sensingStart, double prf, double wvl,
42
+ std::complex <float > invalid_value = std::complex <float >(0.0 , 0.0 )) :
39
43
isce3::image::ResampSlc(doppler, startingRange, rangePixelSpacing, sensingStart,
40
- prf, wvl) {}
44
+ prf, wvl, invalid_value ) {}
41
45
42
46
// Constructor from individual components (flattening)
43
47
inline ResampSlc (const isce3::core::LUT2d<double > & doppler,
44
48
double startingRange, double rangePixelSpacing,
45
49
double sensingStart, double prf, double wvl,
46
50
double refStartingRange, double refRangePixelSpacing,
47
- double refWvl) :
51
+ double refWvl,
52
+ std::complex <float > invalid_value = std::complex <float >(0.0 , 0.0 )) :
48
53
isce3::image::ResampSlc(doppler, startingRange, rangePixelSpacing, sensingStart,
49
- prf, wvl, refStartingRange, refRangePixelSpacing, refWvl) {}
54
+ prf, wvl, refStartingRange, refRangePixelSpacing, refWvl,
55
+ invalid_value) {}
50
56
51
- // All resamp need? to be redefined to ensure derived functions used
52
- // Generic resamp entry point from externally created rasters
57
+ /* Generic resamp entry point from externally created rasters
58
+ *
59
+ * \param[in] inputSlc raster of SLC to be resampled
60
+ * \param[in] outputSlc raster of resampled SLC
61
+ * \param[in] rgOffsetRaster raster of range shift to be applied
62
+ * \param[in] azOffsetRaster raster of azimuth shift to be applied
63
+ * \param[in] inputBand band of input raster to resample
64
+ * \param[in] flatten flag to flatten resampled SLC
65
+ * \param[in] rowBuffer number of rows excluded from top/bottom of azimuth
66
+ * raster while searching for min/max indices of
67
+ * resampled SLC
68
+ * \param[in] chipSize size of chip used in sinc interpolation
69
+ */
53
70
void resamp (isce3::io::Raster & inputSlc, isce3::io::Raster & outputSlc,
54
71
isce3::io::Raster & rgOffsetRaster, isce3::io::Raster & azOffsetRaster,
55
- int inputBand=1 , bool flatten=false , bool isComplex= true , int rowBuffer=40 ,
72
+ int inputBand=1 , bool flatten=false , int rowBuffer=40 ,
56
73
int chipSize=isce3::core::SINC_ONE);
57
74
58
- // Generic resamp entry point: use filenames to create rasters
75
+ /* Generic resamp entry point: use filenames to create rasters
76
+ * internally in function.
77
+ *
78
+ * \param[in] inputFilename path of file containing SLC to be resampled
79
+ * \param[in] outputFilename path of file containing resampled SLC
80
+ * \param[in] rgOffsetFilename path of file containing range shift to be applied
81
+ * \param[in] azOffsetFilename path of file containing azimuth shift to be applied
82
+ * \param[in] inputBand band of input raster to resample
83
+ * \param[in] flatten flag to flatten resampled SLC
84
+ * \param[in] rowBuffer number of rows excluded from top/bottom of azimuth
85
+ * raster while searching for min/max indices of
86
+ * resampled SLC
87
+ * \param[in] chipSize size of chip used in sinc interpolation
88
+ */
59
89
void resamp (const std::string & inputFilename, const std::string & outputFilename,
60
90
const std::string & rgOffsetFilename, const std::string & azOffsetFilename,
61
- int inputBand=1 , bool flatten=false , bool isComplex= true , int rowBuffer=40 ,
91
+ int inputBand=1 , bool flatten=false , int rowBuffer=40 ,
62
92
int chipSize=isce3::core::SINC_ONE);
63
93
64
94
};
0 commit comments