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
RevLine 
[847]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
[2]14
15#include <vector>
16#include <string>
[380]17#include <casa/Arrays/Vector.h>
[2]18
[465]19#include "MathUtils.h"
[901]20#include "STFit.h"
[847]21#include "Scantable.h"
[2]22
[83]23namespace asap {
[847]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 {
[2]36
37public:
[864]38 ScantableWrapper( const std::string& name,
[1077]39 int type=0)
[864]40 {
41 casa::Table::TableType tp = casa::Table::Memory;
[1077]42 if ( type == 1 ) tp = casa::Table::Plain;
[864]43 table_ = new Scantable(name, tp);
44 }
[90]45
[1077]46 ScantableWrapper(int type=0)
[864]47 {
48 casa::Table::TableType tp = casa::Table::Memory;
[1077]49 if ( type == 1) tp = casa::Table::Plain;
[864]50 table_= new Scantable(tp);
51 }
[90]52
[847]53 ScantableWrapper(casa::CountedPtr<Scantable> cp) : table_(cp) {;}
[90]54
[847]55 ScantableWrapper(const ScantableWrapper& mt) :
56 table_(mt.getCP()) {;}
[90]57
[868]58 void assign(const ScantableWrapper& mt)
59 { table_= mt.getCP(); }
60
[847]61 ScantableWrapper copy() {
62 return ScantableWrapper(new Scantable(*(this->getCP()), false));
[80]63 }
[868]64
[896]65 std::vector<float> getSpectrum( int whichrow=0,
[905]66 const std::string& poltype="" ) const {
[896]67 return table_->getSpectrum(whichrow, poltype);
[2]68 }
[527]69 // std::string getPolarizationLabel(bool linear, bool stokes, bool linPol, int polIdx) const {
70 // Boost fails with 4 arguments.
[902]71 std::string getPolarizationLabel(int index, const std::string& ptype) const {
72 return table_->getPolarizationLabel(index, ptype);
[494]73 }
[527]74
[896]75 std::vector<double> getAbcissa(int whichrow=0) const
76 { return table_->getAbcissa(whichrow); }
[41]77
[896]78 std::string getAbcissaLabel(int whichrow=0) const
79 { return table_->getAbcissaLabel(whichrow); }
[157]80
[896]81 float getTsys(int whichrow=0) const
82 { return table_->getTsys(whichrow); }
[2]83
[896]84 std::string getTime(int whichrow=0) const
85 { return table_->getTime(whichrow); }
[207]86
[1068]87 std::string getDirectionString(int whichrow=0) const
88 { return table_->getDirectionString(whichrow); }
89
[864]90 std::string getFluxUnit() const { return table_->getFluxUnit(); }
91
92 void setFluxUnit(const std::string& unit) { table_->setFluxUnit(unit); }
93
[238]94 void setInstrument(const std::string& name) {table_->setInstrument(name);}
95
[896]96 std::vector<bool> getMask(int whichrow=0) const
97 { return table_->getMask(whichrow); }
[2]98
[1000]99 void flag(const std::vector<bool>& msk=std::vector<bool>())
100 { table_->flag(msk); }
[2]101
[896]102 std::string getSourceName(int whichrow=0) const
103 { return table_->getSourceName(whichrow); }
[794]104
[896]105 float getElevation(int whichrow=0) const
106 { return table_->getElevation(whichrow); }
[90]107
[896]108 float getAzimuth(int whichrow=0) const
109 { return table_->getAzimuth(whichrow); }
[2]110
[896]111 float getParAngle(int whichrow=0) const
112 { return table_->getParAngle(whichrow); }
[2]113
[864]114
[884]115 void setSpectrum(std::vector<float> spectrum, int whichrow=0)
116 { table_->setSpectrum(spectrum, whichrow); }
[868]117
[1111]118 std::vector<uint> getIFNos() { return table_->getIFNos(); }
[864]119 int getIF(int whichrow) const {return table_->getIF(whichrow);}
[1111]120 std::vector<uint> getBeamNos() { return table_->getBeamNos(); }
[864]121 int getBeam(int whichrow) const {return table_->getBeam(whichrow);}
[1111]122 std::vector<uint> getPolNos() { return table_->getPolNos(); }
[864]123 int getPol(int whichrow) const {return table_->getPol(whichrow);}
[868]124 int getCycle(int whichrow) const {return table_->getCycle(whichrow);}
[1111]125 std::vector<uint> getScanNos() { return table_->getScanNos(); }
[868]126 int getScan(int whichrow) const {return table_->getScan(whichrow);}
[864]127
128 STSelector getSelection() const { return table_->getSelection(); }
[868]129 void setSelection(const STSelector& sts)
130 { return table_->setSelection(sts);}
[864]131
[896]132 std::string getPolType() const { return table_->getPolType(); }
133
[864]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();}
[902]140 int ncycle(int scanno) const {return table_->ncycle(scanno);}
[2]141
[864]142 void makePersistent(const std::string& fname)
143 { table_->makePersistent(fname); }
[90]144
[1068]145 void setSourceType(int stype)
146 { table_->setSourceType(stype); }
147
[868]148 void setRestFrequencies(double rf, const std::string& unit)
149 { table_->setRestFrequencies(rf, unit); }
[925]150/*
[868]151 void setRestFrequencies(const std::string& name) {
152 table_->setRestFrequencies(name);
[847]153 }
[925]154*/
[745]155
[864]156 std::vector<double> getRestFrequencies() const
157 { return table_->getRestFrequencies(); }
[251]158
[105]159 void setCoordInfo(std::vector<string> theinfo) {
160 table_->setCoordInfo(theinfo);
161 }
162 std::vector<string> getCoordInfo() const {
163 return table_->getCoordInfo();
164 }
[90]165
[987]166 void setDirection(const std::string& refstr="")
167 { table_->setDirectionRefString(refstr); }
168
[847]169 casa::CountedPtr<Scantable> getCP() const {return table_;}
170 Scantable* getPtr() {return &(*table_);}
[380]171
[745]172 std::string summary(bool verbose=false) const {
173 return table_->summary(verbose);
[380]174 }
[745]175
[864]176 std::vector<std::string> getHistory()const
177 { return table_->getHistory(); }
[207]178
[864]179 void addHistory(const std::string& hist)
180 { table_->addHistory(hist); }
[745]181
[972]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
[777]188 void calculateAZEL() { table_->calculateAZEL(); };
[465]189
[1003]190 std::vector<std::string> columnNames() const
191 { return table_->columnNames(); }
192
[2]193private:
[847]194 casa::CountedPtr<Scantable> table_;
[2]195};
196
197} // namespace
198#endif
[421]199
Note: See TracBrowser for help on using the repository browser.