casa
5.7.016

Implements the image plane lattice convolution equation. More...
#include <IPLatConvEquation.h>
Public Member Functions  
IPLatConvEquation (casacore::Lattice< casacore::Float > &psf, casacore::Lattice< casacore::Float > &dirtyImage)  
Construct the LatConvEquation setting the psf and measured data. More...  
virtual  ~IPLatConvEquation () 
Somewhere I read that a destructor should alway be defined even if it does nothing (as this one does). More...  
virtual casacore::Bool  residual (casacore::Lattice< casacore::Float > &result, const LinearModel< casacore::Lattice< casacore::Float > > &model) 
Calculate the convolution of the model (supplied by the LinearModel class) and the psf and the difference between this and the supplied (presumably measured) convolution. More...  
virtual casacore::Bool  residual (casacore::Lattice< casacore::Float > &result, casacore::Float &chisq, const LinearModel< casacore::Lattice< casacore::Float > > &model) 
Calculate the convolution of the model (supplied by the LinearModel class) and the psf and the difference between this and the supplied (presumably measured) convolution. More...  
Public Member Functions inherited from casa::LatConvEquation  
LatConvEquation (casacore::Lattice< casacore::Float > &psf, casacore::Lattice< casacore::Float > &dirtyImage)  
Construct the LatConvEquation setting the psf and measured data. More...  
virtual  ~LatConvEquation () 
destroy More...  
virtual casacore::Bool  evaluate (casacore::Lattice< casacore::Float > &result, const LinearModel< casacore::Lattice< casacore::Float > > &model) 
Do the convolution of the model supplied by the LinearModel class with the internal psf. More...  
casacore::Lattice < casacore::Float > *  evaluate (const casacore::IPosition &position, const casacore::Float amplitude, const casacore::IPosition &modelShape) 
Do the convolution of the a point source model at position 'position' with amplitude 'amplitude' and the internal psf. More...  
casacore::Bool  evaluate (casacore::Array< casacore::Float > &result, const casacore::IPosition &position, const casacore::Float amplitude, const casacore::IPosition &modelShape) 
Do the convolution of the a point source model at position 'position' with amplitude 'amplitude' and the internal psf. More...  
virtual casacore::Bool  residual (casacore::Lattice< casacore::Float > &result, casacore::Float &chisq, casacore::Lattice< casacore::Float > &mask, const LinearModel< casacore::Lattice< casacore::Float > > &model) 
Calculate the convolution of the model (supplied by the LinearModel class) and the psf and the difference between this and the supplied (presumably measured) convolution. More...  
casacore::IPosition  psfSize () 
return the psf size used in the convolution. More...  
Public Member Functions inherited from casa::LinearEquation< casacore::Lattice< casacore::Float >, casacore::Lattice< casacore::Float > >  
virtual  ~LinearEquation () 
A virtual destructor may be necessary for use in derived classes. More...  
Public Member Functions inherited from casa::ResidualEquation< casacore::Lattice< casacore::Float > >  
virtual  ~ResidualEquation () 
A virtual destructor may be necessary for use in derived classes. More...  
virtual casacore::Bool  residual (Domain &answer, const LinearModel< Domain > &model)=0 
The canonical member of this class defines a function which gives the residual when the model is propagated through the equation and compared with the data. More...  
virtual casacore::Bool  residual (Domain &answer, casacore::Float &chisq, const LinearModel< Domain > &model)=0 
Same as above, but also calculates Chi^2 (rms of residual image) More...  
virtual casacore::Bool  residual (Domain &answer, casacore::Float &chisq, Domain &mask, const LinearModel< Domain > &model)=0 
Same as above, but also calculates Chi^2 (rms of residual image) considering a mask image. More...  
Private Member Functions  
IPLatConvEquation ()  
Don't use this one, due to the casacore::Lattice<casacore::Float> &. More...  
Private Attributes  
casacore::Float  itsQ 
Factor by which we normalize the PSF for the second convolution. More...  
Additional Inherited Members  
Protected Member Functions inherited from casa::LatConvEquation  
LatConvEquation ()  
Don't use this one, due to the casacore::Lattice<casacore::Float> &. More...  
Protected Attributes inherited from casa::LatConvEquation  
casacore::Lattice < casacore::Float > *  itsMeas 
casacore::Lattice < casacore::Float > *  itsPsf 
casacore::LatticeConvolver < casacore::Float >  itsConv 
casacore::IPosition  itsPsfOrigin 
casacore::IPosition  itsRealPsfSize 
casacore::Bool  itsVirgin 
Implements the image plane lattice convolution equation.
Internal
This class implements image plane (ie, single dish) convolution equation within the LinearEquation framework, using Lattices.
This class is used in conjunction with classes like HogbomCleanModel to implement deconvolution algorithms. This class contains the point spread function (psf) and the convolved data (dirty image), and is able to convolve a supplied model with the psf to produce a predicted output (using the evaluate() function), or to subtract the convolved data and produce a residual (using the residual() function).
See the documentation for HogbomCleanModel for an example of how this class can be used to perform deconvolution.
This class also contains specialised functions (like the version of evaluate() for a point source model) that speed up the calculation of the convolution. This specialised version of evaluate() does not need to actually perform the convolution and instead returns a suitable part of the psf (zero padded if necessary). When this function is called this class will get the psf from the convolver and cache it, on the assumption that many evaluations of this function will be requested (as occurs in Clean algorithms).
The size and shape of the psf and the supplied model may be different. The only restriction is that the dimension of the psf must be less than or equal to the dimension of the model. If the dimension of the model is larger than the dimension of the psf then the convolution will be repeated along the slowest moving (last) axis. The dirty image and the supplied model must be the same size and shape.
This class was designed with deconvolution in mind.
Definition at line 120 of file IPLatConvEquation.h.
casa::IPLatConvEquation::IPLatConvEquation  (  casacore::Lattice< casacore::Float > &  psf, 
casacore::Lattice< casacore::Float > &  dirtyImage  
) 
Construct the LatConvEquation setting the psf and measured data.

virtual 
Somewhere I read that a destructor should alway be defined even if it does nothing (as this one does).

private 
Don't use this one, due to the casacore::Lattice<casacore::Float> &.

virtual 
Calculate the convolution of the model (supplied by the LinearModel class) and the psf and the difference between this and the supplied (presumably measured) convolution.
Reimplemented from casa::LatConvEquation.

virtual 
Calculate the convolution of the model (supplied by the LinearModel class) and the psf and the difference between this and the supplied (presumably measured) convolution.
Also return chisq.
Reimplemented from casa::LatConvEquation.

private 
Factor by which we normalize the PSF for the second convolution.
Definition at line 151 of file IPLatConvEquation.h.