source: trunk/src/ScantableWrapper.h @ 1111

Last change on this file since 1111 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.