casa
5.7.0-16
|
Briggs' Non-Negative Least Squares deconvolution algorithm. More...
#include <NNLSImageSkyModel.h>
Public Member Functions | |
virtual casacore::Bool | solve (SkyEquation &me) |
Solve for this SkyModel. More... | |
Public Member Functions inherited from casa::CleanImageSkyModel | |
CleanImageSkyModel () | |
Empty constructor. More... | |
CleanImageSkyModel (const CleanImageSkyModel &sm) | |
Copy constructor. More... | |
casacore::Bool | hasMask (casacore::Int model=0) |
Has a mask for model? More... | |
virtual casacore::Bool | add (ComponentList &compList) |
Add a componentlist. More... | |
virtual casacore::Int | add (casacore::ImageInterface< casacore::Float > &image, const casacore::Int maxNumXfr=100) |
Add an image. More... | |
virtual casacore::Bool | addMask (casacore::Int image, casacore::ImageInterface< casacore::Float > &mask) |
Add an mask. More... | |
casacore::Bool | hasFluxMask (casacore::Int model=0) |
Has a flux mask? More... | |
virtual casacore::Bool | addFluxMask (casacore::Int image, casacore::ImageInterface< casacore::Float > &fluxMask) |
casacore::ImageInterface < casacore::Float > & | fluxMask (casacore::Int model=0) |
virtual | ~CleanImageSkyModel () |
Destructor. More... | |
CleanImageSkyModel & | operator= (const CleanImageSkyModel &other) |
Assignment operator. More... | |
casacore::ImageInterface < casacore::Float > & | mask (casacore::Int model=0) |
Return masks. More... | |
virtual void | setJointStokesClean (casacore::Bool joint=true) |
set to search for peak in I^2+Q^2+U^2+V^2 domain or each stokes plane seperately Ignored for hogbom and msclean for now More... | |
virtual casacore::Float | maxField (casacore::Vector< casacore::Float > &imagemax, casacore::Vector< casacore::Float > &imagemin) |
Return the maximum absolute value from residual images per field. More... | |
Public Member Functions inherited from casa::ImageSkyModel | |
ImageSkyModel (const casacore::Int maxNumModels=1) | |
Empty constructor. More... | |
void | setMaxNumberModels (const casacore::Int maxNumModels) |
ImageSkyModel (const ImageSkyModel &sm) | |
Copy constructor. More... | |
virtual casacore::Bool | updatemodel (ComponentList &compList) |
update componentlist More... | |
virtual casacore::Bool | updatemodel (const casacore::Int thismodel, casacore::ImageInterface< casacore::Float > &image) |
update model image...you have to have added it before...nmodels_p held has to be bigger that image here its left to the caller to make sure the image is conformant...otherwise you are in trouble. More... | |
virtual casacore::Bool | addResidual (casacore::Int image, casacore::ImageInterface< casacore::Float > &residual) |
Add a residual image. More... | |
virtual | ~ImageSkyModel () |
Destructor. More... | |
ImageSkyModel & | operator= (const ImageSkyModel &other) |
Assignment operator. More... | |
virtual casacore::Int | numberOfModels () |
Number of models contained. More... | |
virtual casacore::Int | numberOfTaylorTerms () |
MFS : Number of taylor terms per model. More... | |
virtual casacore::Bool | calculateCoeffResiduals () |
MFS : In-place coefficient residual calculations. More... | |
virtual casacore::Bool | calculateAlphaBeta (const casacore::Vector< casacore::String > &, const casacore::Vector< casacore::String > &) |
MFS : Calculate restored alpha and beta. More... | |
virtual casacore::Double | getReferenceFrequency () |
MFS : Reference Frequency. More... | |
virtual casacore::Int | getTaylorIndex (casacore::Int index) |
MFS : Index of Taylor term in array of nmodels x ntaylorterms virtual casacore::Int getTaylorIndex(casacore::Int index){return 0;} More... | |
casacore::Bool | isSolveable (casacore::Int model=0) |
Is this model solveable? More... | |
casacore::Bool | free (casacore::Int model=0) |
Free and fix the model (returns previous status). More... | |
casacore::Bool | fix (casacore::Int model=0) |
virtual void | initializeGradients () |
Initialize for gradient search. More... | |
virtual void | finalizeGradients () |
Finalize for gradient search. More... | |
casacore::Bool | hasComponentList () |
Does this have a component list? More... | |
casacore::Bool | isEmpty (casacore::Int model=0) |
Is this model empty. More... | |
virtual ComponentList & | componentList () |
Return the component list. More... | |
casacore::ImageInterface < casacore::Float > & | image (casacore::Int model=0) |
Return actual images to be used by SkyEquation. More... | |
casacore::ImageInterface < casacore::Complex > & | cImage (casacore::Int model=0) |
casacore::Complex image (needed for e.g. More... | |
casacore::ImageInterface < casacore::Complex > & | XFR (casacore::Int model=0, casacore::Int numXFR=0) |
casacore::Complex XFR More... | |
casacore::ImageInterface < casacore::Float > & | PSF (casacore::Int model=0) |
PSF. More... | |
casacore::ImageInterface < casacore::Float > & | gS (casacore::Int model=0) |
Gradient of chi-squared wrt pixels. More... | |
casacore::ImageInterface < casacore::Float > & | residual (casacore::Int model=0) |
casacore::ImageInterface < casacore::Float > & | ggS (casacore::Int model=0) |
Grad Grad chi-squared wrt pixels (diagonal elements only) More... | |
casacore::ImageInterface < casacore::Float > & | fluxScale (casacore::Int model=0) |
if (doFluxScale(mod)) image(mod) * fluxScale(mod) gives actual brightness distribution More... | |
casacore::ImageInterface < casacore::Float > & | work (casacore::Int model=0) |
Work image. More... | |
casacore::ImageInterface < casacore::Float > & | deltaImage (casacore::Int model=0) |
Increment in the image. More... | |
casacore::Bool | doFluxScale (casacore::Int model=0) |
tells if this model needs to be multiplied by a flux scale image More... | |
void | mandateFluxScale (casacore::Int model=0) |
require use of flux scale image More... | |
casacore::Bool | hasXFR (casacore::Int model=0) |
void | addStatistics (casacore::Float sumwt, casacore::Float chisq) |
Add to Sum weights, Chi-Squared. More... | |
casacore::Matrix < casacore::Float > & | weight (casacore::Int model=0) |
Weight per model (channels, polarizations) More... | |
casacore::Bool | solveResiduals (SkyEquation &me, casacore::Bool modelToMS=false) |
Solve explicitly for the residuals: same as solve for this class modelToMs determines if predicted vis is put in the MODEL_DATA column. More... | |
virtual void | makeApproxPSFs (SkyEquation &se) |
Make the approximate PSFs needed for each model. More... | |
virtual casacore::ImageInterface < casacore::Float > & | getResidual (casacore::Int model=0) |
Get current residual image: this is either that image specified via addResidual, or a scratch image. More... | |
casacore::ImageBeamSet & | beam (casacore::Int model=0) |
Return the fitted beam for each model. More... | |
void | setPGPlotter (casacore::PGPlotter &pgp) |
Set casacore::PGPlotter to be used. More... | |
void | setCycleFactor (float x) |
This is the factor by which you multiply the worst outer sidelobe by to get the threshold for the current cycle. More... | |
void | setCycleSpeedup (float x) |
Cycle threshold will double in this number of iterations (ie, use a large number if you don't want cycle threshold to inch up) More... | |
void | setCycleMaxPsfFraction (float x) |
Yet another control for the minor cycle threshold. More... | |
void | setDisplayProgress (const casacore::Bool display) |
Set the variable that switches on the progress display. More... | |
void | setDataPolFrame (StokesImageUtil::PolRep datapolrep) |
Set a variable to indicate the polarization frame in the data (circular or linear). More... | |
virtual casacore::Int | getModelIndex (casacore::uInt field, casacore::uInt) |
virtual void | setMemoryUse (casacore::Bool useMem=false) |
try to make templattices use memory if possible if set to false then always use disk More... | |
virtual casacore::Bool | getMemoryUse () |
void | setTileVol (const casacore::Int tileVol=1000000) |
Set templattice tile vol in pixels. More... | |
Public Member Functions inherited from casa::SkyModel | |
SkyModel () | |
void | setAlgorithm (const casacore::String &alg) |
set Algorithm (e.g clean, mem, nnls) More... | |
const casacore::String | getAlgorithm () |
get Algorithm More... | |
void | setSubAlgorithm (const casacore::String &alg) |
set Sub Algorithm More... | |
const casacore::String | getSubAlgorithm () |
get Sub Algorithm More... | |
void | setImageRegion (casacore::ImageRegion &ir) |
Set the imageregion that will be used for the next XFR generation. More... | |
void | unsetImageRegion () |
use the default shape More... | |
void | setImageNormalization (casacore::Bool val) |
casacore::Bool | isImageNormalized () |
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 () |
Private Member Functions | |
casacore::Bool | maskedZeroI () |
Briggs' Non-Negative Least Squares deconvolution algorithm.
Public interface
NNLSImageSkyModel implements the NNLS deconvolution algorithm. It is derived from ImageSkyModel.
NNLS is implemented using the NNLSMatrixSolver class. Since the brightness must be non-negative, only the casacore::Stokes I is solved for. Any other polarizations are not changed.
Two masks are needed: the fluxmask determining the free pixels in the output image, and the datamask determining the constraint pixels in the dirty image.
In the solution, a matrix is required having elements connecting all free pixels with all constraint pixels. This is constructed from the point spread function. The total size of this matrix dominates the memory usage.
See the example for SkyModel.
Definition at line 79 of file NNLSImageSkyModel.h.
|
private |
|
virtual |
Solve for this SkyModel.
Reimplemented from casa::ImageSkyModel.