casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
WPConvFunc.h
Go to the documentation of this file.
1 //# WPConvFunc.h: Definition for WPConvFunc
2 //# Copyright (C) 2007-2016
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 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 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_TRANSFORM2_WPCONVFUNC_H
30 #define SYNTHESIS_TRANSFORM2_WPCONVFUNC_H
31 
32 
33 #include <casa/Arrays/Vector.h>
34 #include <casa/Containers/Block.h>
36 
37 namespace casacore{
38 
39  template<class T> class ImageInterface;
40  template<class T> class Matrix;
41 }
42 
43 namespace casa{
44  namespace vi{class VisBuffer2;}
45 
46 namespace refim{// namespace for imaging refactoring
47 
48  // <summary> A class to support FTMachines get their convolution casacore::Function </summary>
49 
50  // <use visibility=export>
51  // <prerequisite>
52  // <li> <linkto class=VisBuffer>VisBuffer</linkto> module
53 // </prerequisite>
54  // <etymology>
55  // WP for W-casacore::Projection
56  // ConvFunc => returns the convolution functions
57  // </etymology>
58  //
59  // <synopsis>
60  // FTMachines like WProjection and MosaicFT need convolution functions to
61  // deal with directional dependent issues...
62  // this class and related ones provide and cache such functions for re-use
63  //</synopsis>
64 
65  class WPConvFunc
66  {
67  public:
68  WPConvFunc(const casacore::Double minW=-1.0, const casacore::Double maxW=-1.0, const casacore::Double rmsW=-1.0);
70  //Copy constructor
71  WPConvFunc(const WPConvFunc& other);
72  //
73  WPConvFunc& operator=(const WPConvFunc&other);
74 
75 
76  virtual ~WPConvFunc();
77 
78  // Inputs are the image, visbuffer, wConvsize
79  // findconv return a cached convolution function appropriate for this
80  // visbuffer and number of w conv plane
82  const vi::VisBuffer2& vb,
83  const casacore::Int& wConvSize,
85  const casacore::Vector<casacore::Double>& uvOffset,
86  const casacore::Float& padding,
87  casacore::Int& convSampling,
89  casacore::Int& convsize,
91  casacore::Double& wScale);
92 
94  {throw(casacore::AipsError("IlluminationConvFunc::findSupport() not implemented"));};
97  // casacore::TempImage<casacore::Float>& theavgPB,
99  casacore::Bool /*reset=true*/)
100  {throw(casacore::AipsError("WPConvFunc::makeAverageRes() called"));};
101  //Serialization
104  private:
109  std::map <casacore::String, casacore::Int> convFunctionMap_p;
111 
120 
121  };
122 } //end of namespace refim
123 } // end namespace casa
124 #endif
casacore::Block< casacore::CountedPtr< casacore::Vector< casacore::Int > > > convSupportBlock_p
Definition: WPConvFunc.h:108
int Int
Definition: aipstype.h:50
casacore::Vector< casacore::Int > convSupport_p
Definition: WPConvFunc.h:114
casacore::Int nx_p
Definition: WPConvFunc.h:118
A class to support FTMachines get their convolution casacore::Function.
Definition: WPConvFunc.h:65
WPConvFunc(const casacore::Double minW=-1.0, const casacore::Double maxW=-1.0, const casacore::Double rmsW=-1.0)
casacore::Cube< casacore::Complex > convFunc_p
Definition: WPConvFunc.h:115
casacore::Block< casacore::CountedPtr< casacore::Cube< casacore::Complex > > > convFunctions_p
Definition: WPConvFunc.h:107
casacore::Double rmsW_p
Definition: WPConvFunc.h:119
casacore::Double minW_p
Definition: WPConvFunc.h:119
casacore::Int convSampling_p
Definition: WPConvFunc.h:117
std::map< casacore::String, casacore::Int > convFunctionMap_p
Definition: WPConvFunc.h:109
casacore::Vector< casacore::Int > convSizes_p
Definition: WPConvFunc.h:110
double Double
Definition: aipstype.h:55
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
float Float
Definition: aipstype.h:54
casacore::Bool fromRecord(casacore::String &err, const casacore::RecordInterface &rec)
casacore::Double wScaler_p
Definition: WPConvFunc.h:116
casacore::Int ny_p
Definition: WPConvFunc.h:118
casacore::Double maxW_p
Definition: WPConvFunc.h:119
simple 1-D array
VisBuffer2s encapsulate one chunk of visibility data for processing.
Definition: VisBuffer2.h:141
Base class for all Casacore library errors.
Definition: Error.h:134
void makeGWplane(casacore::Matrix< casacore::Complex > &screen, const casacore::Int iw, casacore::Double s0, casacore::Double s1, casacore::Float *&wsaveptr, casacore::Int &lsav, casacore::Int &inner, casacore::Complex *&cor, casacore::Double &cpWscale)
casacore::Bool toRecord(casacore::RecordInterface &rec)
Serialization.
String: the storage and methods of handling collections of characters.
Definition: String.h:223
casacore::Int convSize_p
Definition: WPConvFunc.h:113
virtual casacore::Bool makeAverageResponse(const vi::VisBuffer2 &, const casacore::ImageInterface< casacore::Complex > &, casacore::ImageInterface< casacore::Float > &, casacore::Bool)
Definition: WPConvFunc.h:95
void findConvFunction(const casacore::ImageInterface< casacore::Complex > &iimage, const vi::VisBuffer2 &vb, const casacore::Int &wConvSize, const casacore::Vector< casacore::Double > &uvScale, const casacore::Vector< casacore::Double > &uvOffset, const casacore::Float &padding, casacore::Int &convSampling, casacore::Cube< casacore::Complex > &convFunc, casacore::Int &convsize, casacore::Vector< casacore::Int > &convSupport, casacore::Double &wScale)
Inputs are the image, visbuffer, wConvsize findconv return a cached convolution function appropriate ...
Abstract base class for Record classes.
casacore::Bool findSupport(casacore::Array< casacore::Complex > &, casacore::Float &, casacore::Int &, casacore::Int &)
Definition: WPConvFunc.h:93
WPConvFunc & operator=(const WPConvFunc &other)
casacore::Int actualConvIndex_p
Definition: WPConvFunc.h:112
casacore::Bool checkCenterPix(const casacore::ImageInterface< casacore::Complex > &image)
#define casacore
&lt;X11/Intrinsic.h&gt; #defines true, false, casacore::Bool, and String.
Definition: X11Intrinsic.h:42