Intereferogram generation by cross-multiplication of reference and secondary SLCs. More...
#include <Crossmul.h>
Public Member Functions | |
void | crossmul (isce3::io::Raster &referenceSLC, isce3::io::Raster &secondarySLC, isce3::io::Raster &rngOffset, isce3::io::Raster &interferogram, isce3::io::Raster &coherence) |
Run crossmul. More... | |
void | crossmul (isce3::io::Raster &referenceSLC, isce3::io::Raster &secondarySLC, isce3::io::Raster &interferogram, isce3::io::Raster &coherence) |
Run crossmul. More... | |
void | crossmul (isce3::io::Raster &referenceSLC, isce3::io::Raster &secondarySLC, isce3::io::Raster &interferogram) |
Run crossmul. More... | |
void | lookdownShiftImpact (size_t oversample, size_t fft_size, size_t blockRows, std::valarray< std::complex< float >> &shiftImpact) |
Compute the frequency response due to a subpixel shift introduced by upsampling and downsampling. More... | |
void | rangeCommonBandFilter (std::valarray< std::complex< float >> &refSlc, std::valarray< std::complex< float >> &secSlc, std::valarray< std::complex< float >> geometryIfgram, std::valarray< std::complex< float >> geometryIfgramConj, std::valarray< std::complex< float >> &refSpectrum, std::valarray< std::complex< float >> &secSpectrum, std::valarray< double > &rangeFrequencies, isce3::signal::Filter< float > &rngFilter, size_t blockRows, size_t ncols) |
Range common band filtering. More... | |
void | doppler (isce3::core::LUT1d< double >, isce3::core::LUT1d< double >) |
Set doppler LUTs for reference and secondary SLCs. More... | |
void | prf (double) |
Set pulse repetition frequency (PRF) More... | |
void | rangeSamplingFrequency (double) |
Set range sampling frequency. More... | |
void | rangeBandwidth (double) |
Set the range bandwidth. More... | |
void | rangePixelSpacing (double) |
Range pixel spacing. More... | |
void | wavelength (double) |
Set Wavelength. More... | |
void | commonAzimuthBandwidth (double) |
Set azimuth common bandwidth. More... | |
void | beta (double) |
Set beta parameter for the azimuth common band filter. More... | |
void | rangeLooks (int) |
Set number of range looks. More... | |
void | azimuthLooks (int) |
Set number of azimuth looks. More... | |
void | doCommonAzimuthbandFiltering (bool) |
Set common azimuth band filtering flag. More... | |
void | doCommonRangebandFiltering (bool) |
Set common range band filtering flag. More... | |
void | rangeFrequencyShift (std::valarray< std::complex< float >> &refAvgSpectrum, std::valarray< std::complex< float >> &secAvgSpectrum, std::valarray< double > &rangeFrequencies, size_t blockRowsData, size_t fft_size, double &frequencyShift) |
Compute the avergae frequency shift in range direction between two SLCs. More... | |
void | getPeakIndex (std::valarray< float > data, size_t &peakIndex) |
estimate the index of the maximum of a vector of data More... | |
Intereferogram generation by cross-multiplication of reference and secondary SLCs.
The secondary SLC must be on the same image grid as the reference SLC,
|
inline |
Set number of azimuth looks.
[in] | azimuthLooks | number of looks in azimuth direction |
|
inline |
Set beta parameter for the azimuth common band filter.
[in] | beta | parameter for the azimuth common band filter design |
|
inline |
Set azimuth common bandwidth.
[in] | commonAzimuthBandwidth | common azimuth bandwidth |
void isce3::signal::Crossmul::crossmul | ( | isce3::io::Raster & | referenceSLC, |
isce3::io::Raster & | secondarySLC, | ||
isce3::io::Raster & | rngOffsetRaster, | ||
isce3::io::Raster & | interferogram, | ||
isce3::io::Raster & | coherenceRaster | ||
) |
Run crossmul.
[in] | referenceSLC | Raster object of reference SLC |
[in] | secondarySLC | Raster object of secondary SLC |
[in] | rngOffsetRaster | Raster object of range offsets between reference and secondary SLCs |
[out] | interferogram | Raster object of output interferogram |
[out] | coherence | Raster object of output coherence |
void isce3::signal::Crossmul::crossmul | ( | isce3::io::Raster & | referenceSLC, |
isce3::io::Raster & | secondarySLC, | ||
isce3::io::Raster & | interferogram, | ||
isce3::io::Raster & | coherence | ||
) |
Run crossmul.
[in] | referenceSLC | Raster object of reference SLC |
[in] | secondarySLC | Raster object of secondary SLC |
[out] | interferogram | Raster object of output interferogram |
[out] | coherence | Raster object of output coherence |
void isce3::signal::Crossmul::crossmul | ( | isce3::io::Raster & | referenceSLC, |
isce3::io::Raster & | secondarySLC, | ||
isce3::io::Raster & | interferogram | ||
) |
Run crossmul.
[in] | referenceSLC | Raster object of reference SLC |
[in] | secondarySLC | Raster object of secondary SLC |
[out] | interferogram | Raster object of output interferogram |
|
inline |
Set common azimuth band filtering flag.
[in] | flag | to mark if common azimuth band filtering should be applied |
|
inline |
Set common range band filtering flag.
[in] | flag | to mark if common range band filtering should be applied |
|
inline |
Set doppler LUTs for reference and secondary SLCs.
[in] | refSlcDoppler | 2D Doppler polynomial for refernce SLC |
[in] | secSlcDoppler | 2D Doppler polynomial for secondary SLC |
|
inline |
estimate the index of the maximum of a vector of data
[in] | data | a vector to be evaluated for the index of its maximum |
[out] | peakIndex | index of the maximum value in data |
void isce3::signal::Crossmul::lookdownShiftImpact | ( | size_t | oversample, |
size_t | fft_size, | ||
size_t | blockRows, | ||
std::valarray< std::complex< float >> & | shiftImpact | ||
) |
Compute the frequency response due to a subpixel shift introduced by upsampling and downsampling.
[in] | oversample | upsampling factor |
[in] | fft_size | fft length in range direction |
[in] | blockRows | number of rows of the block of data |
[out] | shiftImpact | frequency responce (a linear phase) to a sub-pixel shift in time domain introduced by upsampling followed by downsampling |
|
inline |
Set pulse repetition frequency (PRF)
[in] | prf | pulse repetition interval |
|
inline |
Set the range bandwidth.
[in] | rngBandwidth | range bandwidth |
void isce3::signal::Crossmul::rangeCommonBandFilter | ( | std::valarray< std::complex< float >> & | refSlc, |
std::valarray< std::complex< float >> & | secSlc, | ||
std::valarray< std::complex< float >> | geometryIfgram, | ||
std::valarray< std::complex< float >> | geometryIfgramConj, | ||
std::valarray< std::complex< float >> & | refSpectrum, | ||
std::valarray< std::complex< float >> & | secSpectrum, | ||
std::valarray< double > & | rangeFrequencies, | ||
isce3::signal::Filter< float > & | rngFilter, | ||
size_t | blockLength, | ||
size_t | ncols | ||
) |
Range common band filtering.
[in] | refSlc | a block of the reference SLC to be filtered |
[in] | secSlc | a block of second SLC to be filtered |
[in] | geometryIfgram | a simulated interferogram that contains the geometrical phase due to baseline separation |
[in] | geometryIfgramConj | conjugate of geometryIfgram |
[in] | refSpectrum | spectrum of geometryIfgramConj in range direction |
[in] | secSpectrum | spectrum of geometryIfgram in range direction |
[in] | rangeFrequencies | frequencies in range direction |
[in] | rngFilter | a filter object |
[in] | blockLength | number of rows |
[in] | ncols | number of columns |
|
inline |
Compute the avergae frequency shift in range direction between two SLCs.
@param[in] refSpectrum the spectrum of a block of a complex data
[in] | secSpectrum | the spectrum of a block of complex data |
[in] | rangeFrequencies | the frequencies in range direction |
[in] | blockRowsData | number of rows in refSpectrum and secSpectrum |
[in] | fft_size | number of columns in refSpectrum and secSpectrum |
[out] | estimated | frequency shift between refSpectrum and secSpectrum |
|
inline |
Set number of range looks.
[in] | rangeLooks | number of looks in range direction |
|
inline |
Range pixel spacing.
[in] | rngPixelSpacing | range pixel spacing |
|
inline |
Set range sampling frequency.
[in] | rngSamplingFreq | range sampling frequency |
|
inline |
Set Wavelength.
[in] | wvl | radar wavelength |