PSTerm.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_PSTERM_H
00030 #define SYNTHESIS_PSTERM_H
00031
00032
00033 #include <casa/Arrays/Vector.h>
00034 #include <msvis/MSVis/VisBuffer.h>
00035 #include <images/Images/ImageInterface.h>
00036 #include <images/Images/PagedImage.h>
00037 #include <images/Images/TempImage.h>
00038 #include <scimath/Mathematics/ConvolveGridder.h>
00039 #include <synthesis/TransformMachines/CFStore.h>
00040 #include <synthesis/TransformMachines/CFTerms.h>
00041
00042 namespace casa{
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055 class PSTerm: public CFTerms
00056 {
00057 public:
00058 PSTerm(): CFTerms() {};
00059 PSTerm (const IPosition shape,
00060 const Vector<Double>& uvScale,
00061 const Vector<Double>& uvOffset,
00062 const Double& psScale):psCtor_p()
00063 {init(shape,uvScale,uvOffset,psScale);};
00064
00065 virtual ~PSTerm () {};
00066
00067 void init(const IPosition shape,
00068 const Vector<Double>& uvScale,
00069 const Vector<Double>& uvOffset,
00070 const Double& psScale);
00071 Matrix<Complex>& operator=(Matrix<Complex>&);
00072 Matrix<Complex>& operator*=(Matrix<Complex>&);
00073
00074 void applySky(Matrix<Complex>& screen,Bool multiply=False);
00075 void applySky(Matrix<Complex>& screen,
00076 const Vector<Double>& sampling,
00077 const Int inner);
00078 void normalizeImage(Lattice<Complex>& skyImage,
00079 const Matrix<Float>& weights);
00080 virtual String name() {return String("PS Term");};
00081
00082
00083
00084
00085
00086 int getVisParams(const VisBuffer& vb,const CoordinateSystem& skyCoord=CoordinateSystem())
00087 {(void)vb;(void)skyCoord;return 0;};
00088
00089 void setPolMap(const Vector<Int>& polMap) {(void)polMap;};
00090
00091 virtual Float getSupportThreshold() {return 1e-3;};
00092
00093 void applySky(ImageInterface<Float>&,
00094 const VisBuffer&,
00095 const Bool,
00096 const Int&,
00097 const Int&,
00098 const Double )
00099 {};
00100
00101 void applySky(ImageInterface<Complex>&,
00102 const VisBuffer&,
00103 const Bool,
00104 const Int&,
00105 const Int&,
00106 const Double )
00107 {};
00108
00109 Vector<Int> vbRow2CFKeyMap(const VisBuffer& , Int& )
00110 {Vector<Int> tt;return tt;};
00111
00112 Int makePBPolnCoords(const VisBuffer&,
00113 const Int&,
00114 const Int&,
00115 const CoordinateSystem&,
00116 const Int&,
00117 const Int&,
00118 CoordinateSystem&
00119 )
00120 {return 0;};
00121
00122 Int getConvSize() {return 0;};
00123 Int getOversampling() {return 50;};
00124 Float getConvWeightSizeFactor() {return 1.0;};
00125
00126 Bool rotationallySymmetric() {return True;};
00127
00128 private:
00129
00130 CountedPtr<ConvolveGridder<Double, Complex> > psCtor_p;
00131 Vector<Double> support_p;
00132 Vector<Int> sampling_p;
00133 Double psScale_p;
00134 };
00135
00136 };
00137
00138 #endif