casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MSMainColumns.h
Go to the documentation of this file.
1 //# MSmainColumns.h: provides easy access to MeasurementSet main table columns
2 //# Copyright (C) 2000
3 //# Associated Universities, Inc. Washington DC, USA.
4 //#
5 //# This library is free software; you can redistribute it and/or modify it
6 //# under the terms of the GNU Library General Public License as published by
7 //# the Free Software Foundation; either version 2 of the License, or (at your
8 //# option) any later version.
9 //#
10 //# This library is distributed in the hope that it will be useful, but WITHOUT
11 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 //# License for more details.
14 //#
15 //# You should have received a copy of the GNU Library General Public License
16 //# along with this library; if not, write to the Free Software Foundation,
17 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
18 //#
19 //# Correspondence concerning AIPS++ should be addressed as follows:
20 //# Internet email: aips2-request@nrao.edu.
21 //# Postal address: AIPS++ Project Office
22 //# National Radio Astronomy Observatory
23 //# 520 Edgemont Road
24 //# Charlottesville, VA 22903-2475 USA
25 //#
26 //# $Id$
27 
28 #ifndef MS_MSMAINCOLUMNS_H
29 #define MS_MSMAINCOLUMNS_H
30 
31 #include <casacore/casa/aips.h>
41 
42 namespace casacore { //# NAMESPACE CASACORE - BEGIN
43 
44 class MeasurementSet;
45 class String;
46 template <class T> class Vector;
47 
48 // <summary>
49 // A class for easy read-only access to MeasurementSet main table columns
50 // </summary>
51 
52 // <use visibility=export>
53 
54 // <reviewed reviewer="Bob Garwood" date="1997/02/01" tests="" demos="">
55 // </reviewed>
56 
57 // <prerequisite>
58 // <li> MeasurementSet
59 // <li> ArrayColumn
60 // <li> ScalarColumn
61 // </prerequisite>
62 //
63 // <etymology>
64 // ROMSColumns stands for Read-Only MeasurementSet Table columns.
65 // </etymology>
66 //
67 // <synopsis>
68 // This class provides read-only access to the columns in the MeasurementSet.
69 // It does the declaration of all the Scalar and ArrayColumns with the
70 // correct types, so the application programmer doesn't have to
71 // worry about getting those right. There is an access function
72 // for every predefined column. Access to non-predefined columns will still
73 // have to be done with explicit declarations.
74 // <note role=warning> The Table that is used to construct this class must not
75 // be destroyed (or go out of scope) before this class does. Otherwise the
76 // scalar and array columns use by this class will be left dangling.</note>
77 // </synopsis>
78 // </synopsis>
79 //
80 // <example>
81 // <srcblock>
82 // // use as follows
83 // MeasurementSet ms("myMS");
84 // ROMSColumns msc(ms);
85 // // show data from row 5
86 // cout << msc.data()(5);
87 // // show name of antenna on row 3 in antenna table
88 // cout << msc.antenna().name();
89 // </srcblock>
90 // </example>
91 //
92 // <motivation>
93 // See <linkto class=MSColumns> MSColumns</linkto> for the motivation.
94 // </motivation>
95 //
96 // <todo asof="1997/02/01">
97 // <li> We might decide to merge all the MSColumn classes with the
98 // corresponding MeasurementSet classes.
99 // </todo>
100 
102 {
103 public:
104  // Create a columns object that accesses the data in the specified Table
105  ROMSMainColumns(const MeasurementSet& ms);
106 
107  // The desctructor does nothing special
109 
110  // Access to required columns
111  // <group>
112  const ROScalarColumn<Int>& antenna1() const {return antenna1_p;}
113  const ROScalarColumn<Int>& antenna2() const {return antenna2_p;}
114  const ROScalarColumn<Int>& arrayId() const {return arrayId_p;}
115  const ROScalarColumn<Int>& dataDescId() const {return dataDescId_p;}
116  const ROScalarColumn<Double>& exposure() const {return exposure_p;}
117  const ROScalarQuantColumn<Double>& exposureQuant() const {
118  return exposureQuant_p;}
119  const ROScalarColumn<Int>& feed1() const {return feed1_p;}
120  const ROScalarColumn<Int>& feed2() const {return feed2_p;}
121  const ROScalarColumn<Int>& fieldId() const {return fieldId_p;}
122  const ROArrayColumn<Bool>& flag() const {return flag_p;}
123  const ROArrayColumn<Bool>& flagCategory() const {return flagCategory_p;}
124  const ROScalarColumn<Bool>& flagRow() const {return flagRow_p;}
125  const ROScalarColumn<Double>& interval() const {return interval_p;}
126  const ROScalarQuantColumn<Double>& intervalQuant() const {
127  return intervalQuant_p;}
128  const ROScalarColumn<Int>& observationId() const {return observationId_p;}
129  const ROScalarColumn<Int>& processorId() const {return processorId_p;}
130  const ROScalarColumn<Int>& scanNumber() const {return scanNumber_p;}
131  const ROArrayColumn<Float>& sigma() const {return sigma_p;}
132  const ROScalarColumn<Int>& stateId() const {return stateId_p;}
133  const ROScalarColumn<Double>& time() const {return time_p;}
134  const ROScalarQuantColumn<Double>& timeQuant() const {
135  return timeQuant_p;}
136  const ROScalarMeasColumn<MEpoch>& timeMeas() const {
137  return timeMeas_p;}
138  const ROScalarColumn<Double>& timeCentroid() const {return timeCentroid_p;}
139  const ROScalarQuantColumn<Double>& timeCentroidQuant() const {
140  return timeCentroidQuant_p;}
141  const ROScalarMeasColumn<MEpoch>& timeCentroidMeas() const {
142  return timeCentroidMeas_p;}
143  const ROArrayColumn<Double>& uvw() const {return uvw_p;}
144  const ROArrayQuantColumn<Double>& uvwQuant() const {
145  return uvwQuant_p;}
146  const ROScalarMeasColumn<Muvw>& uvwMeas() const {
147  return uvwMeas_p;}
148  const ROArrayColumn<Float>& weight() const {return weight_p;}
149  // </group>
150 
151  // Access to optional columns
152  // <group>
153  const ROScalarColumn<Int>& antenna3() const {return antenna3_p;}
154  const ROScalarColumn<Bool>& baselineRef() const {return baselineRef_p;}
155  const ROArrayColumn<Complex>& correctedData() const {return correctedData_p;}
156  const ROArrayColumn<Complex>& data() const {return data_p;}
157  const ROScalarColumn<Int>& feed3() const {return feed3_p;}
158  const ROArrayColumn<Float>& floatData() const {return floatData_p;}
159  const ROArrayColumn<Float>& imagingWeight() const {return imagingWeight_p;}
160  const ROArrayColumn<Complex>& lagData() const {return lagData_p;}
161  const ROArrayColumn<Complex>& modelData() const {return modelData_p;}
162  const ROScalarColumn<Int>& phaseId() const {return phaseId_p;}
163  const ROScalarColumn<Int>& pulsarBin() const {return pulsarBin_p;}
164  const ROScalarColumn<Int>& pulsarGateId() const {return pulsarGateId_p;}
165  const ROArrayColumn<Float>& sigmaSpectrum() const {return sigmaSpectrum_p;}
166  const ROScalarColumn<Double>& timeExtraPrec() const {return timeExtraPrec_p;}
167  const ROScalarQuantColumn<Double>& timeExtraPrecQuant() const {
168  return timeExtraPrecQuant_p;}
169  const ROArrayColumn<Double>& uvw2() const {return uvw2_p;}
170  const ROScalarMeasColumn<Muvw>& uvw2Meas() const {
171  return uvw2Meas_p;}
172  const ROArrayQuantColumn<Double>& uvw2Quant() const {
173  return uvw2Quant_p;}
174  const ROArrayColumn<Complex>& videoPoint() const {return videoPoint_p;}
175  const ROArrayColumn<Float>& weightSpectrum() const {return weightSpectrum_p;}
176  const ROArrayColumn<Float>& weightSpectrumCorrected() const {return weightSpectrumCorrected_p;}
177  // </group>
178 
179  // Convenience function that returns the number of rows in any of the columns
180  uInt nrow() const {return antenna1_p.nrow();}
181 
182  // Returns the category labels for the FLAG_CATEGORY column.
184 
185 protected:
186  //# default constructor creates a object that is not usable. Use the attach
187  //# function correct this.
188  ROMSMainColumns();
189 
190  //# attach this object to the supplied table.
191  void attach(const MeasurementSet& ms);
192 
193 private:
194  //# Make the assignment operator and the copy constructor private to prevent
195  //# any compiler generated one from being used.
198 
199  //# Check if any optional columns exist and if so attach them.
200  void attachOptionalCols(const MeasurementSet& ms);
201 
202  //# required columns
203  ROScalarColumn<Int> antenna1_p;
204  ROScalarColumn<Int> antenna2_p;
205  ROScalarColumn<Int> arrayId_p;
206  ROScalarColumn<Int> dataDescId_p;
207  ROScalarColumn<Double> exposure_p;
208  ROScalarColumn<Int> feed1_p;
209  ROScalarColumn<Int> feed2_p;
210  ROScalarColumn<Int> fieldId_p;
211  ROArrayColumn<Bool> flag_p;
212  ROArrayColumn<Bool> flagCategory_p;
213  ROScalarColumn<Bool> flagRow_p;
214  ROScalarColumn<Double> interval_p;
215  ROScalarColumn<Int> observationId_p;
216  ROScalarColumn<Int> processorId_p;
217  ROScalarColumn<Int> scanNumber_p;
218  ROArrayColumn<Float> sigma_p;
219  ROScalarColumn<Int> stateId_p;
220  ROScalarColumn<Double> time_p;
221  ROScalarColumn<Double> timeCentroid_p;
222  ROArrayColumn<Double> uvw_p;
223  ROArrayColumn<Float> weight_p;
224  //# optional columns
225  ROScalarColumn<Int> antenna3_p;
226  ROScalarColumn<Bool> baselineRef_p;
227  ROArrayColumn<Complex> data_p;
228  ROScalarColumn<Int> feed3_p;
229  ROArrayColumn<Float> floatData_p;
230  ROArrayColumn<Complex> lagData_p;
231  ROScalarColumn<Int> phaseId_p;
232  ROScalarColumn<Int> pulsarBin_p;
233  ROScalarColumn<Int> pulsarGateId_p;
234  ROArrayColumn<Float> sigmaSpectrum_p;
235  ROScalarColumn<Double> timeExtraPrec_p;
236  ROArrayColumn<Double> uvw2_p;
237  ROArrayColumn<Complex> videoPoint_p;
238  ROArrayColumn<Float> weightSpectrum_p;
239  ROArrayColumn<Float> weightSpectrumCorrected_p;
240 
241  //# columns required for synthesis applications - all optional
242  ROArrayColumn<Complex> correctedData_p;
243  ROArrayColumn<Float> imagingWeight_p;
244  ROArrayColumn<Complex> modelData_p;
245 
246  //# Access to Measure columns
247  ROScalarMeasColumn<MEpoch> timeMeas_p;
248  ROScalarMeasColumn<MEpoch> timeCentroidMeas_p;
249  ROScalarMeasColumn<Muvw> uvwMeas_p;
250  //# optional Measure columns
251  ROScalarMeasColumn<Muvw> uvw2Meas_p;
252 
253  //# Access to Quantum columns
254  ROScalarQuantColumn<Double> exposureQuant_p;
255  ROScalarQuantColumn<Double> intervalQuant_p;
256  ROScalarQuantColumn<Double> timeQuant_p;
257  ROScalarQuantColumn<Double> timeCentroidQuant_p;
258  ROArrayQuantColumn<Double> uvwQuant_p;
259  //# optional Quantum columns
260  ROScalarQuantColumn<Double> timeExtraPrecQuant_p;
261  ROArrayQuantColumn<Double> uvw2Quant_p;
262 
263 };
264 
265 // <summary>
266 // A class for easy read-write access to MeasurementSet main table columns
267 // </summary>
268 
269 // <use visibility=export>
270 
271 // <reviewed reviewer="Bob Garwood" date="1997/02/01" tests="" demos="">
272 // </reviewed>
273 
274 // <prerequisite>
275 // <li> MeasurementSet
276 // <li> ArrayColumn
277 // <li> ScalarColumn
278 // </prerequisite>
279 //
280 // <etymology>
281 // MSMainColumns stands for MeasurementSet main Table columns.
282 // </etymology>
283 //
284 // <synopsis>
285 // This class provides access to the columns in the MeasurementSet.
286 // It does the declaration of all the Scalar and ArrayColumns with the
287 // correct types, so the application programmer doesn't have to
288 // worry about getting those right. There is an access function
289 // for every predefined column. Access to non-predefined columns will still
290 // have to be done with explicit declarations.
291 // <note role=warning> The Table that is used to construct this class must not
292 // be destroyed (or go out of scope) before this class does. Otherwise the
293 // scalar and array columns use by this class will be left dangling.</note>
294 // </synopsis>
295 // </synopsis>
296 //
297 // <example>
298 // <srcblock>
299 // // use as follows
300 // MeasurementSet ms("myMS",Table::Update);
301 // MSColumns msc(ms);
302 // // show data from row 5
303 // cout << msc.data()(5);
304 // // change name of antenna on row 3 in antenna table
305 // msc.antenna().name().put(3,"NewAnt-3");
306 // </srcblock>
307 // </example>
308 //
309 // <motivation>
310 // Having to type long lists of Scalar and Array column declarations gets
311 // very tedious. This class attempts to relieve some of that tedium, while
312 // at the same time concentrating all the declarations in one place,
313 // making Type errors in the column declaration (only caught at run-time) less
314 // probable. Type errors in the use of the columns is caught at compile
315 // time.
316 // </motivation>
317 //
318 // <todo asof="1997/02/01">
319 // <li> We might decide to merge this class with the MeasurementSet
320 // </todo>
321 
323 {
324 public:
325 
326  // Create a columns object that accesses the data in the specified Table
328 
329  // The desctructor does nothing special
330  ~MSMainColumns();
331 
332  // Read-write access to required columns
333  // <group>
340  return exposureQuant_p;}
349  return intervalQuant_p;}
357  return timeQuant_p;}
359  return timeMeas_p;}
362  return timeCentroidQuant_p;}
364  return timeCentroidMeas_p;}
367  return uvwQuant_p;}
369  return uvwMeas_p;}
371  // </group>
372 
373  // Read-write access to optional columns
374  // <group>
390  return timeExtraPrecQuant_p;}
393  return uvw2Meas_p;}
395  return uvw2Quant_p;}
399  // </group>
400 
401  // Read-only access to required columns
402  // <group>
403  const ROScalarColumn<Int>& antenna1() const {
404  return ROMSMainColumns::antenna1();}
405  const ROScalarColumn<Int>& antenna2() const {
406  return ROMSMainColumns::antenna2();}
407  const ROScalarColumn<Int>& arrayId() const {
408  return ROMSMainColumns::arrayId();}
409  const ROScalarColumn<Int>& dataDescId() const {
410  return ROMSMainColumns::dataDescId();}
411  const ROScalarColumn<Double>& exposure() const {
412  return ROMSMainColumns::exposure();}
413  const ROScalarQuantColumn<Double>& exposureQuant() const {
415  const ROScalarColumn<Int>& feed1() const {
416  return ROMSMainColumns::feed1();}
417  const ROScalarColumn<Int>& feed2() const {
418  return ROMSMainColumns::feed2();}
419  const ROScalarColumn<Int>& fieldId() const {
420  return ROMSMainColumns::fieldId();}
421  const ROArrayColumn<Bool>& flag() const {
422  return ROMSMainColumns::flag();}
423  const ROArrayColumn<Bool>& flagCategory() const {
425  const ROScalarColumn<Bool>& flagRow() const {
426  return ROMSMainColumns::flagRow();}
427  const ROScalarColumn<Double>& interval() const {
428  return ROMSMainColumns::interval();}
429  const ROScalarQuantColumn<Double>& intervalQuant() const {
431  const ROScalarColumn<Int>& observationId() const {
433  const ROScalarColumn<Int>& processorId() const {
435  const ROScalarColumn<Int>& scanNumber() const {
436  return ROMSMainColumns::scanNumber();}
437  const ROArrayColumn<Float>& sigma() const {
438  return ROMSMainColumns::sigma();}
439  const ROScalarColumn<Int>& stateId() const {
440  return ROMSMainColumns::stateId();}
441  const ROScalarColumn<Double>& time() const {
442  return ROMSMainColumns::time();}
443  const ROScalarQuantColumn<Double>& timeQuant() const {
444  return ROMSMainColumns::timeQuant();}
445  const ROScalarMeasColumn<MEpoch>& timeMeas() const {
446  return ROMSMainColumns::timeMeas();}
447  const ROScalarColumn<Double>& timeCentroid() const {
449  const ROScalarQuantColumn<Double>& timeCentroidQuant() const {
451  const ROScalarMeasColumn<MEpoch>& timeCentroidMeas() const {
453  const ROArrayColumn<Double>& uvw() const {
454  return ROMSMainColumns::uvw();}
455  const ROArrayQuantColumn<Double>& uvwQuant() const {
456  return ROMSMainColumns::uvwQuant();}
457  const ROScalarMeasColumn<Muvw>& uvwMeas() const {
458  return ROMSMainColumns::uvwMeas();}
459  const ROArrayColumn<Float>& weight() const {
460  return ROMSMainColumns::weight();}
461  // </group>
462 
463  // Read-only access to optional columns
464  // <group>
465  const ROScalarColumn<Int>& antenna3() const {
466  return ROMSMainColumns::antenna3();}
467  const ROScalarColumn<Bool>& baselineRef() const {
469  const ROArrayColumn<Complex>& correctedData() const {
471  const ROArrayColumn<Complex>& data() const {
472  return ROMSMainColumns::data();}
473  const ROScalarColumn<Int>& feed3() const {
474  return ROMSMainColumns::feed3();}
475  const ROArrayColumn<Float>& floatData() const {
476  return ROMSMainColumns::floatData();}
477  const ROArrayColumn<Float>& imagingWeight() const {
479  const ROArrayColumn<Complex>& lagData() const {
480  return ROMSMainColumns::lagData();}
481  const ROArrayColumn<Complex>& modelData() const {
482  return ROMSMainColumns::modelData();}
483  const ROScalarColumn<Int>& phaseId() const {
484  return ROMSMainColumns::phaseId();}
485  const ROScalarColumn<Int>& pulsarBin() const {
486  return ROMSMainColumns::pulsarBin();}
487  const ROScalarColumn<Int>& pulsarGateId() const {
489  const ROArrayColumn<Float>& sigmaSpectrum() const {
491  const ROScalarColumn<Double>& timeExtraPrec() const {
493  const ROScalarQuantColumn<Double>& timeExtraPrecQuant() const {
495  const ROArrayColumn<Double>& uvw2() const {
496  return ROMSMainColumns::uvw2();}
497  const ROScalarMeasColumn<Muvw>& uvw2Meas() const {
498  return ROMSMainColumns::uvw2Meas();}
499  const ROArrayQuantColumn<Double>& uvw2Quant() const {
500  return ROMSMainColumns::uvw2Quant();}
501  const ROArrayColumn<Complex>& videoPoint() const {
502  return ROMSMainColumns::videoPoint();}
503  const ROArrayColumn<Float>& weightSpectrum() const {
505  const ROArrayColumn<Float>& weightSpectrumCorrected() const {
507  // </group>
508 
509  // set the epoch type for the TIME and TIME_CENTROID columns.
510  // <note role=tip>
511  // In principle this function can only be used if the table is empty,
512  // otherwise already written values may thereafter have an incorrect
513  // reference, offset, or unit. However, it is possible that part of the
514  // table gets written before these values are known. In that case the
515  // reference, offset, or units can be set by using a False
516  // <src>tableMustBeEmpty</src> argument.
517  // </note>
518  void setEpochRef(MEpoch::Types ref, Bool tableMustBeEmpty=True);
519 
520  // set the UVW reference type for the UVW and UVW2 (if defined) columns. This
521  // can only be done when the table has no rows. Trying to do so at other
522  // times will throw an exception.
523  void setUVWRef(Muvw::Types ref);
524 
525  // Set the flag category labels to the supplied values (in the CATEGORY
526  // keyword of the FLAG_CATEGORY column). Throws an exception, when compiled
527  // in Debug mode, if the length of the supplied Vector is not the same as the
528  // length of the third dimension of the FLAG_CATEGORY column.
529  void setFlagCategories(const Vector<String>& categories);
530 
531 protected:
532  //# default constructor creates a object that is not usable. Use the attach
533  //# function correct this.
534  MSMainColumns();
535 
536  //# attach this object to the supplied table.
537  void attach(MeasurementSet& ms);
538 
539 private:
540  //# Make the assignment operator and the copy constructor private to prevent
541  //# any compiler generated one from being used.
544 
545  //# Check if any optional columns exist and if so attach them.
547 
548  //# required columns
570  //# optional columns
586 
587  //# columns required for synthesis applications - all optional
591 
592  //# Access to Measure columns
596  //# optional Measure columns
598 
599  //# Access to Quantum columns
605  //# optional Quantum columns
608 
609 };
610 
611 
612 } //# NAMESPACE CASACORE - END
613 
614 #endif
615 
616 
ROScalarColumn< Int > observationId_p
const ROScalarColumn< Bool > & flagRow() const
ROMSMainColumns & operator=(const ROMSMainColumns &)
const ROScalarColumn< Int > & observationId() const
const ROArrayColumn< Bool > & flag() const
const ROScalarColumn< Double > & exposure() const
uInt nrow() const
Convenience function that returns the number of rows in any of the columns.
const ROArrayColumn< Complex > & modelData() const
const ROScalarColumn< Double > & timeCentroid() const
const ROArrayQuantColumn< Double > & uvwQuant() const
const ROScalarMeasColumn< MEpoch > & timeMeas() const
ROScalarColumn< Bool > flagRow_p
A 1-D Specialization of the Array class.
ScalarColumn< Double > timeCentroid_p
ArrayColumn< Complex > videoPoint_p
const ROScalarColumn< Int > & scanNumber() const
ArrayColumn< Complex > & correctedData()
ScalarColumn< Int > & antenna3()
Read-write access to optional columns.
std::vector< double > Vector
Definition: ds9context.h:24
ArrayColumn< Double > uvw_p
ScalarColumn< Double > timeExtraPrec_p
ArrayColumn< Float > weight_p
ROScalarColumn< Double > interval_p
const ROScalarColumn< Double > & exposure() const
ScalarColumn< Double > & time()
const ROArrayColumn< Bool > & flagCategory() const
ROArrayColumn< Bool > flag_p
const ROArrayColumn< Double > & uvw() const
ScalarMeasColumn< MEpoch > & timeCentroidMeas()
const ROScalarColumn< Bool > & baselineRef() const
ScalarColumn< Int > pulsarBin_p
const ROArrayColumn< Float > & weightSpectrum() const
ROArrayColumn< Complex > videoPoint_p
ScalarColumn< Double > interval_p
ROScalarQuantColumn< Double > timeQuant_p
ROScalarColumn< Int > dataDescId_p
const ROScalarColumn< Int > & arrayId() const
const ROArrayQuantColumn< Double > & uvwQuant() const
const ROScalarQuantColumn< Double > & timeExtraPrecQuant() const
ScalarMeasColumn< Muvw > uvwMeas_p
ScalarMeasColumn< Muvw > uvw2Meas_p
ScalarColumn< Int > pulsarGateId_p
ScalarColumn< Int > dataDescId_p
const ROScalarColumn< Double > & timeExtraPrec() const
ROArrayColumn< Float > weightSpectrum_p
const ROScalarColumn< Int > & pulsarBin() const
ROArrayColumn< Complex > correctedData_p
void attach(const MeasurementSet &ms)
const ROScalarColumn< Int > & processorId() const
ScalarColumn< Int > & pulsarBin()
const ROScalarColumn< Int > & feed1() const
const ROScalarMeasColumn< Muvw > & uvwMeas() const
ScalarColumn< Int > & pulsarGateId()
const ROArrayColumn< Float > & imagingWeight() const
ROArrayQuantColumn< Double > uvw2Quant_p
ROScalarColumn< Int > pulsarBin_p
ArrayColumn< Float > & weight()
ScalarQuantColumn< Double > intervalQuant_p
ArrayQuantColumn< Double > uvw2Quant_p
ROArrayColumn< Float > imagingWeight_p
ArrayColumn< Complex > & data()
ScalarColumn< Int > phaseId_p
const ROScalarQuantColumn< Double > & exposureQuant() const
const ROScalarColumn< Int > & arrayId() const
ArrayQuantColumn< Double > & uvw2Quant()
ScalarColumn< Int > scanNumber_p
const ROScalarMeasColumn< Muvw > & uvw2Meas() const
const ROArrayColumn< Complex > & videoPoint() const
ScalarColumn< Double > & exposure()
ROScalarColumn< Int > phaseId_p
ArrayColumn< Float > & weightSpectrumCorrected()
MSMainColumns & operator=(const MSMainColumns &)
ScalarQuantColumn< Double > exposureQuant_p
const ROArrayColumn< Float > & weight() const
const ROScalarColumn< Int > & stateId() const
ScalarColumn< Int > & scanNumber()
const ROArrayColumn< Complex > & lagData() const
ScalarColumn< Int > antenna1_p
ScalarColumn< Int > stateId_p
ROArrayQuantColumn< Double > uvwQuant_p
Types
Types of known Muvws Warning: The order defines the order in the translation matrix FromTo in the ge...
Definition: Muvw.h:130
const ROScalarColumn< Bool > & baselineRef() const
void setFlagCategories(const Vector< String > &categories)
Set the flag category labels to the supplied values (in the CATEGORY keyword of the FLAG_CATEGORY col...
ArrayColumn< Float > weightSpectrumCorrected_p
ScalarMeasColumn< MEpoch > & timeMeas()
const ROScalarColumn< Int > & feed3() const
const ROScalarMeasColumn< MEpoch > & timeCentroidMeas() const
void attachOptionalCols(MeasurementSet &ms)
const ROArrayColumn< Bool > & flag() const
const ROScalarColumn< Int > & feed1() const
const ROArrayColumn< Complex > & correctedData() const
ROScalarColumn< Double > timeCentroid_p
const ROScalarColumn< Double > & interval() const
~ROMSMainColumns()
The desctructor does nothing special.
ArrayColumn< Bool > & flagCategory()
ROScalarColumn< Int > processorId_p
ROArrayColumn< Double > uvw2_p
ScalarColumn< Double > & interval()
ROScalarColumn< Double > timeExtraPrec_p
ArrayColumn< Float > & floatData()
const ROScalarColumn< Double > & timeExtraPrec() const
ScalarColumn< Double > exposure_p
const ROScalarColumn< Int > & pulsarGateId() const
ROArrayColumn< Float > sigmaSpectrum_p
ScalarColumn< Int > & antenna2()
void setEpochRef(MEpoch::Types ref, Bool tableMustBeEmpty=True)
set the epoch type for the TIME and TIME_CENTROID columns.
const ROArrayQuantColumn< Double > & uvw2Quant() const
ROArrayColumn< Double > uvw_p
ArrayQuantColumn< Double > uvwQuant_p
ROScalarMeasColumn< Muvw > uvwMeas_p
ScalarColumn< Bool > & baselineRef()
ROScalarColumn< Int > scanNumber_p
const ROScalarColumn< Double > & time() const
ROScalarColumn< Int > pulsarGateId_p
const ROScalarColumn< Int > & phaseId() const
ArrayColumn< Float > & weightSpectrum()
const ROScalarQuantColumn< Double > & timeQuant() const
const ROArrayColumn< Complex > & modelData() const
const ROArrayColumn< Float > & sigmaSpectrum() const
const ROScalarColumn< Int > & feed3() const
ROScalarColumn< Int > feed2_p
ScalarQuantColumn< Double > & exposureQuant()
ScalarColumn< Int > arrayId_p
const ROScalarMeasColumn< MEpoch > & timeMeas() const
ScalarColumn< Int > & antenna1()
Read-write access to required columns.
const ROArrayColumn< Complex > & data() const
void setUVWRef(Muvw::Types ref)
set the UVW reference type for the UVW and UVW2 (if defined) columns.
const ROScalarColumn< Int > & scanNumber() const
const ROArrayColumn< Double > & uvw2() const
ScalarQuantColumn< Double > & intervalQuant()
ScalarColumn< Int > & dataDescId()
const ROArrayColumn< Complex > & lagData() const
ArrayColumn< Float > sigmaSpectrum_p
const ROScalarColumn< Double > & interval() const
ArrayColumn< Complex > & videoPoint()
ScalarMeasColumn< MEpoch > timeCentroidMeas_p
ROScalarColumn< Int > antenna1_p
ArrayColumn< Double > & uvw()
const ROScalarColumn< Int > & antenna2() const
const ROScalarColumn< Bool > & flagRow() const
const ROScalarColumn< Int > & feed2() const
const ROScalarQuantColumn< Double > & timeExtraPrecQuant() const
ScalarColumn< Int > & feed3()
const ROArrayColumn< Float > & weightSpectrum() const
ROArrayColumn< Complex > modelData_p
ScalarColumn< Int > & phaseId()
~MSMainColumns()
The desctructor does nothing special.
const ROScalarColumn< Int > & fieldId() const
ROScalarColumn< Int > feed3_p
ScalarQuantColumn< Double > timeExtraPrecQuant_p
ScalarColumn< Int > & stateId()
const ROScalarQuantColumn< Double > & intervalQuant() const
ArrayColumn< Float > & sigma()
ArrayColumn< Bool > flagCategory_p
const ROScalarMeasColumn< Muvw > & uvwMeas() const
ROScalarColumn< Bool > baselineRef_p
const ROScalarMeasColumn< Muvw > & uvw2Meas() const
const ROArrayColumn< Double > & uvw() const
ArrayColumn< Complex > correctedData_p
ArrayColumn< Complex > lagData_p
ROScalarMeasColumn< MEpoch > timeMeas_p
const ROArrayColumn< Complex > & data() const
ArrayColumn< Float > & imagingWeight()
bool Bool
Define the standard types used by Casacore.
Definition: aipstype.h:42
void attachOptionalCols(const MeasurementSet &ms)
ROArrayColumn< Float > weightSpectrumCorrected_p
ArrayColumn< Float > sigma_p
const ROScalarQuantColumn< Double > & timeCentroidQuant() const
void attach(MeasurementSet &ms)
const ROArrayColumn< Float > & weightSpectrumCorrected() const
ScalarColumn< Int > observationId_p
const ROArrayColumn< Complex > & videoPoint() const
ScalarColumn< Int > & feed1()
const ROArrayColumn< Float > & weightSpectrumCorrected() const
const ROScalarQuantColumn< Double > & intervalQuant() const
ROArrayColumn< Bool > flagCategory_p
ROArrayColumn< Float > weight_p
ArrayColumn< Bool > & flag()
const ROArrayColumn< Bool > & flagCategory() const
const ROScalarColumn< Int > & pulsarGateId() const
ScalarMeasColumn< Muvw > & uvwMeas()
ArrayColumn< Complex > & lagData()
ROScalarColumn< Int > fieldId_p
ArrayColumn< Float > imagingWeight_p
const ROScalarColumn< Int > & fieldId() const
ScalarColumn< Int > antenna3_p
ScalarColumn< Int > & processorId()
const ROScalarColumn< Int > & antenna1() const
Access to required columns.
const ROScalarColumn< Int > & antenna2() const
A Table intended to hold astronomical data (a set of Measurements).
ScalarColumn< Int > antenna2_p
const ROScalarQuantColumn< Double > & timeQuant() const
ArrayColumn< Complex > modelData_p
ROScalarQuantColumn< Double > timeExtraPrecQuant_p
ArrayQuantColumn< Double > & uvwQuant()
const ROArrayColumn< Float > & sigmaSpectrum() const
ScalarQuantColumn< Double > & timeCentroidQuant()
ROScalarColumn< Int > stateId_p
const ROArrayColumn< Float > & imagingWeight() const
const ROArrayColumn< Float > & floatData() const
const ROScalarColumn< Int > & observationId() const
ROScalarColumn< Double > exposure_p
const ROScalarColumn< Int > & pulsarBin() const
ScalarColumn< Int > & feed2()
ScalarQuantColumn< Double > & timeQuant()
const ROScalarColumn< Int > & phaseId() const
ScalarQuantColumn< Double > timeQuant_p
ScalarColumn< Bool > flagRow_p
ArrayColumn< Double > uvw2_p
ScalarQuantColumn< Double > & timeExtraPrecQuant()
ScalarMeasColumn< Muvw > & uvw2Meas()
const ROScalarColumn< Int > & antenna3() const
Read-only access to optional columns.
A class for easy read-write access to MeasurementSet main table columns.
ScalarColumn< Int > & observationId()
const ROScalarColumn< Int > & stateId() const
ROScalarColumn< Int > feed1_p
ScalarColumn< Int > feed3_p
ROScalarMeasColumn< MEpoch > timeCentroidMeas_p
ScalarColumn< Bool > & flagRow()
ROArrayColumn< Float > floatData_p
const ROScalarQuantColumn< Double > & exposureQuant() const
ArrayColumn< Complex > & modelData()
ArrayColumn< Double > & uvw2()
const ROScalarColumn< Int > & processorId() const
const ROScalarColumn< Int > & dataDescId() const
const ROScalarColumn< Double > & timeCentroid() const
ScalarColumn< Int > & fieldId()
ROScalarColumn< Int > antenna2_p
ROScalarQuantColumn< Double > timeCentroidQuant_p
ArrayColumn< Float > floatData_p
ArrayColumn< Bool > flag_p
ArrayColumn< Float > weightSpectrum_p
const ROArrayColumn< Float > & floatData() const
ROArrayColumn< Complex > data_p
ROScalarColumn< Int > antenna3_p
const ROArrayColumn< Double > & uvw2() const
const ROArrayColumn< Float > & weight() const
ScalarColumn< Double > & timeCentroid()
Types
Types of known MEpochs Caution: The order defines the order in the translation matrix in the MCEpoch...
Definition: MEpoch.h:117
ScalarQuantColumn< Double > timeCentroidQuant_p
const ROScalarColumn< Int > & antenna3() const
Access to optional columns.
const ROArrayColumn< Float > & sigma() const
const ROScalarColumn< Double > & time() const
ArrayColumn< Float > & sigmaSpectrum()
const ROScalarMeasColumn< MEpoch > & timeCentroidMeas() const
ScalarMeasColumn< MEpoch > timeMeas_p
ScalarColumn< Double > time_p
ROScalarQuantColumn< Double > exposureQuant_p
const ROScalarColumn< Int > & feed2() const
const ROScalarColumn< Int > & antenna1() const
Read-only access to required columns.
ScalarColumn< Int > feed1_p
Vector< String > flagCategories() const
Returns the category labels for the FLAG_CATEGORY column.
ScalarColumn< Int > & arrayId()
const Bool True
Definition: aipstype.h:43
ROArrayColumn< Complex > lagData_p
const ROArrayQuantColumn< Double > & uvw2Quant() const
ScalarColumn< Double > & timeExtraPrec()
ROArrayColumn< Float > sigma_p
ROScalarColumn< Int > arrayId_p
ScalarColumn< Int > processorId_p
ROScalarColumn< Double > time_p
ScalarColumn< Int > fieldId_p
A class for easy read-only access to MeasurementSet main table columns.
ROScalarQuantColumn< Double > intervalQuant_p
const ROArrayColumn< Complex > & correctedData() const
const ROArrayColumn< Float > & sigma() const
unsigned int uInt
Definition: aipstype.h:51
ScalarColumn< Bool > baselineRef_p
ROScalarMeasColumn< Muvw > uvw2Meas_p
const ROScalarQuantColumn< Double > & timeCentroidQuant() const
ScalarColumn< Int > feed2_p
ArrayColumn< Complex > data_p
const ROScalarColumn< Int > & dataDescId() const
#define casacore
&lt;X11/Intrinsic.h&gt; #defines true, false, casacore::Bool, and String.
Definition: X11Intrinsic.h:42