casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SynthesisDeconvolver.h
Go to the documentation of this file.
1 //# SynthesisDeconvolver.h: Imager functionality sits here;
2 //# Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003
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 addressed 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 //#
25 //# $Id$
26 
27 #ifndef SYNTHESIS_SYNTHESISDECONVOLVER_H
28 #define SYNTHESIS_SYNTHESISDECONVOLVER_H
29 
30 #include <casa/aips.h>
31 #include <casa/OS/Timer.h>
32 #include <casa/Containers/Record.h>
34 #include <casa/Arrays/IPosition.h>
35 #include <casa/Quanta/Quantum.h>
37 
46 
49 
51 
52 namespace casacore{
53 
54 class MeasurementSet;
55 template<class T> class ImageInterface;
56 }
57 
58 namespace casa { //# NAMESPACE CASA - BEGIN
59 
60 // Forward declarations
61 
62 // <summary> Class that contains functions needed for imager </summary>
63 
65 {
66  public:
67  // Default constructor
68 
71 
72  // Copy constructor and assignment operator
73 
74  // make all pure-inputs const
75 
76  void setupDeconvolution(const SynthesisParamsDeconv& decpars);
77 
78  // void setupDeconvolution(casacore::Record recpars);
79 
82 
84 
85  // Helpers
86  /*
87  casacore::Float getPeakResidual();
88  casacore::Float getModelFlux();
89  casacore::Float getPSFSidelobeLevel();
90  */
91  // Restoration (and post-restoration PB-correction)
92  void restore();
93  void pbcor();// maybe add a way to take in arbitrary PBs here.
94 
95  // For interaction
98 
99  void setStartingModel();
101  void setAutoMask();
102  void checkRestoringBeam();
104  casacore::Long estimateRAM(const std::vector<int>& imsize);
105 protected:
106 
107  std::shared_ptr<SIImageStore> makeImageStore( casacore::String imagename );
108  /*
109  void findMinMax(const casacore::Array<casacore::Float>& lattice,
110  const casacore::Array<casacore::Float>& mask,
111  casacore::Float& minVal, casacore::Float& maxVal,
112  casacore::Float& minValMask, casacore::Float& maxValMask);
113 
114  void printImageStats();
115  */
116 
117  // Gather all part images to the 'full' one
118  //void gatherImages();
119  //void scatterModel();
120 
121 
122  // For the deconvolver, decide how many sliced deconvolution calls to make
123  // casacore::Vector<casacore::Slicer> partitionImages();
124 
125  // Check if images exist on disk and are all the same shape
126  //casacore::Bool setupImagesOnDisk();
127  // casacore::Bool doImagesExist( casacore::String imagename );
128 
130 
131  std::shared_ptr<SDAlgorithmBase> itsDeconvolver;
132  std::shared_ptr<SDMaskHandler> itsMaskHandler;
133 
134  std::shared_ptr<SIImageStore> itsImages;
135 
137 
141 
142 
144 
146 
148 
151 
153 
166 
185 
186  casacore::Bool itsIsMaskLoaded; // Try to get rid of this state variable !
188 
190 
192 };
193 
194 
195 } //# NAMESPACE CASA - END
196 
197 #endif
A Vector of integers, for indexing into Array&lt;T&gt; objects.
Definition: IPosition.h:119
int Int
Definition: aipstype.h:50
SIMinorCycleController itsLoopController
casacore::Vector< casacore::String > itsMaskList
casacore::Bool setupMask()
return estimate of memory usage in kB *casacore::Long estimateRAM(const std::vector< int > &imsize)
casacore::IPosition itsImageShape
for new automasking algorithm *casacore::Float itsSidelobeThreshold
std::shared_ptr< SIImageStore > itsImages
void getCopyOfResidualAndMask(casacore::TempImage< casacore::Float > &, casacore::TempImage< casacore::Float > &)
For interaction.
casacore::Vector< casacore::String > itsStartingModelNames
SynthesisDeconvolver()
Default constructor.
casacore::Record interactiveGUI(casacore::Record &iterRec)
casacore::Vector< casacore::Bool > itsChanFlag
std::shared_ptr< SDMaskHandler > itsMaskHandler
casacore::TempImage< casacore::Float > itsPosMask
long Long
Definition: aipstype.h:52
std::shared_ptr< SIImageStore > makeImageStore(casacore::String imagename)
Forward declarations.
A hierarchical collection of named fields of various types.
Definition: Record.h:180
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
void setMask(casacore::TempImage< casacore::Float > &)
casacore::Record initMinorCycle()
void setupDeconvolution(casacore::Record recpars);
float Float
Definition: aipstype.h:54
std::shared_ptr< SDAlgorithmBase > itsDeconvolver
Gather all part images to the &#39;full&#39; one void gatherImages(); void scatterModel(); ...
casacore::Record executeMinorCycle(casacore::Record &subIterBot)
void setupDeconvolution(const SynthesisParamsDeconv &decpars)
Copy constructor and assignment operator.
casacore::Vector< casacore::Float > itsScales
String: the storage and methods of handling collections of characters.
Definition: String.h:223
unsigned int uInt
Definition: aipstype.h:51
#define casacore
&lt;X11/Intrinsic.h&gt; #defines true, false, casacore::Bool, and String.
Definition: X11Intrinsic.h:42