casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
WFCleanImageSkyModel.h
Go to the documentation of this file.
1 //# WFCleanImageSkyModel.h: Definition for WFCleanImageSkyModel
2 //# Copyright (C) 1996,1997,1998,1999,2002
3 //# Associated Universities, Inc. Washington DC, USA.
4 //#
5 //# This library is free software; you can redistribute it and/or modify it
6 //# under the terms of the GNU Library General Public License as published by
7 //# the Free Software Foundation; either version 2 of the License, or (at your
8 //# option) any later version.
9 //#
10 //# This library is distributed in the hope that it will be useful, but WITHOUT
11 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 //# License for more details.
14 //#
15 //# You should have received a copy of the GNU Library General Public License
16 //# along with this library; if not, write to the Free Software Foundation,
17 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18 //#
19 //# Correspondence concerning AIPS++ should be adressed as follows:
20 //# Internet email: aips2-request@nrao.edu.
21 //# Postal address: AIPS++ Project Office
22 //# National Radio Astronomy Observatory
23 //# 520 Edgemont Road
24 //# Charlottesville, VA 22903-2475 USA
25 //#
26 //#
27 //# $Id$
28 
29 #ifndef SYNTHESIS_WFCLEANIMAGESKYMODEL_H
30 #define SYNTHESIS_WFCLEANIMAGESKYMODEL_H
31 
33 namespace casacore{
34 
35 template <class T> class SubImage;
36 }
37 
38 namespace casa { //# NAMESPACE CASA - BEGIN
39 
40 //forward
41 class SkyEquation;
42 
43 // <summary>
44 // WF Image Sky Model: Image Sky Model implementing the WF Clean algorithm
45 // </summary>
46 
47 // <use visibility=export>
48 
49 // <reviewed reviewer="" date="" tests="" demos="">
50 
51 // <prerequisite>
52 // <li> <linkto class=ImageSkyModel>ImageSkyModel</linkto> module
53 // <li> <linkto class=MFCleanImageSkyModel>MFCleanImageSkyModel</linkto> module
54 // </prerequisite>
55 //
56 // <etymology>
57 // WFCleanImageSkyModel implements the WF Clean algorithm.
58 // It is derived from <linkto class=MFCleanImageSkyModel>MFCleanImageSkyModel</linkto>.
59 // </etymology>
60 //
61 // <synopsis>
62 // The WF Clean is an FFT-based clean algorithm. Cleaning is
63 // split into major and minor cycles. In a minor cycle, the
64 // brightest pixels are cleaned using only the strongest sidelobes
65 // (and main lobe) of the PSF. In the major cycle, a fully correct
66 // subtraction of the PSF is done for all points accumulated in the
67 // minor cycle using an FFT-based convolution for speed.
68 //
69 // The WF Clean is implemented using the
70 // <linkto class=MFCleanImageSkyModel>MFCleanImageSkyModel</linkto>
71 // class.
72 //
73 // Masking is optionally performed using a mask image: only points
74 // where the mask is non-zero are cleaned. If no mask is specified
75 // all points in the inner quarter of the image are cleaned.
76 // </synopsis>
77 //
78 // <example>
79 // See the example for <linkto class=SkyModel>SkyModel</linkto>.
80 // </example>
81 //
82 // <motivation>
83 // </motivation>
84 //
85 // <todo asof="97/10/01">
86 // <ul> Allow specification of more control parameters
87 // </todo>
88 
90 public:
91 
93 
94  virtual ~WFCleanImageSkyModel();
95 
96  WFCleanImageSkyModel(const casacore::Int nfacets, casacore::Bool largeMemory=false);
97 
99 
101 
103 
104  // Solve for this SkyModel
105  virtual casacore::Bool solve (SkyEquation& me);
106 
107  //This will return for model 0 the main residual image i.e nxn facets
109 
110  //void makeApproxPSFs(SkyEquation& se);
111 
112  /*
113  casacore::PtrBlock<casacore::TempImage<casacore::Complex> *>& cimageBlkPtr() { return cimage_p;};
114  casacore::PtrBlock<casacore::Matrix<casacore::Float> * >& weightBlkPtr(){return weight_p; } ;
115  */
116 protected:
117 
118  // Make a facet
120 
121  // Make the slicers
122  casacore::Bool makeSlicers(const casacore::Int facet, const casacore::IPosition& imageShape,
123  casacore::IPosition& facetShape,
124  casacore::Slicer& imageSlicer);
125  // Number of facets
127 
128 
129 private:
130 
134 
136  //casacore::Bool largeMem_p;
137 
138  // Here we store the facets for the various images: Model, Mask
139  // and Residual
143 
144 };
145 
146 
147 } //# NAMESPACE CASA - END
148 
149 #endif
150 
151 
A Vector of integers, for indexing into Array&lt;T&gt; objects.
Definition: IPosition.h:119
int Int
Definition: aipstype.h:50
MF Image Sky Model: Image Sky Model implementing the MF Clean algorithm.
casacore::CountedPtr< casacore::ImageInterface< casacore::Float > > residualImage_p
casacore::Block< casacore::CountedPtr< casacore::SubImage< casacore::Float > > > facetResidualImages_p
casacore::CountedPtr< casacore::ImageInterface< casacore::Float > > imageImage_p
virtual casacore::Int add(casacore::ImageInterface< casacore::Float > &image, const casacore::Int maxNumXfr=100)
Add an image.
casacore::Block< casacore::CountedPtr< casacore::SubImage< casacore::Float > > > facetMaskImages_p
casacore::ImageInterface< casacore::Float > & residual(casacore::Int model=0)
virtual casacore::Bool addResidual(casacore::Int image, casacore::ImageInterface< casacore::Float > &residual)
Add a residual image.
virtual casacore::Bool solve(SkyEquation &me)
Solve for this SkyModel.
casacore::ImageInterface< casacore::Float > & mask(casacore::Int model=0)
Return masks.
casacore::Bool makeSlicers(const casacore::Int facet, const casacore::IPosition &imageShape, casacore::IPosition &facetShape, casacore::Slicer &imageSlicer)
Make the slicers.
Referenced counted pointer for constant data.
Definition: VisModelData.h:42
casacore::Block< casacore::CountedPtr< casacore::SubImage< casacore::Float > > > facetImages_p
casacore::Bool largeMem_p;
casacore::Int nfacets_p
Number of facets.
casacore::SubImage< casacore::Float > * makeFacet(casacore::Int facet, casacore::ImageInterface< casacore::Float > &image)
void makeApproxPSFs(SkyEquation&amp; se);
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
A (masked) subset of an ImageInterface object.
casacore::CountedPtr< casacore::ImageInterface< casacore::Float > > maskImage_p
Specify which elements to extract from an n-dimensional array.
Definition: Slicer.h:289
virtual casacore::Bool addMask(casacore::Int image, casacore::ImageInterface< casacore::Float > &mask)
Add an mask.
simple 1-D array
casacore::ImageInterface< casacore::Float > & image(casacore::Int model=0)
Return actual images to be used by SkyEquation.
WF Image Sky Model: Image Sky Model implementing the WF Clean algorithm.
virtual casacore::ImageInterface< casacore::Float > & getResidual(casacore::Int physImageID)
This will return for model 0 the main residual image i.e nxn facets.
#define casacore
&lt;X11/Intrinsic.h&gt; #defines true, false, casacore::Bool, and String.
Definition: X11Intrinsic.h:42