source: trunk/src/STMathWrapper.h @ 977

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

Removed align option from average as it is buggy. The user has to provide a vector of aligned scantables.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.3 KB
Line 
1//
2// C++ Interface: STMathWrapper
3//
4// Description:
5//
6//
7// Author: Malte Marquarding <Malte.Marquarding@csiro.au>, (C) 2006
8//
9// Copyright: See COPYING file that comes with this distribution
10//
11//
12#ifndef ASAPSTMATHWRAPPER_H
13#define ASAPSTMATHWRAPPER_H
14
15#include <vector>
16#include <string>
17
18#include <casa/Utilities/CountedPtr.h>
19
20#include "STMath.h"
21#include "Scantable.h"
22#include "ScantableWrapper.h"
23
24namespace asap {
25
26/**
27Wrapper class to handle ScantableWrapper
28
29@author Malte Marquarding
30*/
31class STMathWrapper : public STMath {
32public:
33  STMathWrapper() {;}
34  STMathWrapper(bool insitu) : STMath(insitu) {;}
35
36  virtual ~STMathWrapper() {;}
37
38  ScantableWrapper
39    average( const std::vector<ScantableWrapper>& in,
40             const std::vector<bool>& mask,
41             const std::string& weight,
42             const std::string& avmode )
43  {
44    std::vector<casa::CountedPtr<Scantable> > sts;
45    for (int i=0; i<in.size(); ++i) sts.push_back(in[i].getCP());
46    return ScantableWrapper(STMath::average(sts, mask, weight, avmode, alignfreq));
47  }
48  ScantableWrapper
49    averagePolarisations( const ScantableWrapper& in,
50                          const std::vector<bool>& mask,
51                          const std::string& weight)
52  { return ScantableWrapper(STMath::averagePolarisations(in.getCP(),mask, weight));}
53
54  ScantableWrapper
55    unaryOperate( const ScantableWrapper& in, float val,
56                  const std::string& mode, bool tsys=false )
57  { return ScantableWrapper(STMath::unaryOperate(in.getCP(), val, mode, tsys)); }
58
59  ScantableWrapper quotient( const ScantableWrapper& in,
60                             const std::string& mode = "NEAREST",
61                             bool preserve = true )
62  { return ScantableWrapper(STMath::quotient(in.getCP(), mode, preserve)); }
63
64  ScantableWrapper
65    freqSwitch( const ScantableWrapper& in )
66  { return ScantableWrapper(STMath::freqSwitch(in.getCP())); }
67
68  std::vector<float> statistic(const ScantableWrapper& in,
69                               const std::vector<bool>& mask,
70                               const std::string& which)
71  { return STMath::statistic(in.getCP(), mask, which); }
72
73  ScantableWrapper bin( const ScantableWrapper& in, int width=5)
74  { return ScantableWrapper(STMath::bin(in.getCP(), width)); }
75
76  ScantableWrapper
77    resample(const ScantableWrapper& in,
78             const std::string& method, float width)
79  { return ScantableWrapper(STMath::resample(in.getCP(), method, width)); }
80
81  ScantableWrapper
82    smooth(const ScantableWrapper& in, const std::string& kernel, float width)
83  { return ScantableWrapper(STMath::smooth(in.getCP(), kernel, width)); }
84
85  ScantableWrapper
86    gainElevation(const ScantableWrapper& in,
87                  const std::vector<float>& coeff,
88                  const std::string& filename,
89                  const std::string& method)
90
91  { return
92      ScantableWrapper(STMath::gainElevation(in.getCP(), coeff, filename, method)); }
93
94  ScantableWrapper
95    convertFlux(const ScantableWrapper& in, float d,
96                float etaap, float jyperk)
97  { return ScantableWrapper(STMath::convertFlux(in.getCP(), d, etaap, jyperk)); }
98
99  ScantableWrapper opacity(const ScantableWrapper& in,
100                                      float tau)
101  { return ScantableWrapper(STMath::opacity(in.getCP(), tau)); }
102
103  ScantableWrapper
104    merge(const std::vector<ScantableWrapper >& in)
105
106  {
107    std::vector<casa::CountedPtr<Scantable> > sts;
108    for (int i=0; i<in.size(); ++i) sts.push_back(in[i].getCP());
109    return ScantableWrapper(STMath::merge(sts)); }
110
111  ScantableWrapper rotateXYPhase( const ScantableWrapper& in, float angle)
112  { return ScantableWrapper(STMath::rotateXYPhase(in.getCP(), angle)); }
113
114  ScantableWrapper rotateLinPolPhase( const ScantableWrapper& in, float angle)
115  { return ScantableWrapper(STMath::rotateLinPolPhase(in.getCP(), angle)); }
116
117  ScantableWrapper invertPhase( const ScantableWrapper& in )
118  { return ScantableWrapper(STMath::invertPhase(in.getCP())); }
119
120  ScantableWrapper swapPolarisations( const ScantableWrapper& in )
121  { return ScantableWrapper(STMath::swapPolarisations(in.getCP())); }
122
123  ScantableWrapper frequencyAlign( const ScantableWrapper& in,
124                                   const std::string& refTime,
125                                   const std::string& method  )
126  { return ScantableWrapper(STMath::frequencyAlign(in.getCP())); }
127
128};
129
130}
131
132#endif
Note: See TracBrowser for help on using the repository browser.