DP3
MSBDAWriter.h
Go to the documentation of this file.
1 // Copyright (C) 2022 ASTRON (Netherlands Institute for Radio Astronomy)
2 // SPDX-License-Identifier: GPL-3.0-or-later
3 
4 #ifndef DP3_STEPS_MSBDAWRITER_H_
5 #define DP3_STEPS_MSBDAWRITER_H_
6 
7 #include <map>
8 
9 #include <casacore/tables/Tables/Table.h>
10 
11 #include "base/StManParsetKeys.h"
12 #include "common/ParameterSet.h"
13 
14 #include "OutputStep.h"
15 
16 namespace dp3 {
17 namespace steps {
18 
22 class MSBDAWriter : public OutputStep {
23  public:
24  explicit MSBDAWriter(const std::string& out_name,
25  const common::ParameterSet& parset,
26  const std::string& prefix);
27 
28  common::Fields getRequiredFields() const override {
30  }
31 
32  void updateInfo(const base::DPInfo&) override;
33 
34  bool process(std::unique_ptr<base::BdaBuffer>) override;
35 
36  void finish() override;
37 
38  void show(std::ostream&) const override;
39 
40  private:
43  void CreateMS();
44 
45  void CreateMainTable();
46 
49  void CreateBDATimeAxis();
50 
53  void CreateBDATimeFactor();
54 
56  void CreateMetaDataFrequencyColumns();
57 
62  void WriteMetaData();
63 
66  void WriteTimeFactorRows(casacore::Int bda_set_id,
67  unsigned int& min_factor_time,
68  unsigned int& max_factor_time);
69 
71  void WriteTimeAxisRow(casacore::Int bda_set_id, unsigned int min_factor_time,
72  unsigned int max_factor_time);
73 
75  void OverwriteSubTables(casacore::Int bda_set_id);
76 
77  private:
78  const std::string out_name_;
79  const common::ParameterSet parset_;
80  const std::string prefix_;
81  const bool overwrite_;
82  base::StManParsetKeys st_man_keys_;
83 
84  std::map<std::size_t, unsigned int> nchanToDescId;
85  casacore::Table ms_;
86 };
87 
88 } // namespace steps
89 } // namespace dp3
90 
91 #endif
General info about DP3 data processing attributes like averaging.
Definition: DPInfo.h:35
Definition: Fields.h:16
Implements a map of Key-Value pairs.
Definition: ParameterSet.h:31
Step for writing BDA data to an MS.
Definition: MSBDAWriter.h:22
void finish() override
Finish the processing of this step and subsequent steps.
MSBDAWriter(const std::string &out_name, const common::ParameterSet &parset, const std::string &prefix)
void updateInfo(const base::DPInfo &) override
bool process(std::unique_ptr< base::BdaBuffer >) override
void show(std::ostream &) const override
Show the step parameters.
common::Fields getRequiredFields() const override
Get the fields required by the current step.
Definition: MSBDAWriter.h:28
Base class for output steps.
Definition: OutputStep.h:15
static constexpr dp3::common::Fields kWeightsField
Definition: Step.h:64
static constexpr dp3::common::Fields kUvwField
Definition: Step.h:66
static constexpr dp3::common::Fields kDataField
Definition: Step.h:60
static constexpr dp3::common::Fields kFlagsField
Definition: Step.h:62
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53
Definition: StManParsetKeys.h:46