casa
$Rev:20696$
|
00001 //# ImagerMultiMS.h: Imager functionality sits here; 00002 //# Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003 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 addressed 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 //# 00025 //# $Id$ 00026 00027 00028 #ifndef SYNTHESIS_IMAGERMULTIMS_H 00029 #define SYNTHESIS_IMAGERMULTIMS_H 00030 00031 #include <synthesis/MeasurementEquations/Imager.h> 00032 00033 namespace casa { 00034 00035 class ImagerMultiMS : public Imager 00036 { 00037 00038 public: 00039 // Default constructor with no ms 00040 00041 ImagerMultiMS(); 00042 //Copy the sub ms to memory useful when imaging only 00043 //a few channels 00044 virtual Bool setDataToMemory(const String& msname, const String& mode, 00045 const Vector<Int>& nchan, 00046 const Vector<Int>& start, 00047 const Vector<Int>& step, 00048 const Vector<Int>& spectralwindowids, 00049 const Vector<Int>& fieldids, 00050 const String& msSelect, 00051 const String& timerng, 00052 const String& fieldnames, 00053 const Vector<Int>& antIndex, 00054 const String& antnames, 00055 const String& spwstring, 00056 const String& uvdist, 00057 const String& scan, 00058 const String& obs=""); // select by obs ID 00059 // Set the data selection on for each ms seperately 00060 virtual Bool setDataPerMS(const String& msname, const String& mode, 00061 const Vector<Int>& nchan, 00062 const Vector<Int>& start, 00063 const Vector<Int>& step, 00064 const Vector<Int>& spectralwindowids, 00065 const Vector<Int>& fieldids, 00066 const String& msSelect="", 00067 const String& timerng="", 00068 const String& fieldnames="", 00069 const Vector<Int>& antIndex=Vector<Int>(), 00070 const String& antnames="", 00071 const String& spwstring="", 00072 const String& uvdist="", 00073 const String& scan="", 00074 const String& obs="", 00075 const Bool useModel=False, 00076 const Bool msreadonly=False); 00077 00078 00079 // Set image construction parameters 00080 virtual Bool setimage(const Int nx, const Int ny, 00081 const Quantity& cellx, const Quantity& celly, 00082 const String& stokes, 00083 Bool doShift, 00084 const MDirection& phaseCenter, 00085 const Quantity& shiftx, const Quantity& shifty, 00086 const String& mode, const Int nchan, 00087 const Int start, const Int step, 00088 const MRadialVelocity& mStart, const MRadialVelocity& mStep, 00089 const Vector<Int>& spectralwindowids, const Int fieldid, 00090 const Int facets, const Quantity& distance); 00091 00092 00093 Bool selectDataChannel(); 00094 00095 // Lock the ms and its subtables 00096 virtual Bool lock(); 00097 00098 // Unlock the ms and its subtables 00099 virtual Bool unlock(); 00100 00101 //open sub tables 00102 virtual Bool openSubTables(); 00103 00104 protected: 00105 00106 Block<Vector<Int> > blockNChan_p; 00107 Block<Vector<Int> > blockStart_p; 00108 Block<Vector<Int> > blockStep_p; 00109 Block<Vector<Int> > blockSpw_p; 00110 Block<MeasurementSet> blockMSSel_p; 00111 Bool setDataOnThisMS(MeasurementSet& ms, const String& mode="none", 00112 const Vector<Int>& nchan=Vector<Int>(0), 00113 const Vector<Int>& start=Vector<Int>(1,0), 00114 const Vector<Int>& step=Vector<Int>(1,1), 00115 const Vector<Int>& spectralwindowids=Vector<Int>(0), 00116 const Vector<Int>& fieldids=Vector<Int>(0), 00117 const String& msSelect="", 00118 const String& timerng="", 00119 const String& fieldnames="", 00120 const Vector<Int>& antIndex=Vector<Int>(), 00121 const String& antnames="", 00122 const String& spwstring="", 00123 const String& uvdist="", 00124 const String& scan="", 00125 const String& obs=""); 00126 Bool dataSet_p; 00127 00128 00129 }; 00130 00131 } //# NAMESPACE CASA - END 00132 00133 00134 #endif 00135 00136