casa
$Rev:20696$
|
A Class for performing Hogbom Clean's of Arrays. More...
#include <MaskedHogbomCleanModel.h>
Public Member Functions | |
MaskedHogbomCleanModel () | |
The default constructor does nothing more than initialise a zero length array to hold the deconvolved model. | |
MaskedHogbomCleanModel (const MaskedArray< T > &model) | |
Construct the HogbomCleanModel object and initialise the model. | |
Bool | solve (ResidualEquation< MaskedArray< T > > &eqn) |
Using a Hogbom clean deconvolution proceedure solve for an improved estimate of the deconvolved object. | |
Bool | solve (ConvolutionEquation &eqn) |
A Class for performing Hogbom Clean's of Arrays.
Public interface
Paradigm </prerequisite>
This class is called HogbomCleanModel because thats the algorithm it uses deconvolve the model.
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.
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); }
This class is needed to deconvolve images.
have tested this class with Arrays of Float
Definition at line 109 of file MaskedHogbomCleanModel.h.
casa::MaskedHogbomCleanModel< T >::MaskedHogbomCleanModel | ( | ) | [inline] |
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.
Definition at line 118 of file MaskedHogbomCleanModel.h.
casa::MaskedHogbomCleanModel< T >::MaskedHogbomCleanModel | ( | const MaskedArray< T > & | model | ) | [inline] |
Construct the HogbomCleanModel object and initialise the model.
Definition at line 120 of file MaskedHogbomCleanModel.h.
Bool casa::MaskedHogbomCleanModel< T >::solve | ( | ResidualEquation< MaskedArray< T > > & | eqn | ) |
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.
Bool casa::MaskedHogbomCleanModel< T >::solve | ( | ConvolutionEquation & | eqn | ) |