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

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...
 

Detailed Description

Intereferogram generation by cross-multiplication of reference and secondary SLCs.

The secondary SLC must be on the same image grid as the reference SLC,

Member Function Documentation

void isce3::signal::Crossmul::azimuthLooks ( int  azimuthLooks)
inline

Set number of azimuth looks.

Parameters
[in]azimuthLooksnumber of looks in azimuth direction
void isce3::signal::Crossmul::beta ( double  par)
inline

Set beta parameter for the azimuth common band filter.

Parameters
[in]betaparameter for the azimuth common band filter design
void isce3::signal::Crossmul::commonAzimuthBandwidth ( double  commonAzimuthBandwidth)
inline

Set azimuth common bandwidth.

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

Parameters
[in]referenceSLCRaster object of reference SLC
[in]secondarySLCRaster object of secondary SLC
[in]rngOffsetRasterRaster object of range offsets between reference and secondary SLCs
[out]interferogramRaster object of output interferogram
[out]coherenceRaster 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.

Parameters
[in]referenceSLCRaster object of reference SLC
[in]secondarySLCRaster object of secondary SLC
[out]interferogramRaster object of output interferogram
[out]coherenceRaster object of output coherence
void isce3::signal::Crossmul::crossmul ( isce3::io::Raster referenceSLC,
isce3::io::Raster secondarySLC,
isce3::io::Raster interferogram 
)

Run crossmul.

Parameters
[in]referenceSLCRaster object of reference SLC
[in]secondarySLCRaster object of secondary SLC
[out]interferogramRaster object of output interferogram
void isce3::signal::Crossmul::doCommonAzimuthbandFiltering ( bool  flag)
inline

Set common azimuth band filtering flag.

Parameters
[in]flagto mark if common azimuth band filtering should be applied
void isce3::signal::Crossmul::doCommonRangebandFiltering ( bool  flag)
inline

Set common range band filtering flag.

Parameters
[in]flagto mark if common range band filtering should be applied
void isce3::signal::Crossmul::doppler ( isce3::core::LUT1d< double >  refSlcDoppler,
isce3::core::LUT1d< double >  secSlcDoppler 
)
inline

Set doppler LUTs for reference and secondary SLCs.

Parameters
[in]refSlcDoppler2D Doppler polynomial for refernce SLC
[in]secSlcDoppler2D Doppler polynomial for secondary SLC
void isce3::signal::Crossmul::getPeakIndex ( std::valarray< float >  data,
size_t &  peakIndex 
)
inline

estimate the index of the maximum of a vector of data

Parameters
[in]dataa vector to be evaluated for the index of its maximum
[out]peakIndexindex 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.

Parameters
[in]oversampleupsampling factor
[in]fft_sizefft length in range direction
[in]blockRowsnumber of rows of the block of data
[out]shiftImpactfrequency responce (a linear phase) to a sub-pixel shift in time domain introduced by upsampling followed by downsampling
void isce3::signal::Crossmul::prf ( double  prf)
inline

Set pulse repetition frequency (PRF)

Parameters
[in]prfpulse repetition interval
void isce3::signal::Crossmul::rangeBandwidth ( double  rngBandwidth)
inline

Set the range bandwidth.

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

Parameters
[in]refSlca block of the reference SLC to be filtered
[in]secSlca block of second SLC to be filtered
[in]geometryIfgrama simulated interferogram that contains the geometrical phase due to baseline separation
[in]geometryIfgramConjconjugate of geometryIfgram
[in]refSpectrumspectrum of geometryIfgramConj in range direction
[in]secSpectrumspectrum of geometryIfgram in range direction
[in]rangeFrequenciesfrequencies in range direction
[in]rngFiltera filter object
[in]blockLengthnumber of rows
[in]ncolsnumber of columns
void isce3::signal::Crossmul::rangeFrequencyShift ( std::valarray< std::complex< float >> &  refSpectrum,
std::valarray< std::complex< float >> &  secSpectrum,
std::valarray< double > &  rangeFrequencies,
size_t  blockRowsData,
size_t  fft_size,
double &  frequencyShift 
)
inline

Compute the avergae frequency shift in range direction between two SLCs.

@param[in] refSpectrum the spectrum of a block of a complex data
Parameters
[in]secSpectrumthe spectrum of a block of complex data
[in]rangeFrequenciesthe frequencies in range direction
[in]blockRowsDatanumber of rows in refSpectrum and secSpectrum
[in]fft_sizenumber of columns in refSpectrum and secSpectrum
[out]estimatedfrequency shift between refSpectrum and secSpectrum
void isce3::signal::Crossmul::rangeLooks ( int  rangeLooks)
inline

Set number of range looks.

Parameters
[in]rangeLooksnumber of looks in range direction
void isce3::signal::Crossmul::rangePixelSpacing ( double  rngPixelSpacing)
inline

Range pixel spacing.

Parameters
[in]rngPixelSpacingrange pixel spacing
void isce3::signal::Crossmul::rangeSamplingFrequency ( double  rngSamplingFreq)
inline

Set range sampling frequency.

Parameters
[in]rngSamplingFreqrange sampling frequency
void isce3::signal::Crossmul::wavelength ( double  wvl)
inline

Set Wavelength.

Parameters
[in]wvlradar wavelength

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

Generated for ISCE3.0 by doxygen 1.8.5.