casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
casa::MaskedHogbomCleanModel< T > Class Template Reference

A Class for performing Hogbom Clean's of Arrays. More...

#include <MaskedHogbomCleanModel.h>

Inheritance diagram for casa::MaskedHogbomCleanModel< T >:
casa::MaskedArrayModel< T > casa::Iterate casa::LinearModel< casacore::MaskedArray< T > >

Public Member Functions

 MaskedHogbomCleanModel ()
 The default constructor does nothing more than initialise a zero length array to hold the deconvolved model. More...
 
 MaskedHogbomCleanModel (const casacore::MaskedArray< T > &model)
 Construct the HogbomCleanModel object and initialise the model. More...
 
casacore::Bool solve (ResidualEquation< casacore::MaskedArray< T > > &eqn)
 Using a Hogbom clean deconvolution proceedure solve for an improved estimate of the deconvolved object. More...
 
casacore::Bool solve (ConvolutionEquation &eqn)
 
- Public Member Functions inherited from casa::MaskedArrayModel< T >
 MaskedArrayModel ()
 Default constructor sets the internal arrays to zero size. More...
 
 MaskedArrayModel (const casacore::MaskedArray< T > &model)
 Construct the model from a masked array. More...
 
 MaskedArrayModel (const casacore::Array< T > &model)
 Construct the model from an array. More...
 
void getModel (casacore::Array< T > &model) const
 These functions return the model, either as a masked array or just the data array itself with the mask removed. More...
 
virtual void getModel (casacore::MaskedArray< T > &model) const
 
casacore::MaskedArray< T > getModel () const
 Return the current model. More...
 
void setModel (const casacore::Array< T > &model)
 These functions are analogous to the constructors above and must be called when the default constructor is used. More...
 
virtual void setModel (const casacore::MaskedArray< T > &model)
 Set the current model. More...
 
- Public Member Functions inherited from casa::LinearModel< casacore::MaskedArray< T > >
virtual ~LinearModel ()
 A virtual destructor is necessary. More...
 
- Public Member Functions inherited from casa::Iterate
 Iterate ()
 Constructor. More...
 
virtual ~Iterate ()
 
void setFree ()
 Is this a free variable? More...
 
void setNotFree ()
 
casacore::Bool free ()
 
void setNumberIterations (const casacore::Int n)
 
void setGain (const casacore::Float g)
 
void setTolerance (const casacore::Float t)
 
void setThreshold (const casacore::Float t)
 
void setMode (const casacore::String m)
 
casacore::Int numberIterations ()
 
casacore::Float gain ()
 
casacore::Float tolerance ()
 
virtual casacore::Float threshold ()
 
const casacore::String mode ()
 

Additional Inherited Members

- Protected Attributes inherited from casa::MaskedArrayModel< T >
casacore::MaskedArray< T > theModel
 

Detailed Description

template<class T>
class casa::MaskedHogbomCleanModel< T >

A Class for performing Hogbom Clean's of Arrays.

Intended use:

Public interface

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

Paradigm </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 casacore::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

casacore::Matrix<casacore::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<casacore::Float> deconvolvedModel(initialModel);
deconvolvedModel.setGain(0.2);
deconvolvedModel.setNumberIterations(1000);
casacore::Bool convWorked = deconvolvedModel.solve(convEqn);
casacore::Array<casacore::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)

have tested this class with Arrays of Float

To Do

Definition at line 109 of file MaskedHogbomCleanModel.h.

Constructor & Destructor Documentation

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

template<class T >
casa::MaskedHogbomCleanModel< T >::MaskedHogbomCleanModel ( const casacore::MaskedArray< T > &  model)
inline

Construct the HogbomCleanModel object and initialise the model.

Definition at line 120 of file MaskedHogbomCleanModel.h.

Member Function Documentation

template<class T >
casacore::Bool casa::MaskedHogbomCleanModel< T >::solve ( ResidualEquation< casacore::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.

template<class T >
casacore::Bool casa::MaskedHogbomCleanModel< T >::solve ( ConvolutionEquation eqn)

The documentation for this class was generated from the following file: