WPConvFunc.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef SYNTHESIS_WPCONVFUNC_H
00030 #define SYNTHESIS_WPCONVFUNC_H
00031
00032
00033 #include <casa/Arrays/Vector.h>
00034 #include <casa/Containers/Block.h>
00035 #include <casa/Utilities/CountedPtr.h>
00036
00037 namespace casa{
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055 template<class T> class ImageInterface;
00056 template<class T> class Matrix;
00057 class VisBuffer;
00058
00059 class WPConvFunc
00060 {
00061 public:
00062 WPConvFunc(const Double minW=-1.0, const Double maxW=-1.0, const Double rmsW=-1.0);
00063 WPConvFunc(const RecordInterface& rec);
00064
00065 WPConvFunc(const WPConvFunc& other);
00066
00067 WPConvFunc& operator=(const WPConvFunc&other);
00068
00069 virtual ~WPConvFunc();
00070
00071
00072
00073
00074 void findConvFunction(const ImageInterface<Complex>& iimage,
00075 const VisBuffer& vb,
00076 const Int& wConvSize,
00077 const Vector<Double>& uvScale,
00078 const Vector<Double>& uvOffset,
00079 const Float& padding,
00080 Int& convSampling,
00081 Cube<Complex>& convFunc,
00082 Int& convsize,
00083 Vector<Int>& convSupport,
00084 Double& wScale);
00085
00086 Bool findSupport(Array<Complex>& , Float& ,Int& , Int& )
00087 {throw(AipsError("IlluminationConvFunc::findSupport() not implemented"));};
00088 virtual Bool makeAverageResponse(const VisBuffer& ,
00089 const ImageInterface<Complex>& ,
00090
00091 ImageInterface<Float>& ,
00092 Bool )
00093 {throw(AipsError("WPConvFunc::makeAverageRes() called"));};
00094
00095 Bool toRecord(RecordInterface& rec);
00096 Bool fromRecord(String& err, const RecordInterface& rec);
00097
00098
00099 private:
00100 Bool checkCenterPix(const ImageInterface<Complex>& image);
00101 Block <CountedPtr<Cube<Complex> > > convFunctions_p;
00102 Block <CountedPtr<Vector<Int> > > convSupportBlock_p;
00103 SimpleOrderedMap <String, Int> convFunctionMap_p;
00104 Vector<Int> convSizes_p;
00105
00106 Int actualConvIndex_p;
00107 Int convSize_p;
00108 Vector<Int> convSupport_p;
00109 Cube<Complex> convFunc_p;
00110 Double wScaler_p;
00111 Int convSampling_p;
00112 Int nx_p, ny_p;
00113 Double minW_p, maxW_p, rmsW_p;
00114
00115
00116 };
00117 };
00118 #endif