MaskedHogbomCleanModel.h
Classes
- MaskedHogbomCleanModel -- A Class for performing Hogbom Clean's of Arrays (full description)
Interface
- Public Members
- MaskedHogbomCleanModel():MaskedArrayModel<T>()
- MaskedHogbomCleanModel(const MaskedArray<T> & model) :MaskedArrayModel<T>(model)
- Bool solve(ResidualEquation<MaskedArray<T> > & eqn)
- Bool solve(ConvolutionEquation & eqn)
Review Status
- Date Reviewed:
- yyyy/mm/dd
Prerequisite
- ResidualEquation/ConvolutionEquation
-
LinearModel/LinearEquation Paradigm
Etymology
This class is called HogbomCleanModel because thats the algorithm it uses
deconvolve the model.
Synopsis
This class is used to perform the Hogbom Clean Algorithm on a
MaskedArray. It is functionally equivalent to the HogbomCleanModel class and
all the documention for that class will not be repreated here. The only
difference is that the model used to represent the sky in this class is a
MaskedArray, and hence this class can implement the concept of clean
boxes.
Masking is used to deliniate the search region when clean is determing
the maximum residual as well as the region that is subtracted in the
when calculating the residual image (if the ConvolutionEquation class is
used in conjunction with this class). However Because this user
calculates the residual using the ConvolutionEquation class (which ignores
the mask) this will always return a residual that is accurate even in the
masked regions of the image.
Example
Matrix<Float> psf(12,12); // The psf cannot be masked!
MaskedMatrix dirty(10,10), initialModel(10,10);
...put appropriate values into psf, dirty, & initialModel....
ConvolutionEquation convEqn(psf, dirty);
MaskedHogbomCleanModel<Float> deconvolvedModel(initialModel);
deconvolvedModel.setGain(0.2);
deconvolvedModel.setNumberIterations(1000);
Bool convWorked = deconvolvedModel.solve(convEqn);
Array<Float> finalModel, residuals;
if (convWorked){
finalModel = deconvolvedModel.getModel();
ConvEqn.residual(deconvolvedModel, finalResidual);
}
Motivation
This class is needed to deconvolve images.
Template Type Argument Requirements (T)
I have tested this class with Arrays of
- Float
To Do
- Check that Arrays of StokesVectors work as advertised
- compare timing with other clean implementations (ie, Mark's
CleanTools, SDE, AIPS & miriad)
Member Description
The default constructor does nothing more than initialise a zero length
array to hold the deconvolved model. If this constructor is used then
the actual model must be set using the setModel() function of the
ArrayModel class.
Construct the HogbomCleanModel object and initialise the model.
Using a Hogbom clean deconvolution proceedure solve for an improved
estimate of the deconvolved object. The convolution/residual equation
contains the psf and dirty image. When called with a ResidualEquation
arguement a quite general interface is used that is slow. The
convolution equation contains functions that speed things up. The
functions return False if the deconvolution could not be done.