MaskedHogbomCleanModel.h

Classes

MaskedHogbomCleanModel -- A Class for performing Hogbom Clean's of Arrays (full description)

template<class T> class MaskedHogbomCleanModel: public MaskedArrayModel<T>, public Iterate

Interface

Public Members
MaskedHogbomCleanModel():MaskedArrayModel<T>()
MaskedHogbomCleanModel(const MaskedArray<T> & model) :MaskedArrayModel<T>(model)
Bool solve(ResidualEquation<MaskedArray<T> > & eqn)
Bool solve(ConvolutionEquation & eqn)

Description

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

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)

To Do

Member Description

MaskedHogbomCleanModel():MaskedArrayModel<T>()

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.

MaskedHogbomCleanModel(const MaskedArray<T> & model) :MaskedArrayModel<T>(model)

Construct the HogbomCleanModel object and initialise the model.

Bool solve(ResidualEquation<MaskedArray<T> > & eqn)
Bool solve(ConvolutionEquation & 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.