CARMA C++
MiriadIo.h
Go to the documentation of this file.
1 // $Id: MiriadIo.h,v 1.1 2010/12/13 21:06:30 eml Exp $
2 
3 #ifndef SZA_UTIL_MIRIADIO_H
4 #define SZA_UTIL_MIRIADIO_H
5 
15 #include "carma/szautil/Angle.h"
16 #include "carma/szautil/Pressure.h"
17 #include "carma/szautil/Speed.h"
18 #include "carma/szautil/Temperature.h"
19 #include "carma/szautil/VisIo.h"
20 
21 namespace sza {
22  namespace util {
23 
24  class MiriadIo : public VisIo {
25  public:
26 
30  MiriadIo();
31 
35  virtual ~MiriadIo();
36 
37  // Versions of the base-class routines which handle Miriad files
38 
39  void openFile(std::string name, std::string openMode);
40  void closeFile();
41  void writeFile(double* data, double* date, double* uvw, double* rms);
42  void writeFakeFile(double* data, double* date, double* uvw, double* rms);
43 
44  // Method to write a single frame of data, including uv
45  // variables written by CARMA
46 
47  // Write antenna pointing information
48 
49  void writeAntennaPointing();
50 
51  // Write weather parameters
52 
53  void writeWeatherParameters();
54  void writeTimeParameters(unsigned iFrame);
55  void writeCarmaFormatData(unsigned iFrame);
56 
57  void resetVisStats();
58  void reportVisStats();
59 
60  void setVersion(std::string version);
61 
62  private:
63 
64  std::string version_;
65 
66  // A UV handle used by Miriad writing routines
67 
68  int uvh_;
69 
70  unsigned nCarma_;
71 
72  unsigned iFirstGoodChannel_;
73  unsigned nGoodChannel_;
74 
75  void writeFixedParameters();
76  void writeVisibilityData(double* data, double* date, double* uvw,
77  double* rms);
78 
79  void writeVisibilityData(unsigned iFrame);
80  void writeWidebandVisibilityData(unsigned iFrame, unsigned iBaseline);
81  void writeSpectralVisibilityData(unsigned iFrame, unsigned iBaseline);
82 
83  void writeFakeVisibilityData(double* data, double* date, double* uvw,
84  double* rms);
85 
86  void writeSourceParameters();
87  void writeSiteParameters();
88  void writeAntennaParameters();
89  void writeArrayParameters();
90  void writeSysTemps(double* rmsInJy, unsigned iFrame);
91 
92  bool haveVisWideData();
93  bool haveVisSpecData();
94 
95  unsigned nVis_;
96  unsigned goodData_;
97  unsigned badData_;
98  unsigned badFlagData_;
99  unsigned badWtData_;
100 
101  }; // End class MiriadIo
102 
103  } // End namespace util
104 } // End namespace sza
105 
106 
107 
108 #endif // End #ifndef SZA_UTIL_MIRIADIO_H
Tagged: Mon Oct 3 15:32:27 PDT 2005.
Tagged: Wed Dec 1 23:39:12 PST 2004.