source: trunk/src/ScantableWrapper.h@ 1156

Last change on this file since 1156 was 1111, checked in by mar637, 18 years ago

add getNumbers utility function, which is now called by all function which retrieve numbers from the Scantable

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.9 KB
Line 
1//
2// C++ Interface: Scantable
3//
4// Description:
5//
6//
7// Author: Malte Marquarding <asap@atnf.csiro.au>, (C) 2006
8//
9// Copyright: See COPYING file that comes with this distribution
10//
11//
12#ifndef ASAPSCANTABLEWRAPPER_H
13#define ASAPSCANTABLEWRAPPER_H
14
15#include <vector>
16#include <string>
17#include <casa/Arrays/Vector.h>
18
19#include "MathUtils.h"
20#include "STFit.h"
21#include "Scantable.h"
22
23namespace asap {
24/**
25 * This class contains and wraps a CountedPtr<Scantable>, as the CountedPtr
26 * class does not provide the dor operator which is need for references
27 * in boost::python
28 * see Scantable for interfce description
29 *
30 * @brief The main ASAP data container wrapper
31 * @author Malte Marquarding
32 * @date 2006-02-23
33 * @version 2.0a
34*/
35class ScantableWrapper {
36
37public:
38 ScantableWrapper( const std::string& name,
39 int type=0)
40 {
41 casa::Table::TableType tp = casa::Table::Memory;
42 if ( type == 1 ) tp = casa::Table::Plain;
43 table_ = new Scantable(name, tp);
44 }
45
46 ScantableWrapper(int type=0)
47 {
48 casa::Table::TableType tp = casa::Table::Memory;
49 if ( type == 1) tp = casa::Table::Plain;
50 table_= new Scantable(tp);
51 }
52
53 ScantableWrapper(casa::CountedPtr<Scantable> cp) : table_(cp) {;}
54
55 ScantableWrapper(const ScantableWrapper& mt) :
56 table_(mt.getCP()) {;}
57
58 void assign(const ScantableWrapper& mt)
59 { table_= mt.getCP(); }
60
61 ScantableWrapper copy() {
62 return ScantableWrapper(new Scantable(*(this->getCP()), false));
63 }
64
65 std::vector<float> getSpectrum( int whichrow=0,
66 const std::string& poltype="" ) const {
67 return table_->getSpectrum(whichrow, poltype);
68 }
69 // std::string getPolarizationLabel(bool linear, bool stokes, bool linPol, int polIdx) const {
70 // Boost fails with 4 arguments.
71 std::string getPolarizationLabel(int index, const std::string& ptype) const {
72 return table_->getPolarizationLabel(index, ptype);
73 }
74
75 std::vector<double> getAbcissa(int whichrow=0) const
76 { return table_->getAbcissa(whichrow); }
77
78 std::string getAbcissaLabel(int whichrow=0) const
79 { return table_->getAbcissaLabel(whichrow); }
80
81 float getTsys(int whichrow=0) const
82 { return table_->getTsys(whichrow); }
83
84 std::string getTime(int whichrow=0) const
85 { return table_->getTime(whichrow); }
86
87 std::string getDirectionString(int whichrow=0) const
88 { return table_->getDirectionString(whichrow); }
89
90 std::string getFluxUnit() const { return table_->getFluxUnit(); }
91
92 void setFluxUnit(const std::string& unit) { table_->setFluxUnit(unit); }
93
94 void setInstrument(const std::string& name) {table_->setInstrument(name);}
95
96 std::vector<bool> getMask(int whichrow=0) const
97 { return table_->getMask(whichrow); }
98
99 void flag(const std::vector<bool>& msk=std::vector<bool>())
100 { table_->flag(msk); }
101
102 std::string getSourceName(int whichrow=0) const
103 { return table_->getSourceName(whichrow); }
104
105 float getElevation(int whichrow=0) const
106 { return table_->getElevation(whichrow); }
107
108 float getAzimuth(int whichrow=0) const
109 { return table_->getAzimuth(whichrow); }
110
111 float getParAngle(int whichrow=0) const
112 { return table_->getParAngle(whichrow); }
113
114
115 void setSpectrum(std::vector<float> spectrum, int whichrow=0)
116 { table_->setSpectrum(spectrum, whichrow); }
117
118 std::vector<uint> getIFNos() { return table_->getIFNos(); }
119 int getIF(int whichrow) const {return table_->getIF(whichrow);}
120 std::vector<uint> getBeamNos() { return table_->getBeamNos(); }
121 int getBeam(int whichrow) const {return table_->getBeam(whichrow);}
122 std::vector<uint> getPolNos() { return table_->getPolNos(); }
123 int getPol(int whichrow) const {return table_->getPol(whichrow);}
124 int getCycle(int whichrow) const {return table_->getCycle(whichrow);}
125 std::vector<uint> getScanNos() { return table_->getScanNos(); }
126 int getScan(int whichrow) const {return table_->getScan(whichrow);}
127
128 STSelector getSelection() const { return table_->getSelection(); }
129 void setSelection(const STSelector& sts)
130 { return table_->setSelection(sts);}
131
132 std::string getPolType() const { return table_->getPolType(); }
133
134 int nif(int scanno=-1) const {return table_->nif(scanno);}
135 int nbeam(int scanno=-1) const {return table_->nbeam(scanno);}
136 int npol(int scanno=-1) const {return table_->npol(scanno);}
137 int nchan(int ifno=-1) const {return table_->nchan(ifno);}
138 int nscan() const {return table_->nscan();}
139 int nrow() const {return table_->nrow();}
140 int ncycle(int scanno) const {return table_->ncycle(scanno);}
141
142 void makePersistent(const std::string& fname)
143 { table_->makePersistent(fname); }
144
145 void setSourceType(int stype)
146 { table_->setSourceType(stype); }
147
148 void setRestFrequencies(double rf, const std::string& unit)
149 { table_->setRestFrequencies(rf, unit); }
150/*
151 void setRestFrequencies(const std::string& name) {
152 table_->setRestFrequencies(name);
153 }
154*/
155
156 std::vector<double> getRestFrequencies() const
157 { return table_->getRestFrequencies(); }
158
159 void setCoordInfo(std::vector<string> theinfo) {
160 table_->setCoordInfo(theinfo);
161 }
162 std::vector<string> getCoordInfo() const {
163 return table_->getCoordInfo();
164 }
165
166 void setDirection(const std::string& refstr="")
167 { table_->setDirectionRefString(refstr); }
168
169 casa::CountedPtr<Scantable> getCP() const {return table_;}
170 Scantable* getPtr() {return &(*table_);}
171
172 std::string summary(bool verbose=false) const {
173 return table_->summary(verbose);
174 }
175
176 std::vector<std::string> getHistory()const
177 { return table_->getHistory(); }
178
179 void addHistory(const std::string& hist)
180 { table_->addHistory(hist); }
181
182 void addFit(const STFitEntry& fit, int row)
183 { table_->addFit(fit, row); }
184
185 STFitEntry getFit(int whichrow) const
186 { return table_->getFit(whichrow); }
187
188 void calculateAZEL() { table_->calculateAZEL(); };
189
190 std::vector<std::string> columnNames() const
191 { return table_->columnNames(); }
192
193private:
194 casa::CountedPtr<Scantable> table_;
195};
196
197} // namespace
198#endif
199
Note: See TracBrowser for help on using the repository browser.