1 #ifndef MHO_DiFXBaselineProcessor_HH__
2 #define MHO_DiFXBaselineProcessor_HH__
112 void SetDiFXCodes2VexCodes(
const std::map< std::string, std::string >& d2v_map) { fDiFX2VexStationCodes = d2v_map; };
119 void SetDiFXCodes2VexNames(
const std::map< std::string, std::string >& d2v_map) { fDiFX2VexStationNames = d2v_map; };
139 if(fRefStation == fRemStation)
168 void SetFreqGroups(std::vector< std::string > fgroups) { fOnlyFreqGroups = fgroups; }
173 fSelectByBandwidth =
true;
178 void DeleteDiFXVisRecords();
180 std::string ConstructCorFileName(
const std::string& output_dir,
const std::string& root_code,
181 const std::string&
baseline,
const std::string& baseline_shortname);
183 std::string DetermineFreqGroup(
const double& freq);
185 std::string fRootCode;
186 std::string fCorrDate;
189 std::string fRefStation;
190 std::string fRemStation;
191 std::string fRefStationName;
192 std::string fRemStationName;
193 std::string fRefStationMk4Id;
194 std::string fRemStationMk4Id;
195 std::string fBaselineName;
196 std::string fBaselineShortName;
197 std::string fBaselineDelim;
206 std::map< std::string, std::string > fDiFX2VexStationCodes;
208 std::map< std::string, std::string > fDiFX2VexStationNames;
211 std::vector< MHO_DiFXVisibilityRecord* > fRecords;
214 std::map< std::string, std::map< int, std::vector< MHO_DiFXVisibilityRecord* > > > fVisibilities;
216 std::set< std::string > fPolPairSet;
217 std::set< int > fFreqIndexSet;
218 std::set< int > fAPSet;
219 std::set< int > fSpecPointSet;
220 std::set< double > fBandwidthSet;
221 std::size_t fNPolPairs;
222 std::size_t fNChannels;
224 std::size_t fNSpectralPoints;
226 std::string fStartTime;
227 std::string fStopTime;
228 std::string fSourceName;
230 bool fHaveBaselineData;
233 std::map< int, double > fNBitsToFactor;
236 bool fAttachDiFXInput;
240 std::vector< std::pair< int, mho_json > > fBaselineFreqs;
241 std::set< std::string > fFreqBandLabelSet;
249 std::vector< std::tuple< std::string, double, double > > fFreqBands;
250 std::vector< std::string > fOnlyFreqGroups;
251 bool fSelectByBandwidth;
252 double fOnlyBandwidth;
255 struct VisRecordTimeLess
270 VisRecordTimeLess fTimePredicate;
273 struct FreqIndexPairLess
275 bool operator()(
const std::pair< int, mho_json >& a,
const std::pair< int, mho_json >& b)
const
277 double a_freq = a.second[
"freq"];
278 double b_freq = b.second[
"freq"];
280 double a_bw = a.second[
"bw"];
281 double b_bw = b.second[
"bw"];
283 std::string a_sb = a.second[
"sideband"];
284 std::string b_sb = b.second[
"sideband"];
305 double a_center = a_freq + a_sign * (a_bw / 2.0);
306 double b_center = b_freq + b_sign * (b_bw / 2.0);
308 return a_center < b_center;
312 FreqIndexPairLess fFreqPredicate;
314 std::string ConstructMK4ChannelID(std::string fgroup,
int index, std::string sideband,
char pol);
Class MHO_DiFXBaselineProcessor.
Definition: MHO_DiFXBaselineProcessor.hh:30
virtual ~MHO_DiFXBaselineProcessor()
Definition: MHO_DiFXBaselineProcessor.cc:54
void SetExportAsMark4False()
Definition: MHO_DiFXBaselineProcessor.hh:91
visibility_store_type * GetVisibilities()
Definition: MHO_DiFXBaselineProcessor.hh:162
void SetDiFXCodes2VexCodes(const std::map< std::string, std::string > &d2v_map)
Setter for difx station codes to vex codes (2 char -> 2 char), but difx uses all caps.
Definition: MHO_DiFXBaselineProcessor.hh:112
void SetFrequencyBands(std::vector< std::tuple< std::string, double, double > > fbands)
Definition: MHO_DiFXBaselineProcessor.hh:166
void SetOnlyBandwidth(double bw)
Definition: MHO_DiFXBaselineProcessor.hh:170
std::string GetRefStationMk4Id() const
Getter for reference station mk4id.
Definition: MHO_DiFXBaselineProcessor.hh:151
std::string GetBaselineShortName() const
Definition: MHO_DiFXBaselineProcessor.hh:160
void Clear()
Definition: MHO_DiFXBaselineProcessor.cc:655
void SetDiFXInputData(const mho_json *input)
Setter for difx .input data (needed for processing visibilities)
Definition: MHO_DiFXBaselineProcessor.hh:40
bool IsAutoCorr() const
Checks if reference station is equal to remote station.
Definition: MHO_DiFXBaselineProcessor.hh:137
void SetScanIndex(std::size_t idx)
Setter for scan index.
Definition: MHO_DiFXBaselineProcessor.hh:47
void SetStationCodes(MHO_StationCodeMap *code_map)
Setter for station codes (2 characater -> 1 character)
Definition: MHO_DiFXBaselineProcessor.cc:337
void WriteVisibilityObjects(std::string output_dir)
Writes visibility objects in HOPS4 format to an output directory.
Definition: MHO_DiFXBaselineProcessor.cc:599
void SetRescaleFalse()
Setter for rescale false - Do NOT apply mk4 style visibility normalization.
Definition: MHO_DiFXBaselineProcessor.hh:73
int GetBaselineID() const
Getter for (difx) baseline id.
Definition: MHO_DiFXBaselineProcessor.hh:54
void SetExportAsMark4True()
Definition: MHO_DiFXBaselineProcessor.hh:90
void SetRescaleTrue()
Setter for rescale true - apply mk4 style visibility normalization.
Definition: MHO_DiFXBaselineProcessor.hh:78
MHO_DiFXBaselineProcessor()
Definition: MHO_DiFXBaselineProcessor.cc:25
void ConstructVisibilityFileObjects()
Constructs visibility file objects by organizing data and setting tags for visibilities and weights.
Definition: MHO_DiFXBaselineProcessor.cc:342
void SetFreqGroups(std::vector< std::string > fgroups)
Definition: MHO_DiFXBaselineProcessor.hh:168
void SetCorrelationDate(std::string corrdate)
Setter for correlation date.
Definition: MHO_DiFXBaselineProcessor.hh:68
void SetDiFXCodes2VexNames(const std::map< std::string, std::string > &d2v_map)
Setter for difx codes to vex names (difx 2 char code to canonical station names (8 char))
Definition: MHO_DiFXBaselineProcessor.hh:119
void SetAttachDiFXInputFalse()
Setter for attach difx input false (do not attach difx .input info to visibilities)
Definition: MHO_DiFXBaselineProcessor.hh:88
void AddRecord(MHO_DiFXVisibilityRecord *record)
Adds a visibility record (chunk of difx data) to the processor if it matches baseline and selection c...
Definition: MHO_DiFXBaselineProcessor.cc:59
void SetAttachDiFXInputTrue()
Setter for attach difx .input true (attaches json object containing difx .input info to visibilities)
Definition: MHO_DiFXBaselineProcessor.hh:83
void SetRootCode(std::string rcode)
Setter for (hops) root code.
Definition: MHO_DiFXBaselineProcessor.hh:61
std::string GetRemStationMk4Id() const
Getter for remote station mk4id.
Definition: MHO_DiFXBaselineProcessor.hh:158
Class MHO_DiFXVisibilityRecord.
Definition: MHO_DiFXVisibilityRecord.hh:24
int mjd
Definition: MHO_DiFXVisibilityRecord.hh:93
double seconds
Definition: MHO_DiFXVisibilityRecord.hh:94
Class MHO_StationCodeMap Handles the mapping of two character and one character station representatio...
Definition: MHO_StationCodeMap.hh:27
Class MHO_TableContainer.
Definition: MHO_TableContainer.hh:36
Definition: difx2mark4.h:111
int baseline
Definition: fourfit3.c:62
Definition: MHO_ChannelLabeler.hh:17