LinearMosaic.h

Go to the documentation of this file.
00001 /*
00002  * LinearMosaic.h  Linear mosaicing code
00003 //# Copyright (C) 2015
00004 //# Associated Universities, Inc. Washington DC, USA.
00005 //#
00006 //# This library is free software; you can redistribute it and/or modify it
00007 //# under the terms of the GNU Library General Public License as published by
00008 //# the Free Software Foundation; either version 2 of the License, or (at your
00009 //# option) any later version.
00010 //#
00011 //# This library is distributed in the hope that it will be useful, but WITHOUT
00012 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00013 //# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
00014 //# License for more details.
00015 //#
00016 //# You should have received a copy of the GNU Library General Public License
00017 //# along with this library; if not, write to the Free Software Foundation,
00018 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
00019 //#
00020 //# Correspondence concerning AIPS++ should be adressed as follows:
00021 //#        Internet email: aips2-request@nrao.edu.
00022 //#        Postal address: AIPS++ Project Office
00023 //#                        National Radio Astronomy Observatory
00024 //#                        520 Edgemont Road
00025 //#                        Charlottesville, VA 22903-2475 USA
00026 //#
00027 //#
00028 
00029  *
00030  *
00031  *  Created on: Feb 24, 2015
00032  *      Author: kgolap
00033  */
00034 
00035 #ifndef SYNTHESIS_LINEARMOSAIC_H
00036 #define SYNTHESIS_LINEARMOSAIC_H
00037 
00038 namespace casa { //# NAMESPACE CASA - BEGIN
00039   //Forward declaration
00040   template<class T> class ImageInterface;
00041   template<class T> class Vector;
00042   class CoordinateSystem;
00043   // <summary> Class that contains functions needed for feathering</summary>
00044 
00045   class LinearMosaic{
00046 
00047   public:
00048           LinearMosaic();
00049           LinearMosaic(const String outim, const String outwgt, const MDirection& imcen, const Int nx, const Int ny,
00050                           const Quantity cellx=Quantity(0.0, "arcsec"), const Quantity celly=Quantity(0.0, "arcsec"), const Int linmostype=2);
00051           //Coordinate System of output image along with the different pointing images and weight images
00052           // linmostype 1 or 2.. ie. mosaic in PB or PB^2
00053           LinearMosaic(const String outim, const String outwgt, const MDirection& imcen, const Int nx, const Int ny,
00054                                   Vector<CountedPtr<ImageInterface<Float> > >& ims,
00055                                   Vector<CountedPtr<ImageInterface<Float> > >& wgtims, const Int linmostype=2);
00056           Bool makeMosaic(ImageInterface<Float>& outim, ImageInterface<Float>& outwgt,
00057                           Vector<CountedPtr<ImageInterface<Float> > >& ims,
00058                           Vector<CountedPtr<ImageInterface<Float> > >& wgtims);
00059           Bool makeMosaic(Vector<CountedPtr<ImageInterface<Float> > >& ims,
00060                            Vector<CountedPtr<ImageInterface<Float> > >& wgtims);
00061 
00062           // outim is weighted 0: flux correct, 1: flat noise, 2: noise optimal
00063           void setOutImages(ImageInterface<Float>& outim, ImageInterface<Float>& outwgt, const Int imageWeightType=1, const Int weightType=2);
00064           // Disk based image of the above
00065           void setlinmostype(const Int linmostype);
00066           void saultWeightImage(const String& outimname, const Float& fracPeakWgt);
00067           void setOutImages(const String& outim, const String& outwgt, const Int imageWeightType=1, const Int weightType=2);
00068   private:
00069           Bool addOnToImage(ImageInterface<Float>& outim, ImageInterface<Float>& outwgt, const ImageInterface<Float>& inIm,
00070                           const ImageInterface<Float>& inWgt, Bool unWeightOutImage=True);
00071           void makeEmptyImage(const String imagename, const CoordinateSystem& cs, const MDirection& imcen, const Int nx, const Int ny, const Int npol, const Int nchan);
00072           void createOutImages(const CoordinateSystem& cs, const Int npol, const Int nchan );
00073           CountedPtr<ImageInterface<Float> > outImage_p, outWgt_p;
00074           String outImName_p, outWgtName_p;
00075           Int nx_p, ny_p;
00076           MDirection imcen_p;
00077           Quantity cellx_p, celly_p;
00078 
00079           Int imageWeightType_p, weightType_p;
00080           Int linmosType_p;
00081 };
00082 
00083 
00084 
00085 } //# NAMESPACE CASA - END
00086 
00087 
00088 
00089 #endif /* SYNTHESISLINEARMOSAIC_H */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1