6#include <isce3/core/LUT1d.h>
7#include <isce3/io/forward.h>
65 inline void wavelength(
double wvl) { _wavelength = wvl; }
99 std::valarray<std::complex<float>> &secAvgSpectrum,
100 std::valarray<double> &rangeFrequencies,
101 size_t linesPerBlockData,
103 double &frequencyShift);
117 double _offsetStartingRangeShift = 0.0;
120 double _rangePixelSpacing;
129 int _azimuthLooks = 1;
131 bool _multiLookEnabled =
false;
134 size_t _linesPerBlock = 1024;
137 size_t _oversampleFactor = 1;
143#define ISCE_SIGNAL_CROSSMUL_ICC
144#include "Crossmul.icc"
145#undef ISCE_SIGNAL_CROSSMUL_ICC
Data structure to hold a 1D Lookup table.
Definition LUT1d.h:15
Data structure meant to handle Raster I/O operations.
Definition Raster.h:32
Intereferogram generation by cross-multiplication of reference and secondary SLCs.
Definition Crossmul.h:13
void oversampleFactor(size_t oversamp)
Set oversample factor.
Definition Crossmul.h:83
bool multiLookEnabled() const
Get boolean multilook flag.
Definition Crossmul.h:95
double startingRangeShift() const
Get reference and secondary starting range shift.
Definition Crossmul.h:56
double wavelength() const
Get Wavelength.
Definition Crossmul.h:68
void wavelength(double wvl)
Set Wavelength.
Definition Crossmul.h:65
double rangePixelSpacing() const
Get range pixel spacing.
Definition Crossmul.h:62
void rangePixelSpacing(double rgPxlSpacing)
Set range pixel spacing.
Definition Crossmul.h:59
void startingRangeShift(double rng_shift)
Set reference and seconary starting range shift.
Definition Crossmul.h:53
void crossmul(isce3::io::Raster &refSlcRaster, isce3::io::Raster &secSlcRaster, isce3::io::Raster &ifgRaster, isce3::io::Raster &coherence, isce3::io::Raster *rngOffsetRaster=nullptr) const
Crossmultiply 2 SLCs.
Definition Crossmul.cpp:69
int azimuthLooks() const
Get number of azimuth looks.
Definition Crossmul.h:80
size_t oversampleFactor() const
Get oversample factor.
Definition Crossmul.h:86
void refDoppler(isce3::core::LUT1d< double > refDopp)
Set dopplers LUT for reference SLC.
Definition Crossmul.h:41
void getPeakIndex(std::valarray< float > data, size_t &peakIndex)
estimate the index of the maximum of a vector of data
Definition Crossmul.icc:118
int rangeLooks() const
Get number of range looks.
Definition Crossmul.h:74
size_t linesPerBlock() const
Get linesPerBlock.
Definition Crossmul.h:92
void secDoppler(isce3::core::LUT1d< double > secDopp)
Set dopplers LUT for secondary SLC.
Definition Crossmul.h:47
void rangeFrequencyShift(std::valarray< std::complex< float > > &refAvgSpectrum, std::valarray< std::complex< float > > &secAvgSpectrum, std::valarray< double > &rangeFrequencies, size_t linesPerBlockData, size_t fft_size, double &frequencyShift)
Compute the avergae frequency shift in range direction between two SLCs.
Definition Crossmul.icc:75
const isce3::core::LUT1d< double > & refDoppler() const
Get doppler LUT for reference SLC.
Definition Crossmul.h:44
const isce3::core::LUT1d< double > & secDoppler() const
Get doppler LUT for secondary SLC.
Definition Crossmul.h:50
void doppler(isce3::core::LUT1d< double >, isce3::core::LUT1d< double >)
Set doppler LUTs for reference and secondary SLCs.
Definition Crossmul.icc:20
void linesPerBlock(size_t linesPerBlock)
Set linesPerBlock.
Definition Crossmul.h:89