Line data Source code
1 : #include <msvis/MSVis/ViColumns2.h>
2 : #include <casacore/ms/MeasurementSets.h>
3 :
4 : using namespace casacore;
5 : namespace casa {
6 :
7 : namespace vi {
8 :
9 5732 : ViColumns2::ViColumns2 ()
10 5732 : : antenna1_p (),
11 5732 : antenna2_p (),
12 5732 : array_p (),
13 5732 : corrVis_p (),
14 5732 : dataDescription_p (),
15 5732 : exposure_p (),
16 5732 : feed1_p (),
17 5732 : feed2_p (),
18 5732 : field_p (),
19 5732 : flagCategory_p (),
20 5732 : flagRow_p (),
21 5732 : flag_p (),
22 5732 : floatVis_p (),
23 5732 : modelVis_p (),
24 5732 : observation_p (),
25 5732 : processor_p (),
26 5732 : scan_p (),
27 5732 : sigma_p (),
28 5732 : state_p (),
29 5732 : timeCentroid_p (),
30 5732 : timeInterval_p (),
31 5732 : time_p (),
32 5732 : uvw_p (),
33 5732 : vis_p (),
34 5732 : weightSpectrum_p (),
35 5732 : sigmaSpectrum_p (),
36 5732 : weight_p (),
37 5732 : floatDataFound_p (false)
38 5732 : {}
39 :
40 :
41 : void
42 3759639 : ViColumns2::attachColumns (const Table & t, bool attachSpecialColumns)
43 : {
44 3759639 : const ColumnDescSet & cds = t.tableDesc ().columnDescSet ();
45 :
46 3759639 : antenna1_p.attach (t, MS::columnName (MS::ANTENNA1));
47 3759639 : antenna2_p.attach (t, MS::columnName (MS::ANTENNA2));
48 :
49 3759639 : corrVis_p = ArrayColumn<Complex>();
50 3759639 : if (cds.isDefined ("CORRECTED_DATA")) {
51 2338246 : corrVis_p.attach (t, "CORRECTED_DATA");
52 : }
53 :
54 3759639 : exposure_p.attach (t, MS::columnName (MS::EXPOSURE));
55 3759639 : feed1_p.attach (t, MS::columnName (MS::FEED1));
56 3759639 : feed2_p.attach (t, MS::columnName (MS::FEED2));
57 3759639 : flag_p.attach (t, MS::columnName (MS::FLAG));
58 3759639 : flagCategory_p.attach (t, MS::columnName (MS::FLAG_CATEGORY));
59 3759639 : flagRow_p.attach (t, MS::columnName (MS::FLAG_ROW));
60 :
61 3759639 : floatVis_p = ArrayColumn<Float>();
62 3759639 : if (cds.isDefined (MS::columnName (MS::FLOAT_DATA))) {
63 808039 : floatVis_p.attach (t, MS::columnName (MS::FLOAT_DATA));
64 808039 : floatDataFound_p = true;
65 : } else {
66 2951600 : floatDataFound_p = false;
67 : }
68 :
69 3759639 : modelVis_p = ArrayColumn<Complex>();
70 3759639 : if (cds.isDefined ("MODEL_DATA")) {
71 2113755 : modelVis_p.attach (t, "MODEL_DATA");
72 : }
73 :
74 3759639 : observation_p.attach (t, MS::columnName (MS::OBSERVATION_ID));
75 3759639 : processor_p.attach (t, MS::columnName (MS::PROCESSOR_ID));
76 3759639 : scan_p.attach (t, MS::columnName (MS::SCAN_NUMBER));
77 3759639 : sigma_p.attach (t, MS::columnName (MS::SIGMA));
78 3759639 : state_p.attach (t, MS::columnName (MS::STATE_ID));
79 3759639 : time_p.attach (t, MS::columnName (MS::TIME));
80 3759639 : timeCentroid_p.attach (t, MS::columnName (MS::TIME_CENTROID));
81 3759639 : timeInterval_p.attach (t, MS::columnName (MS::INTERVAL));
82 3759639 : uvw_p.attach (t, MS::columnName (MS::UVW));
83 :
84 3759639 : vis_p = ArrayColumn<Complex>();
85 3759639 : if (cds.isDefined (MS::columnName (MS::DATA))) {
86 2951600 : vis_p.attach (t, MS::columnName (MS::DATA));
87 : }
88 :
89 3759639 : weight_p.attach (t, MS::columnName (MS::WEIGHT));
90 :
91 3759639 : weightSpectrum_p = ArrayColumn<Float>();
92 3759639 : if (cds.isDefined (MS::columnName (MS::WEIGHT_SPECTRUM))) {
93 1886021 : weightSpectrum_p.attach (t, MS::columnName (MS::WEIGHT_SPECTRUM));
94 : }
95 :
96 3759639 : sigmaSpectrum_p = ArrayColumn<Float>();
97 3759639 : if (cds.isDefined (MS::columnName (MS::SIGMA_SPECTRUM))) {
98 144047 : sigmaSpectrum_p.attach (t, MS::columnName (MS::SIGMA_SPECTRUM));
99 : }
100 :
101 3759639 : if (attachSpecialColumns){
102 :
103 3759639 : array_p.attach (t, MS::columnName (MS::ARRAY_ID));
104 :
105 3759639 : dataDescription_p.attach (t, MS::columnName (MS::DATA_DESC_ID));
106 :
107 3759639 : field_p.attach (t, MS::columnName (MS::FIELD_ID));
108 : }
109 3759639 : }
110 :
111 : Bool
112 3759639 : ViColumns2::isFloatDataPresent () const
113 : {
114 3759639 : return floatDataFound_p;
115 : }
116 :
117 : } // end namespace vi
118 :
119 : using namespace casacore;
120 : } // end namespace casa
|