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 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_WPCONVFUNC_H
30 #define SYNTHESIS_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 
45  // <summary> A class to support FTMachines get their convolution casacore::Function </summary>
46 
47  // <use visibility=export>
48  // <prerequisite>
49  // <li> <linkto class=VisBuffer>VisBuffer</linkto> module
50 // </prerequisite>
51  // <etymology>
52  // WP for W-casacore::Projection
53  // ConvFunc => returns the convolution functions
54  // </etymology>
55  //
56  // <synopsis>
57  // FTMachines like WProjection and MosaicFT need convolution functions to
58  // deal with directional dependent issues...
59  // this class and related ones provide and cache such functions for re-use
60  //</synopsis>
61  class VisBuffer;
62 
63  class WPConvFunc
64  {
65  public:
66  WPConvFunc(const casacore::Double minW=-1.0, const casacore::Double maxW=-1.0, const casacore::Double rmsW=-1.0);
68  //Copy constructor
69  WPConvFunc(const WPConvFunc& other);
70  //
71  WPConvFunc& operator=(const WPConvFunc&other);
72 
73  virtual ~WPConvFunc();
74 
75  // Inputs are the image, visbuffer, wConvsize
76  // findconv return a cached convolution function appropriate for this
77  // visbuffer and number of w conv plane
79  const VisBuffer& vb,
80  const casacore::Int& wConvSize,
82  const casacore::Vector<casacore::Double>& uvOffset,
83  const casacore::Float& padding,
84  casacore::Int& convSampling,
86  casacore::Int& convsize,
88  casacore::Double& wScale);
90  const VisBuffer& vb,
91  const casacore::Int& wConvSize,
93  const casacore::Vector<casacore::Double>& uvOffset,
94  const casacore::Float& padding,
95  casacore::Int& convSampling,
97  casacore::Int& convsize,
99  casacore::Double& wScale);
100 
102  {throw(casacore::AipsError("IlluminationConvFunc::findSupport() not implemented"));};
105  // casacore::TempImage<casacore::Float>& theavgPB,
107  casacore::Bool /*reset=true*/)
108  {throw(casacore::AipsError("WPConvFunc::makeAverageRes() called"));};
109  //Serialization
112 
113 
114  private:
119  std::map <casacore::String, casacore::Int> convFunctionMap_p;
120 
122 
131 
132 
133  };
134 };// end of namespace
135 #endif
casacore::Double minW_p
Definition: WPConvFunc.h:130
casacore::Cube< casacore::Complex > convFunc_p
Definition: WPConvFunc.h:126
int Int
Definition: aipstype.h:50
casacore::Bool toRecord(casacore::RecordInterface &rec)
Serialization.
casacore::Block< casacore::CountedPtr< casacore::Cube< casacore::Complex > > > convFunctions_p
Definition: WPConvFunc.h:117
casacore::Int ny_p
Definition: WPConvFunc.h:129
casacore::Bool findSupport(casacore::Array< casacore::Complex > &, casacore::Float &, casacore::Int &, casacore::Int &)
Definition: WPConvFunc.h:101
casacore::Double maxW_p
Definition: WPConvFunc.h:130
casacore::Int convSampling_p
Definition: WPConvFunc.h:128
casacore::Vector< casacore::Int > convSupport_p
Definition: WPConvFunc.h:125
casacore::Int convSize_p
Definition: WPConvFunc.h:124
void findConvFunction(const casacore::ImageInterface< casacore::Complex > &iimage, const VisBuffer &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 ...
casacore::Block< casacore::CountedPtr< casacore::Vector< casacore::Int > > > convSupportBlock_p
Definition: WPConvFunc.h:118
double Double
Definition: aipstype.h:55
virtual casacore::Bool makeAverageResponse(const VisBuffer &, const casacore::ImageInterface< casacore::Complex > &, casacore::ImageInterface< casacore::Float > &, casacore::Bool)
Definition: WPConvFunc.h:103
casacore::Int nx_p
Definition: WPConvFunc.h:129
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
casacore::Double rmsW_p
Definition: WPConvFunc.h:130
casacore::Vector< casacore::Int > convSizes_p
Definition: WPConvFunc.h:121
casacore::Double wScaler_p
Definition: WPConvFunc.h:127
float Float
Definition: aipstype.h:54
WPConvFunc & operator=(const WPConvFunc &other)
virtual ~WPConvFunc()
simple 1-D array
void findConvFunction2(const casacore::ImageInterface< casacore::Complex > &iimage, const VisBuffer &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)
std::map< casacore::String, casacore::Int > convFunctionMap_p
Definition: WPConvFunc.h:119
casacore::Int actualConvIndex_p
Definition: WPConvFunc.h:123
Base class for all Casacore library errors.
Definition: Error.h:134
String: the storage and methods of handling collections of characters.
Definition: String.h:223
VisBuffers encapsulate one chunk of visibility data for processing.
Definition: VisBuffer.h:153
casacore::Bool fromRecord(casacore::String &err, const casacore::RecordInterface &rec)
Abstract base class for Record classes.
casacore::Bool checkCenterPix(const casacore::ImageInterface< casacore::Complex > &image)
WPConvFunc(const casacore::Double minW=-1.0, const casacore::Double maxW=-1.0, const casacore::Double rmsW=-1.0)
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)
#define casacore
&lt;X11/Intrinsic.h&gt; #defines true, false, casacore::Bool, and String.
Definition: X11Intrinsic.h:42