30 #ifndef LATTICES_MULTITERMLATTICECLEANER_H
31 #define LATTICES_MULTITERMLATTICECLEANER_H
75 {
return setcontrol (cleanType, niter, gain, aThreshold, choose); }
211 #ifndef CASACORE_NO_AUTO_TEMPLATES
212 #include <casacore/lattices/LatticeMath/MultiTermLatticeCleaner.tcc>
213 #endif //# CASACORE_NO_AUTO_TEMPLATES
TempLattice< Float > * dirty_p
Image mask.
A Vector of integers, for indexing into Array<T> objects.
PtrBlock< Matrix< Double > * > invMatA_p
LatticeIterator< Float > * itertWork_p
TempLattice< Complex > * cWork_p
Scratch Lattices and iterators.
Bool findMaxAbsLattice(const TempLattice< Float > &masklat, const Lattice< Float > &lattice, Float &maxAbs, IPosition &posMaxAbs, Bool flip=False)
LatticeExprNode mask(const LatticeExprNode &expr)
This function returns the mask of the given expression.
TempLattice< Complex > * dirtyFT_p
Float threshold() const
Method to return threshold, including any speedup factors.
Bool setmask(Lattice< T > &mask)
Input : mask.
Vector< Float > scaleBias_p
Bool setpsf(int order, Lattice< T > &psf)
Input : psfs and dirty images.
PtrBlock< LatticeIterator< Float > * > itermatCoeffs_p
TempLattice< Float > * tWork_p
Bool setntaylorterms(const int &nterms)
Input : number of Taylor terms Reshapes PtrBlocks to hold the correct number of PSFs and Residual ima...
Bool getinvhessian(Matrix< Double > &invhessian)
Output : Hessian matrix.
Int manageMemory(Bool allocate)
PtrBlock< TempLattice< Complex > * > vecPsfFT_p
PtrBlock< TempLattice< Float > * > vecDirty_p
I_D : Residual/Dirty Images [nx,ny,ntaylor].
Lattice< T > * residual()
Look at what WE think the residuals look like Assumes the first scale is zero-sized.
Int mtclean(LatticeCleanProgress *progress=0)
Run the minor cycle.
ostream-like interface to creating log messages.
PtrBlock< LatticeIterator< Float > * > itermatR_p
A class for doing multi-dimensional cleaning.
TempLattice< Float > * mask_p
PtrBlock< TempLattice< Float > * > vecScales_p
h(s) [nx,ny,nscales]
Int IND2(Int taylor, Int scale)
~MultiTermLatticeCleaner()
The destructor does nothing special.
Float weightScaleFactor_p
Int IND4(Int taylor1, Int taylor2, Int scale1, Int scale2)
Double memoryMB_p
Memory to be allocated per TempLattice.
A templated, abstract base class for array-like objects.
PtrBlock< TempLattice< Float > * > matCoeffs_p
a_{sk} = Solution vectors.
PtrBlock< TempLattice< Complex > * > vecScalesFT_p
Bool setmodel(int order, Lattice< T > &model)
Input : model images.
Bool initialise(Int nx, Int ny)
Initialize all the memory being used.
Bool setresidual(int order, Lattice< T > &dirty)
Input : psfs and dirty images.
Bool setcontrol(CleanEnums::CleanType cleanType, const Int niter, const Float gain, const Quantity &aThreshold, const Bool choose)
Set control parameters.
bool Bool
Define the standard types used by Casacore.
Int addTo(Lattice< Float > &to, const Lattice< Float > &add, Float multiplier)
Vector< Float > totalScaleFlux_p
TempLattice< Float > * fftmask_p
Abstract base class to monitor progress in lattice operations.
MultiTermLatticeCleaner()
Create a cleaner for a specific dirty image and PSF.
Bool getmodel(int order, Lattice< T > &model)
Output : Model images.
Int computePenaltyFunction(Int scale, Float &loopgain, Bool choosespec)
PtrBlock< TempLattice< Float > * > matR_p
R_{sk} = I_D * B_{sk} [nx,ny,ntaylor,nscales].
PtrBlock< TempLattice< Float > * > vecModel_p
I_M : Model Images [nx,ny,ntaylor].
A drop-in replacement for Block<T*>.
PtrBlock< TempLattice< Float > * > cubeA_p
A_{smn} = B_{sm} * B{sn} [nx,ny,ntaylor,ntaylor,nscales,nscales] A_{s1s2mn} = B_{s1m} * B{s2n} [nx...
Int solveMatrixEqn(Int scale)
Bridging class to allow C++ expressions involving lattices.
Int computeFluxLimit(Float &fluxlimit, Float threshold)
Int numberOfTempLattices(Int nscales, Int ntaylor)
Bool setcontrol(CleanEnums::CleanType cleanType, const Int niter, const Float gain, const Quantity &aThreshold, const Quantity &, const Bool choose=True)
Vector< Float > scaleSizes_p
MultiTermLatticeCleaner< T > & operator=(const MultiTermLatticeCleaner< T > &other)
The assignment operator also uses reference semantics.
Int updateSolution(IPosition globalmaxpos, Int maxscaleindex, Float loopgain)
PtrBlock< Matrix< Double > * > matA_p
Solve [A][Coeffs] = [I_D * B] Shape of A : [ntaylor,ntaylor].
Bool getresidual(int order, Lattice< T > &residual)
Ouput : psfs and dirty images.
Vector< Float > totalTaylorFlux_p
PtrBlock< LatticeIterator< Float > * > itercubeA_p
Int checkConvergence(Bool choosespec, Float thresh, Float fluxlimit)
PtrBlock< TempLattice< Float > * > vecPsf_p
B_k [nx,ny,ntaylor].
Bool setscales(const Vector< Float > &scales)
Input : scales.