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 
98  void SetExportAsMark4False() { fExportAsMark4 = false; }
99 
105  void SetFrequencyBands(std::vector< std::tuple< std::string, double, double > > fbands) { fFreqBands = fbands; }
106 
112  void SetFreqGroups(std::vector< std::string > fgroups) { fFreqGroups = fgroups; }
113 
119  void SetOnlyBandwidth(double bw)
120  {
121  fOnlyBandwidth = bw;
122  fSelectByBandwidth = true;
123  }
124 
128  void Initialize(); //read the directory and construct the scan file-lists
129 
133  void ProcessScans(); //convert the scans
134 
135  //enable difxio option to look for input files in the local directory
137 
138  private:
144  void
145  InitializeFromExperimentDir(const std::string& input_dir); //for when we are processing a whole experiment in batch mode
146 
152  void InitializeFromScanDir(const std::string& input_dir); //for when we are processing a single scan
153 
160  bool IsSingleScan(const std::string& input_dir) const;
161 
162  std::string fInputDirectory;
163  std::string fOutputDirectory;
164  MHO_DirectoryInterface fDirInterface;
165  std::string fVexFile;
166  std::string fV2DFile;
167  std::vector< MHO_DiFXScanFileSet > fScanFileSetList;
168  bool fNormalize;
169  bool fPreserveDiFXScanNames;
170  bool fAttachDiFXInput;
171  bool fExportAsMark4;
172  bool fTryLocalDir; //forwarded as --localdir to the difxinput2json subprocess
173 
174  std::vector< std::tuple< std::string, double, double > > fFreqBands; //frequency band/group labels and ranges
175  std::vector< std::string > fFreqGroups; //limit output to matching frequency groups
176  bool fSelectByBandwidth;
177  double fOnlyBandwidth; //limit output to only channels of this bandwidth
178 
179  int fExperNum;
180  MHO_DiFXScanProcessor fScanProcessor;
181 };
182 
183 } // namespace hops
184 
185 #endif
Class MHO_DiFXInterface.
Definition: MHO_DiFXInterface.hh:34
void SetOutputDirectory(std::string dir)
Setter for output directory.
Definition: MHO_DiFXInterface.cc:26
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:119
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:112
void SetAttachDiFXInputTrue()
Setter for attach difx .input true.
Definition: MHO_DiFXInterface.hh:79
void SetExportAsMark4False()
Definition: MHO_DiFXInterface.hh:98
void SetTryLocalDirectoryTrue()
Definition: MHO_DiFXInterface.cc:405
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:21
virtual ~MHO_DiFXInterface()
Definition: MHO_DiFXInterface.cc:19
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:326
void SetStationCodes(MHO_StationCodeMap *code_map)
Setter for station codes map.
Definition: MHO_DiFXInterface.cc:31
void SetFrequencyBands(std::vector< std::tuple< std::string, double, double > > fbands)
Setter for frequency bands (label, frequency limits)
Definition: MHO_DiFXInterface.hh:105
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:310
Class MHO_DiFXScanProcessor.
Definition: MHO_DiFXScanProcessor.hh:47
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_AdhocFlagging.hh:18