HOPS
HOPS class reference
MHO_DiFXInterface.hh
Go to the documentation of this file.
1 #ifndef MHO_DiFXInterface_HH__
2 #define MHO_DiFXInterface_HH__
3 
4 #include <algorithm>
5 #include <map>
6 #include <set>
7 #include <string>
8 #include <vector>
9 
12 #include "MHO_Message.hh"
13 #include "MHO_StationCodeMap.hh"
14 #include "MHO_Tokenizer.hh"
15 
16 #include "MHO_DiFXScanFileSet.hh"
17 #include "MHO_DiFXScanProcessor.hh"
18 
19 namespace hops
20 {
21 
34 {
35  public:
37  virtual ~MHO_DiFXInterface();
38 
44  void SetInputDirectory(std::string dir);
50  void SetOutputDirectory(std::string dir);
51 
57  void SetStationCodes(MHO_StationCodeMap* code_map);
58 
64  void SetExperimentNumber(int num) { fExperNum = num; }
65 
69  void SetNormalizeFalse() { fNormalize = false; }
70 
74  void SetNormalizeTrue() { fNormalize = true; }
75 
79  void SetAttachDiFXInputTrue() {fAttachDiFXInput = true; }
80 
84  void SetAttachDiFXInputFalse() {fAttachDiFXInput = false; }
85 
89  void SetPreserveDiFXScanNamesTrue() { fPreserveDiFXScanNames = true; }
90 
94  void SetPreserveDiFXScanNamesFalse() { fPreserveDiFXScanNames = false; };
95 
96  void SetExportAsMark4True(){fExportAsMark4 = true;}
97  void SetExportAsMark4False(){fExportAsMark4 = false;}
98 
104  void SetFrequencyBands(std::vector< std::tuple< std::string, double, double > > fbands) { fFreqBands = fbands; }
105 
111  void SetFreqGroups(std::vector< std::string > fgroups) { fFreqGroups = fgroups; }
112 
118  void SetOnlyBandwidth(double bw)
119  {
120  fOnlyBandwidth = bw;
121  fSelectByBandwidth = true;
122  }
123 
127  void Initialize(); //read the directory and construct the scan file-lists
128 
132  void ProcessScans(); //convert the scans
133 
134  private:
135 
141  void InitializeFromExperimentDir(const std::string& input_dir); //for when we are processing a whole experiment in batch mode
142 
148  void InitializeFromScanDir(const std::string& input_dir); //for when we are processing a single scan
149 
156  bool IsSingleScan(const std::string& input_dir) const;
157 
158  std::string fInputDirectory;
159  std::string fOutputDirectory;
160  MHO_DirectoryInterface fDirInterface;
161  std::string fVexFile;
162  std::string fV2DFile;
163  std::vector< MHO_DiFXScanFileSet > fScanFileSetList;
164  bool fNormalize;
165  bool fPreserveDiFXScanNames;
166  bool fAttachDiFXInput;
167  bool fExportAsMark4;
168 
169  std::vector< std::tuple< std::string, double, double > > fFreqBands; //frequency band/group labels and ranges
170  std::vector< std::string > fFreqGroups; //limit output to matching frequency groups
171  bool fSelectByBandwidth;
172  double fOnlyBandwidth; //limit output to only channels of this bandwidth
173 
174  int fExperNum;
175  MHO_DiFXScanProcessor fScanProcessor;
176 };
177 
178 } // namespace hops
179 
180 #endif
Class MHO_DiFXInterface.
Definition: MHO_DiFXInterface.hh:34
void SetOutputDirectory(std::string dir)
Setter for output directory.
Definition: MHO_DiFXInterface.cc:25
void SetNormalizeFalse()
Setter for normalize false - Do NOT apply mk4 style visibility normalization.
Definition: MHO_DiFXInterface.hh:69
void SetAttachDiFXInputFalse()
Setter for attach difx .input false.
Definition: MHO_DiFXInterface.hh:84
void SetPreserveDiFXScanNamesFalse()
Setter for preserve difx scan names false.
Definition: MHO_DiFXInterface.hh:94
void SetOnlyBandwidth(double bw)
Setter for only bandwidth - only consider channels with matching bandwidth.
Definition: MHO_DiFXInterface.hh:118
void SetNormalizeTrue()
Setter for normalize true - apply mk4 style visibility normalization.
Definition: MHO_DiFXInterface.hh:74
void SetPreserveDiFXScanNamesTrue()
Setter for preserve difx scan names true.
Definition: MHO_DiFXInterface.hh:89
void SetFreqGroups(std::vector< std::string > fgroups)
Setter for freq groups - only consider data from these frequency groups.
Definition: MHO_DiFXInterface.hh:111
void SetAttachDiFXInputTrue()
Setter for attach difx .input true.
Definition: MHO_DiFXInterface.hh:79
void SetExportAsMark4False()
Definition: MHO_DiFXInterface.hh:97
void SetExperimentNumber(int num)
Setter for experiment number.
Definition: MHO_DiFXInterface.hh:64
void SetInputDirectory(std::string dir)
Setter for (data) input directory.
Definition: MHO_DiFXInterface.cc:20
virtual ~MHO_DiFXInterface()
Definition: MHO_DiFXInterface.cc:18
void SetExportAsMark4True()
Definition: MHO_DiFXInterface.hh:96
void ProcessScans()
Generates root codes and processes scans using MHO_LegacyRootCodeGenerator and MHO_ScanProcessor.
Definition: MHO_DiFXInterface.cc:327
void SetStationCodes(MHO_StationCodeMap *code_map)
Setter for station codes map.
Definition: MHO_DiFXInterface.cc:30
void SetFrequencyBands(std::vector< std::tuple< std::string, double, double > > fbands)
Setter for frequency bands (label, frequency limits)
Definition: MHO_DiFXInterface.hh:104
MHO_DiFXInterface()
Definition: MHO_DiFXInterface.cc:6
void Initialize()
Initializes MHO_DiFXInterface based on input directory type (single scan or whole experiment).
Definition: MHO_DiFXInterface.cc:311
Class MHO_DiFXScanProcessor.
Definition: MHO_DiFXScanProcessor.hh:45
Class MHO_DirectoryInterface.
Definition: MHO_DirectoryInterface.hh:24
Class MHO_StationCodeMap Handles the mapping of two character and one character station representatio...
Definition: MHO_StationCodeMap.hh:27
Definition: difx2mark4.h:111
Definition: MHO_ChannelLabeler.hh:17