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
00030
00031
00032
00033
00034
00035 #ifndef SYNTHESIS_LINEARMOSAIC_H
00036 #define SYNTHESIS_LINEARMOSAIC_H
00037
00038 namespace casa {
00039
00040 template<class T> class ImageInterface;
00041 template<class T> class Vector;
00042 class CoordinateSystem;
00043
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
00052
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
00063 void setOutImages(ImageInterface<Float>& outim, ImageInterface<Float>& outwgt, const Int imageWeightType=1, const Int weightType=2);
00064
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 }
00086
00087
00088
00089 #endif