#include <MultiTermLatticeCleaner.h>
Public Member Functions | |
| MultiTermLatticeCleaner () | |
| Create a cleaner for a specific dirty image and PSF. | |
| MultiTermLatticeCleaner (const MultiTermLatticeCleaner< T > &other) | |
| The copy constructor uses reference semantics. | |
| MultiTermLatticeCleaner< T > & | operator= (const MultiTermLatticeCleaner< T > &other) |
| The assignment operator also uses reference semantics. | |
| ~MultiTermLatticeCleaner () | |
| The destructor does nothing special. | |
| Bool | setntaylorterms (const int &nterms) |
| Input : number of Taylor terms Reshapes PtrBlocks to hold the correct number of PSFs and Residual images. | |
| Bool | setscales (const Vector< Float > &scales) |
| Input : scales. | |
| Bool | initialise (Int nx, Int ny) |
| Initialize all the memory being used. | |
| Bool | setcontrol (CleanEnums::CleanType cleanType, const Int niter, const Float gain, const Quantity &aThreshold, const Bool choose) |
| Set control parameters. | |
| Bool | setcontrol (CleanEnums::CleanType cleanType, const Int niter, const Float gain, const Quantity &aThreshold, const Quantity &, const Bool choose=True) |
| Set up control parameters cleanType - type of the cleaning algorithm to use (HOGBOM, MULTISCALE) niter - number of iterations gain - loop gain used in cleaning (a fraction of the maximum subtracted at every iteration) aThreshold - absolute threshold to stop iterations fThreshold - fractional threshold (i.e. | |
| Bool | setpsf (int order, Lattice< T > &psf) |
| Input : psfs and dirty images. | |
| Bool | setresidual (int order, Lattice< T > &dirty) |
| Input : psfs and dirty images. | |
| Bool | setmodel (int order, Lattice< T > &model) |
| Input : model images. | |
| Bool | setmask (Lattice< T > &mask) |
| Input : mask. | |
| Int | mtclean (LatticeCleanProgress *progress=0) |
| Run the minor cycle. | |
| Bool | getmodel (int order, Lattice< T > &model) |
| Output : Model images. | |
| Bool | getresidual (int order, Lattice< T > &residual) |
| Ouput : psfs and dirty images. | |
| Bool | getinvhessian (Matrix< Double > &invhessian) |
| Output : Hessian matrix. | |
Private Member Functions | |
| Int | numberOfTempLattices (Int nscales, Int ntaylor) |
| Int | manageMemory (Bool allocate) |
| Bool | findMaxAbsLattice (const TempLattice< Float > &masklat, const Lattice< Float > &lattice, Float &maxAbs, IPosition &posMaxAbs, Bool flip=False) |
| Int | addTo (Lattice< Float > &to, const Lattice< Float > &add, Float multiplier) |
| Int | setupFFTMask () |
| Int | setupUserMask () |
| Int | setupBlobs () |
| Int | computeFluxLimit (Float &fluxlimit, Float threshold) |
| Int | computeMatrixA () |
| Int | computeRHS () |
| Int | solveMatrixEqn (Int scale) |
| Int | computePenaltyFunction (Int scale, Float &loopgain, Bool choosespec) |
| Int | updateSolution (IPosition globalmaxpos, Int maxscaleindex, Float loopgain) |
| Int | checkConvergence (Bool choosespec, Float thresh, Float fluxlimit) |
| Int | IND2 (Int taylor, Int scale) |
| Int | IND4 (Int taylor1, Int taylor2, Int scale1, Int scale2) |
Private Attributes | |
| LogIO | os |
| Int | ntaylor_p |
| Int | psfntaylor_p |
| Int | nscales_p |
| Int | nx_p |
| Int | ny_p |
| Int | totalIters_p |
| TempLattice< Float > * | dirty_p |
| Image mask. | |
| TempLattice< Complex > * | dirtyFT_p |
| TempLattice< Float > * | mask_p |
| TempLattice< Float > * | fftmask_p |
| Vector< Float > | scaleSizes_p |
| Vector< Float > | scaleBias_p |
| Vector< Float > | totalScaleFlux_p |
| Vector< Float > | totalTaylorFlux_p |
| Float | weightScaleFactor_p |
| Float | maxPsf_p |
| IPosition | gip |
| IPosition | imshape |
| Int | nx |
| Int | ny |
| Int | npol_p |
| Int | nchan |
| Bool | donePSF_p |
| Bool | donePSP_p |
| Bool | doneCONV_p |
| PtrBlock< TempLattice< Float > * > | vecScales_p |
| h(s) [nx,ny,nscales] | |
| PtrBlock< TempLattice< Complex > * > | vecScalesFT_p |
| PtrBlock< TempLattice< Float > * > | vecPsf_p |
| B_k [nx,ny,ntaylor]. | |
| PtrBlock< TempLattice< Complex > * > | vecPsfFT_p |
| PtrBlock< TempLattice< Float > * > | vecDirty_p |
| I_D : Residual/Dirty Images [nx,ny,ntaylor]. | |
| PtrBlock< TempLattice< Float > * > | vecModel_p |
| I_M : Model Images [nx,ny,ntaylor]. | |
| PtrBlock< TempLattice< Float > * > | cubeA_p |
| A_{smn} = B_{sm} * B{sn} [nx,ny,ntaylor,ntaylor,nscales,nscales] A_{s1s2mn} = B_{s1m} * B{s2n} [nx,ny,ntaylor,ntaylor,nscales,nscales]. | |
| PtrBlock< LatticeIterator < Float > * > | itercubeA_p |
| PtrBlock< TempLattice< Float > * > | matR_p |
| R_{sk} = I_D * B_{sk} [nx,ny,ntaylor,nscales]. | |
| PtrBlock< LatticeIterator < Float > * > | itermatR_p |
| PtrBlock< TempLattice< Float > * > | matCoeffs_p |
| a_{sk} = Solution vectors. | |
| PtrBlock< LatticeIterator < Float > * > | itermatCoeffs_p |
| Double | memoryMB_p |
| Memory to be allocated per TempLattice. | |
| PtrBlock< Matrix< Double > * > | matA_p |
| Solve [A][Coeffs] = [I_D * B] Shape of A : [ntaylor,ntaylor]. | |
| PtrBlock< Matrix< Double > * > | invMatA_p |
| TempLattice< Complex > * | cWork_p |
| Scratch Lattices and iterators. | |
| TempLattice< Float > * | tWork_p |
| LatticeIterator< Float > * | itertWork_p |
| LatticeExprNode | len_p |
| Float | lambda_p |
| Bool | adbg |
Definition at line 41 of file MultiTermLatticeCleaner.h.
| casacore::MultiTermLatticeCleaner< T >::MultiTermLatticeCleaner | ( | ) |
Create a cleaner for a specific dirty image and PSF.
| casacore::MultiTermLatticeCleaner< T >::MultiTermLatticeCleaner | ( | const MultiTermLatticeCleaner< T > & | other | ) |
The copy constructor uses reference semantics.
| casacore::MultiTermLatticeCleaner< T >::~MultiTermLatticeCleaner | ( | ) |
The destructor does nothing special.
| Int casacore::MultiTermLatticeCleaner< T >::addTo | ( | Lattice< Float > & | to, | |
| const Lattice< Float > & | add, | |||
| Float | multiplier | |||
| ) | [private] |
| Int casacore::MultiTermLatticeCleaner< T >::checkConvergence | ( | Bool | choosespec, | |
| Float | thresh, | |||
| Float | fluxlimit | |||
| ) | [private] |
| Int casacore::MultiTermLatticeCleaner< T >::computeFluxLimit | ( | Float & | fluxlimit, | |
| Float | threshold | |||
| ) | [private] |
| Int casacore::MultiTermLatticeCleaner< T >::computeMatrixA | ( | ) | [private] |
| Int casacore::MultiTermLatticeCleaner< T >::computePenaltyFunction | ( | Int | scale, | |
| Float & | loopgain, | |||
| Bool | choosespec | |||
| ) | [private] |
| Int casacore::MultiTermLatticeCleaner< T >::computeRHS | ( | ) | [private] |
| Bool casacore::MultiTermLatticeCleaner< T >::findMaxAbsLattice | ( | const TempLattice< Float > & | masklat, | |
| const Lattice< Float > & | lattice, | |||
| Float & | maxAbs, | |||
| IPosition & | posMaxAbs, | |||
| Bool | flip = False | |||
| ) | [private] |
| Bool casacore::MultiTermLatticeCleaner< T >::getinvhessian | ( | Matrix< Double > & | invhessian | ) |
Output : Hessian matrix.
| Bool casacore::MultiTermLatticeCleaner< T >::getmodel | ( | int | order, | |
| Lattice< T > & | model | |||
| ) |
Output : Model images.
| Bool casacore::MultiTermLatticeCleaner< T >::getresidual | ( | int | order, | |
| Lattice< T > & | residual | |||
| ) |
Ouput : psfs and dirty images.
| Int casacore::MultiTermLatticeCleaner< T >::IND2 | ( | Int | taylor, | |
| Int | scale | |||
| ) | [private] |
| Int casacore::MultiTermLatticeCleaner< T >::IND4 | ( | Int | taylor1, | |
| Int | taylor2, | |||
| Int | scale1, | |||
| Int | scale2 | |||
| ) | [private] |
| Bool casacore::MultiTermLatticeCleaner< T >::initialise | ( | Int | nx, | |
| Int | ny | |||
| ) |
Initialize all the memory being used.
| Int casacore::MultiTermLatticeCleaner< T >::manageMemory | ( | Bool | allocate | ) | [private] |
| Int casacore::MultiTermLatticeCleaner< T >::mtclean | ( | LatticeCleanProgress * | progress = 0 |
) |
Run the minor cycle.
| Int casacore::MultiTermLatticeCleaner< T >::numberOfTempLattices | ( | Int | nscales, | |
| Int | ntaylor | |||
| ) | [private] |
| MultiTermLatticeCleaner<T>& casacore::MultiTermLatticeCleaner< T >::operator= | ( | const MultiTermLatticeCleaner< T > & | other | ) |
The assignment operator also uses reference semantics.
Reimplemented from casacore::LatticeCleaner< T >.
| Bool casacore::MultiTermLatticeCleaner< T >::setcontrol | ( | CleanEnums::CleanType | cleanType, | |
| const Int | niter, | |||
| const Float | gain, | |||
| const Quantity & | aThreshold, | |||
| const Quantity & | fThreshold, | |||
| const Bool | choose = True | |||
| ) | [inline] |
Set up control parameters cleanType - type of the cleaning algorithm to use (HOGBOM, MULTISCALE) niter - number of iterations gain - loop gain used in cleaning (a fraction of the maximum subtracted at every iteration) aThreshold - absolute threshold to stop iterations fThreshold - fractional threshold (i.e.
given w.r.t. maximum residual) to stop iterations. This parameter is specified as Quantity so it can be given in per cents. choose - unused at the moment, specify False. Original meaning is to allow interactive decision on whether to continue iterations. This method always returns True.
Reimplemented from casacore::LatticeCleaner< T >.
Definition at line 71 of file MultiTermLatticeCleaner.h.
References casacore::MultiTermLatticeCleaner< T >::setcontrol().
Referenced by casacore::MultiTermLatticeCleaner< T >::setcontrol().
| Bool casacore::MultiTermLatticeCleaner< T >::setcontrol | ( | CleanEnums::CleanType | cleanType, | |
| const Int | niter, | |||
| const Float | gain, | |||
| const Quantity & | aThreshold, | |||
| const Bool | choose | |||
| ) |
Set control parameters.
Reimplemented from casacore::LatticeCleaner< T >.
| Bool casacore::MultiTermLatticeCleaner< T >::setmask | ( | Lattice< T > & | mask | ) |
Input : mask.
| Bool casacore::MultiTermLatticeCleaner< T >::setmodel | ( | int | order, | |
| Lattice< T > & | model | |||
| ) |
Input : model images.
| Bool casacore::MultiTermLatticeCleaner< T >::setntaylorterms | ( | const int & | nterms | ) |
Input : number of Taylor terms Reshapes PtrBlocks to hold the correct number of PSFs and Residual images.
| Bool casacore::MultiTermLatticeCleaner< T >::setpsf | ( | int | order, | |
| Lattice< T > & | psf | |||
| ) |
Input : psfs and dirty images.
| Bool casacore::MultiTermLatticeCleaner< T >::setresidual | ( | int | order, | |
| Lattice< T > & | dirty | |||
| ) |
Input : psfs and dirty images.
| Bool casacore::MultiTermLatticeCleaner< T >::setscales | ( | const Vector< Float > & | scales | ) |
Input : scales.
Reimplemented from casacore::LatticeCleaner< T >.
| Int casacore::MultiTermLatticeCleaner< T >::setupBlobs | ( | ) | [private] |
| Int casacore::MultiTermLatticeCleaner< T >::setupFFTMask | ( | ) | [private] |
| Int casacore::MultiTermLatticeCleaner< T >::setupUserMask | ( | ) | [private] |
| Int casacore::MultiTermLatticeCleaner< T >::solveMatrixEqn | ( | Int | scale | ) | [private] |
| Int casacore::MultiTermLatticeCleaner< T >::updateSolution | ( | IPosition | globalmaxpos, | |
| Int | maxscaleindex, | |||
| Float | loopgain | |||
| ) | [private] |
Bool casacore::MultiTermLatticeCleaner< T >::adbg [private] |
Definition at line 206 of file MultiTermLatticeCleaner.h.
PtrBlock<TempLattice<Float>* > casacore::MultiTermLatticeCleaner< T >::cubeA_p [private] |
A_{smn} = B_{sm} * B{sn} [nx,ny,ntaylor,ntaylor,nscales,nscales] A_{s1s2mn} = B_{s1m} * B{s2n} [nx,ny,ntaylor,ntaylor,nscales,nscales].
Definition at line 158 of file MultiTermLatticeCleaner.h.
TempLattice<Complex>* casacore::MultiTermLatticeCleaner< T >::cWork_p [private] |
Scratch Lattices and iterators.
Definition at line 178 of file MultiTermLatticeCleaner.h.
TempLattice<Float>* casacore::MultiTermLatticeCleaner< T >::dirty_p [private] |
Image mask.
Definition at line 126 of file MultiTermLatticeCleaner.h.
TempLattice<Complex>* casacore::MultiTermLatticeCleaner< T >::dirtyFT_p [private] |
Definition at line 127 of file MultiTermLatticeCleaner.h.
Bool casacore::MultiTermLatticeCleaner< T >::doneCONV_p [private] |
Definition at line 140 of file MultiTermLatticeCleaner.h.
Bool casacore::MultiTermLatticeCleaner< T >::donePSF_p [private] |
Definition at line 140 of file MultiTermLatticeCleaner.h.
Bool casacore::MultiTermLatticeCleaner< T >::donePSP_p [private] |
Definition at line 140 of file MultiTermLatticeCleaner.h.
TempLattice<Float>* casacore::MultiTermLatticeCleaner< T >::fftmask_p [private] |
Definition at line 129 of file MultiTermLatticeCleaner.h.
IPosition casacore::MultiTermLatticeCleaner< T >::gip [private] |
Definition at line 138 of file MultiTermLatticeCleaner.h.
IPosition casacore::MultiTermLatticeCleaner< T >::imshape [private] |
Definition at line 138 of file MultiTermLatticeCleaner.h.
PtrBlock<Matrix<Double>*> casacore::MultiTermLatticeCleaner< T >::invMatA_p [private] |
Definition at line 175 of file MultiTermLatticeCleaner.h.
PtrBlock<LatticeIterator<Float>* > casacore::MultiTermLatticeCleaner< T >::itercubeA_p [private] |
Definition at line 159 of file MultiTermLatticeCleaner.h.
PtrBlock<LatticeIterator<Float>* > casacore::MultiTermLatticeCleaner< T >::itermatCoeffs_p [private] |
Definition at line 167 of file MultiTermLatticeCleaner.h.
PtrBlock<LatticeIterator<Float>* > casacore::MultiTermLatticeCleaner< T >::itermatR_p [private] |
Definition at line 163 of file MultiTermLatticeCleaner.h.
LatticeIterator<Float>* casacore::MultiTermLatticeCleaner< T >::itertWork_p [private] |
Definition at line 180 of file MultiTermLatticeCleaner.h.
Float casacore::MultiTermLatticeCleaner< T >::lambda_p [private] |
Definition at line 184 of file MultiTermLatticeCleaner.h.
LatticeExprNode casacore::MultiTermLatticeCleaner< T >::len_p [private] |
Definition at line 182 of file MultiTermLatticeCleaner.h.
TempLattice<Float>* casacore::MultiTermLatticeCleaner< T >::mask_p [private] |
Definition at line 128 of file MultiTermLatticeCleaner.h.
PtrBlock<Matrix<Double>*> casacore::MultiTermLatticeCleaner< T >::matA_p [private] |
Solve [A][Coeffs] = [I_D * B] Shape of A : [ntaylor,ntaylor].
Definition at line 174 of file MultiTermLatticeCleaner.h.
PtrBlock<TempLattice<Float>* > casacore::MultiTermLatticeCleaner< T >::matCoeffs_p [private] |
a_{sk} = Solution vectors.
[nx,ny,ntaylor,nscales]
Definition at line 166 of file MultiTermLatticeCleaner.h.
PtrBlock<TempLattice<Float>* > casacore::MultiTermLatticeCleaner< T >::matR_p [private] |
R_{sk} = I_D * B_{sk} [nx,ny,ntaylor,nscales].
Definition at line 162 of file MultiTermLatticeCleaner.h.
Float casacore::MultiTermLatticeCleaner< T >::maxPsf_p [private] |
Definition at line 136 of file MultiTermLatticeCleaner.h.
Double casacore::MultiTermLatticeCleaner< T >::memoryMB_p [private] |
Memory to be allocated per TempLattice.
Definition at line 170 of file MultiTermLatticeCleaner.h.
Int casacore::MultiTermLatticeCleaner< T >::nchan [private] |
Definition at line 139 of file MultiTermLatticeCleaner.h.
Int casacore::MultiTermLatticeCleaner< T >::npol_p [private] |
Definition at line 139 of file MultiTermLatticeCleaner.h.
Int casacore::MultiTermLatticeCleaner< T >::nscales_p [private] |
Definition at line 120 of file MultiTermLatticeCleaner.h.
Int casacore::MultiTermLatticeCleaner< T >::ntaylor_p [private] |
Definition at line 118 of file MultiTermLatticeCleaner.h.
Int casacore::MultiTermLatticeCleaner< T >::nx [private] |
Definition at line 139 of file MultiTermLatticeCleaner.h.
Int casacore::MultiTermLatticeCleaner< T >::nx_p [private] |
Definition at line 121 of file MultiTermLatticeCleaner.h.
Int casacore::MultiTermLatticeCleaner< T >::ny [private] |
Definition at line 139 of file MultiTermLatticeCleaner.h.
Int casacore::MultiTermLatticeCleaner< T >::ny_p [private] |
Definition at line 122 of file MultiTermLatticeCleaner.h.
LogIO casacore::MultiTermLatticeCleaner< T >::os [private] |
Definition at line 102 of file MultiTermLatticeCleaner.h.
Int casacore::MultiTermLatticeCleaner< T >::psfntaylor_p [private] |
Definition at line 119 of file MultiTermLatticeCleaner.h.
Vector<Float> casacore::MultiTermLatticeCleaner< T >::scaleBias_p [private] |
Definition at line 132 of file MultiTermLatticeCleaner.h.
Vector<Float> casacore::MultiTermLatticeCleaner< T >::scaleSizes_p [private] |
Definition at line 131 of file MultiTermLatticeCleaner.h.
Int casacore::MultiTermLatticeCleaner< T >::totalIters_p [private] |
Definition at line 123 of file MultiTermLatticeCleaner.h.
Vector<Float> casacore::MultiTermLatticeCleaner< T >::totalScaleFlux_p [private] |
Definition at line 133 of file MultiTermLatticeCleaner.h.
Vector<Float> casacore::MultiTermLatticeCleaner< T >::totalTaylorFlux_p [private] |
Definition at line 134 of file MultiTermLatticeCleaner.h.
TempLattice<Float>* casacore::MultiTermLatticeCleaner< T >::tWork_p [private] |
Definition at line 179 of file MultiTermLatticeCleaner.h.
PtrBlock<TempLattice<Float>* > casacore::MultiTermLatticeCleaner< T >::vecDirty_p [private] |
I_D : Residual/Dirty Images [nx,ny,ntaylor].
Definition at line 151 of file MultiTermLatticeCleaner.h.
PtrBlock<TempLattice<Float>* > casacore::MultiTermLatticeCleaner< T >::vecModel_p [private] |
I_M : Model Images [nx,ny,ntaylor].
Definition at line 154 of file MultiTermLatticeCleaner.h.
PtrBlock<TempLattice<Float>* > casacore::MultiTermLatticeCleaner< T >::vecPsf_p [private] |
B_k [nx,ny,ntaylor].
Definition at line 147 of file MultiTermLatticeCleaner.h.
PtrBlock<TempLattice<Complex>* > casacore::MultiTermLatticeCleaner< T >::vecPsfFT_p [private] |
Definition at line 148 of file MultiTermLatticeCleaner.h.
PtrBlock<TempLattice<Float>* > casacore::MultiTermLatticeCleaner< T >::vecScales_p [private] |
h(s) [nx,ny,nscales]
Definition at line 143 of file MultiTermLatticeCleaner.h.
PtrBlock<TempLattice<Complex>* > casacore::MultiTermLatticeCleaner< T >::vecScalesFT_p [private] |
Definition at line 144 of file MultiTermLatticeCleaner.h.
Float casacore::MultiTermLatticeCleaner< T >::weightScaleFactor_p [private] |
Definition at line 135 of file MultiTermLatticeCleaner.h.
1.6.1