casacore::MultiTermLatticeCleaner< T > Class Template Reference

#include <MultiTermLatticeCleaner.h>

Inheritance diagram for casacore::MultiTermLatticeCleaner< T >:
casacore::LatticeCleaner< T >

List of all members.

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< FloatscaleSizes_p
Vector< FloatscaleBias_p
Vector< FloattotalScaleFlux_p
Vector< FloattotalTaylorFlux_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

Detailed Description

template<class T>
class casacore::MultiTermLatticeCleaner< T >

Definition at line 41 of file MultiTermLatticeCleaner.h.


Constructor & Destructor Documentation

Create a cleaner for a specific dirty image and PSF.

template<class T>
casacore::MultiTermLatticeCleaner< T >::MultiTermLatticeCleaner ( const MultiTermLatticeCleaner< T > &  other  ) 

The copy constructor uses reference semantics.

The destructor does nothing special.


Member Function Documentation

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::addTo ( Lattice< Float > &  to,
const Lattice< Float > &  add,
Float  multiplier 
) [private]
template<class T>
Int casacore::MultiTermLatticeCleaner< T >::checkConvergence ( Bool  choosespec,
Float  thresh,
Float  fluxlimit 
) [private]
template<class T>
Int casacore::MultiTermLatticeCleaner< T >::computeFluxLimit ( Float fluxlimit,
Float  threshold 
) [private]
template<class T>
Int casacore::MultiTermLatticeCleaner< T >::computeMatrixA (  )  [private]
template<class T>
Int casacore::MultiTermLatticeCleaner< T >::computePenaltyFunction ( Int  scale,
Float loopgain,
Bool  choosespec 
) [private]
template<class T>
Int casacore::MultiTermLatticeCleaner< T >::computeRHS (  )  [private]
template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::findMaxAbsLattice ( const TempLattice< Float > &  masklat,
const Lattice< Float > &  lattice,
Float maxAbs,
IPosition posMaxAbs,
Bool  flip = False 
) [private]
template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::getinvhessian ( Matrix< Double > &  invhessian  ) 

Output : Hessian matrix.

template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::getmodel ( int  order,
Lattice< T > &  model 
)

Output : Model images.

template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::getresidual ( int  order,
Lattice< T > &  residual 
)

Ouput : psfs and dirty images.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::IND2 ( Int  taylor,
Int  scale 
) [private]
template<class T>
Int casacore::MultiTermLatticeCleaner< T >::IND4 ( Int  taylor1,
Int  taylor2,
Int  scale1,
Int  scale2 
) [private]
template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::initialise ( Int  nx,
Int  ny 
)

Initialize all the memory being used.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::manageMemory ( Bool  allocate  )  [private]
template<class T>
Int casacore::MultiTermLatticeCleaner< T >::mtclean ( LatticeCleanProgress progress = 0  ) 

Run the minor cycle.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::numberOfTempLattices ( Int  nscales,
Int  ntaylor 
) [private]
template<class T>
MultiTermLatticeCleaner<T>& casacore::MultiTermLatticeCleaner< T >::operator= ( const MultiTermLatticeCleaner< T > &  other  ) 

The assignment operator also uses reference semantics.

Reimplemented from casacore::LatticeCleaner< T >.

template<class 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().

template<class T>
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 >.

template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::setmask ( Lattice< T > &  mask  ) 

Input : mask.

template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::setmodel ( int  order,
Lattice< T > &  model 
)

Input : model images.

template<class T>
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.

template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::setpsf ( int  order,
Lattice< T > &  psf 
)

Input : psfs and dirty images.

template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::setresidual ( int  order,
Lattice< T > &  dirty 
)

Input : psfs and dirty images.

template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::setscales ( const Vector< Float > &  scales  ) 

Input : scales.

Reimplemented from casacore::LatticeCleaner< T >.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::setupBlobs (  )  [private]
template<class T>
Int casacore::MultiTermLatticeCleaner< T >::setupFFTMask (  )  [private]
template<class T>
Int casacore::MultiTermLatticeCleaner< T >::setupUserMask (  )  [private]
template<class T>
Int casacore::MultiTermLatticeCleaner< T >::solveMatrixEqn ( Int  scale  )  [private]
template<class T>
Int casacore::MultiTermLatticeCleaner< T >::updateSolution ( IPosition  globalmaxpos,
Int  maxscaleindex,
Float  loopgain 
) [private]

Member Data Documentation

template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::adbg [private]

Definition at line 206 of file MultiTermLatticeCleaner.h.

template<class T>
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.

template<class T>
TempLattice<Complex>* casacore::MultiTermLatticeCleaner< T >::cWork_p [private]

Scratch Lattices and iterators.

Definition at line 178 of file MultiTermLatticeCleaner.h.

template<class T>
TempLattice<Float>* casacore::MultiTermLatticeCleaner< T >::dirty_p [private]

Image mask.

Definition at line 126 of file MultiTermLatticeCleaner.h.

template<class T>
TempLattice<Complex>* casacore::MultiTermLatticeCleaner< T >::dirtyFT_p [private]

Definition at line 127 of file MultiTermLatticeCleaner.h.

template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::doneCONV_p [private]

Definition at line 140 of file MultiTermLatticeCleaner.h.

template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::donePSF_p [private]

Definition at line 140 of file MultiTermLatticeCleaner.h.

template<class T>
Bool casacore::MultiTermLatticeCleaner< T >::donePSP_p [private]

Definition at line 140 of file MultiTermLatticeCleaner.h.

template<class T>
TempLattice<Float>* casacore::MultiTermLatticeCleaner< T >::fftmask_p [private]

Definition at line 129 of file MultiTermLatticeCleaner.h.

template<class T>
IPosition casacore::MultiTermLatticeCleaner< T >::gip [private]

Definition at line 138 of file MultiTermLatticeCleaner.h.

template<class T>
IPosition casacore::MultiTermLatticeCleaner< T >::imshape [private]

Definition at line 138 of file MultiTermLatticeCleaner.h.

template<class T>
PtrBlock<Matrix<Double>*> casacore::MultiTermLatticeCleaner< T >::invMatA_p [private]

Definition at line 175 of file MultiTermLatticeCleaner.h.

Definition at line 159 of file MultiTermLatticeCleaner.h.

Definition at line 167 of file MultiTermLatticeCleaner.h.

Definition at line 163 of file MultiTermLatticeCleaner.h.

Definition at line 180 of file MultiTermLatticeCleaner.h.

template<class T>
Float casacore::MultiTermLatticeCleaner< T >::lambda_p [private]

Definition at line 184 of file MultiTermLatticeCleaner.h.

template<class T>
LatticeExprNode casacore::MultiTermLatticeCleaner< T >::len_p [private]

Definition at line 182 of file MultiTermLatticeCleaner.h.

template<class T>
TempLattice<Float>* casacore::MultiTermLatticeCleaner< T >::mask_p [private]

Definition at line 128 of file MultiTermLatticeCleaner.h.

template<class T>
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.

a_{sk} = Solution vectors.

[nx,ny,ntaylor,nscales]

Definition at line 166 of file MultiTermLatticeCleaner.h.

template<class T>
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.

template<class T>
Float casacore::MultiTermLatticeCleaner< T >::maxPsf_p [private]

Definition at line 136 of file MultiTermLatticeCleaner.h.

template<class T>
Double casacore::MultiTermLatticeCleaner< T >::memoryMB_p [private]

Memory to be allocated per TempLattice.

Definition at line 170 of file MultiTermLatticeCleaner.h.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::nchan [private]

Definition at line 139 of file MultiTermLatticeCleaner.h.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::npol_p [private]

Definition at line 139 of file MultiTermLatticeCleaner.h.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::nscales_p [private]

Definition at line 120 of file MultiTermLatticeCleaner.h.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::ntaylor_p [private]

Definition at line 118 of file MultiTermLatticeCleaner.h.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::nx [private]

Definition at line 139 of file MultiTermLatticeCleaner.h.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::nx_p [private]

Definition at line 121 of file MultiTermLatticeCleaner.h.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::ny [private]

Definition at line 139 of file MultiTermLatticeCleaner.h.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::ny_p [private]

Definition at line 122 of file MultiTermLatticeCleaner.h.

template<class T>
LogIO casacore::MultiTermLatticeCleaner< T >::os [private]

Definition at line 102 of file MultiTermLatticeCleaner.h.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::psfntaylor_p [private]

Definition at line 119 of file MultiTermLatticeCleaner.h.

template<class T>
Vector<Float> casacore::MultiTermLatticeCleaner< T >::scaleBias_p [private]

Definition at line 132 of file MultiTermLatticeCleaner.h.

template<class T>
Vector<Float> casacore::MultiTermLatticeCleaner< T >::scaleSizes_p [private]

Definition at line 131 of file MultiTermLatticeCleaner.h.

template<class T>
Int casacore::MultiTermLatticeCleaner< T >::totalIters_p [private]

Definition at line 123 of file MultiTermLatticeCleaner.h.

template<class T>
Vector<Float> casacore::MultiTermLatticeCleaner< T >::totalScaleFlux_p [private]

Definition at line 133 of file MultiTermLatticeCleaner.h.

Definition at line 134 of file MultiTermLatticeCleaner.h.

template<class T>
TempLattice<Float>* casacore::MultiTermLatticeCleaner< T >::tWork_p [private]

Definition at line 179 of file MultiTermLatticeCleaner.h.

I_D : Residual/Dirty Images [nx,ny,ntaylor].

Definition at line 151 of file MultiTermLatticeCleaner.h.

I_M : Model Images [nx,ny,ntaylor].

Definition at line 154 of file MultiTermLatticeCleaner.h.

template<class T>
PtrBlock<TempLattice<Float>* > casacore::MultiTermLatticeCleaner< T >::vecPsf_p [private]

B_k [nx,ny,ntaylor].

Definition at line 147 of file MultiTermLatticeCleaner.h.

template<class T>
PtrBlock<TempLattice<Complex>* > casacore::MultiTermLatticeCleaner< T >::vecPsfFT_p [private]

Definition at line 148 of file MultiTermLatticeCleaner.h.

h(s) [nx,ny,nscales]

Definition at line 143 of file MultiTermLatticeCleaner.h.

template<class T>
PtrBlock<TempLattice<Complex>* > casacore::MultiTermLatticeCleaner< T >::vecScalesFT_p [private]

Definition at line 144 of file MultiTermLatticeCleaner.h.

template<class T>
Float casacore::MultiTermLatticeCleaner< T >::weightScaleFactor_p [private]

Definition at line 135 of file MultiTermLatticeCleaner.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1