VLAIlluminationConvFunc.h

Go to the documentation of this file.
00001 //# VLAIlluminationConvFunc.h: Definition for VLAIlluminationConvFunc
00002 //# Copyright (C) 1996,1997,1998,1999,2000,2002
00003 //# Associated Universities, Inc. Washington DC, USA.
00004 //#
00005 //# This library is free software; you can redistribute it and/or modify it
00006 //# under the terms of the GNU Library General Public License as published by
00007 //# the Free Software Foundation; either version 2 of the License, or (at your
00008 //# option) any later version.
00009 //#
00010 //# This library is distributed in the hope that it will be useful, but WITHOUT
00011 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00012 //# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
00013 //# License for more details.
00014 //#
00015 //# You should have received a copy of the GNU Library General Public License
00016 //# along with this library; if not, write to the Free Software Foundation,
00017 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
00018 //#
00019 //# Correspondence concerning AIPS++ should be adressed as follows:
00020 //#        Internet email: aips2-request@nrao.edu.
00021 //#        Postal address: AIPS++ Project Office
00022 //#                        National Radio Astronomy Observatory
00023 //#                        520 Edgemont Road
00024 //#                        Charlottesville, VA 22903-2475 USA
00025 //#
00026 //#
00027 //# $Id$
00028 
00029 #ifndef SYNTHESIS_TRANSFORM2_VLAILLUMINATIONCONVFUNC_H
00030 #define SYNTHESIS_TRANSFORM2_VLAILLUMINATIONCONVFUNC_H
00031 
00032 #include <synthesis/TransformMachines2/IlluminationConvFunc.h>
00033 #include <synthesis/MeasurementComponents/CExp.new3.h>
00034 #include <synthesis/MeasurementComponents/ExpCache.h>
00035 #include <images/Images/TempImage.h>
00036 #include <casa/Exceptions.h>
00037 #include <msvis/MSVis/VisBuffer2.h>
00038 namespace casa
00039 {
00040   namespace refim{
00041   class VLAIlluminationConvFunc: public IlluminationConvFunc
00042   {
00043   public:
00044     VLAIlluminationConvFunc(String fileName);
00045     VLAIlluminationConvFunc()
00046       :IlluminationConvFunc(),convFunc_p(),resolution()
00047     {pbRead_p=False;};
00048     VLAIlluminationConvFunc(Int n):IlluminationConvFunc(n)    {pbRead_p=False;};
00049     ~VLAIlluminationConvFunc() {};
00050 
00051     void load(String &fileName,Vector<Int>& whichStokes, 
00052               Float overSampling=20,Bool putCoords=True);
00053     void storeImg(String &fileName,ImageInterface<Complex>& img);
00054     void storeImg(String &fileName,ImageInterface<Float>& img);
00055     void store(String &fileName);
00056     void loadFromImage(String &fileName);
00057     void getIdealConvFunc(Array<Complex>& buf);
00058     void ftAperture(TempImage<Complex>& uvgrid);
00059     void ftAperture() {ftAperture(convFunc_p); pbRead_p=True;};
00060     void storePB(String& fileName);
00061 
00062     Bool pbReady() {return pbRead_p;}
00063 
00064     CoordinateSystem makeUVCoords(CoordinateSystem& imageCoordSys,
00065                                    IPosition& shape);
00066     void regridApeture(CoordinateSystem& skyCS, IPosition& skyShape, TempImage<Complex>& uvGrid, 
00067                        const VisBuffer2& vb,Bool doSquint=True);
00068     void applyPB(ImageInterface<Float>& pbImage, const VisBuffer2& vb);
00069     void applyPB(ImageInterface<Complex>& pbImage, const VisBuffer2& vb);
00070     void ftAperture(String& fileName, Vector<Int>& whichStokes,
00071                    Float& overSampling, const CoordinateSystem& coordSys);
00072 
00073     /*
00074     virtual CF_TYPE getValue(Double *coord,
00075                              Double *raoff1,  Double *raoff2, 
00076                              Double *decoff1, Double *decoff2,
00077                              Double *area,
00078                              Int *doGrad,
00079                              Complex& weight,
00080                              Complex& dweight1,
00081                              Complex& dweight2
00082                              //           ,Double lsigma
00083                              );
00084     */    
00085   private:
00086     
00087     void fillPB(ImageInterface<Complex>& inImg, ImageInterface<Float>& outImg);
00088     void fillPB(ImageInterface<Complex>& inImg, ImageInterface<Complex>& outImg);
00089 
00090     TempImage<Complex> convFunc_p;
00091     //    TempImage<Float> reAperture_p, imAperture_p;
00092     Vector<Double> resolution;
00093     Bool pbRead_p;
00094     Float freq_p;
00095   };
00096   };
00097 };
00098 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1