DP3
MsColumnReader.h
Go to the documentation of this file.
1 // Copyright (C) 2023 ASTRON (Netherlands Institute for Radio Astronomy)
2 // SPDX-License-Identifier: GPL-3.0-or-later
3 
8 
9 #ifndef DP3_STEPS_MSCOLUMNREADER_H_
10 #define DP3_STEPS_MSCOLUMNREADER_H_
11 
12 #include <casacore/tables/Tables/ArrayColumn.h>
13 #include <casacore/tables/Tables/Table.h>
14 
15 #include <xtensor/containers/xtensor.hpp>
16 
17 #include "steps/Step.h"
18 
19 #include "common/ParameterSet.h"
20 
21 namespace dp3 {
22 namespace steps {
23 
24 class MsColumnReader final : public ModelDataStep {
25  public:
26  MsColumnReader(const common::ParameterSet&, const std::string& prefix,
27  MsType input_ms_type,
28  const std::string& column = "MODEL_DATA");
29 
30  common::Fields getRequiredFields() const override { return common::Fields(); }
31 
32  common::Fields getProvidedFields() const override { return kDataField; }
33 
36  bool process(std::unique_ptr<base::DPBuffer> buffer) override;
37 
38  bool process(std::unique_ptr<base::BdaBuffer> buffer) override;
39 
41  void updateInfo(const base::DPInfo&) override;
42 
43  void finish() override;
44 
45  void show(std::ostream&) const override;
46 
47  void showTimings(std::ostream& os, double duration) const override;
48 
50 
51  bool accepts(MsType dt) const override { return dt == input_ms_type_; }
52 
53  private:
54  casacore::Table table_;
55  casacore::ArrayColumn<std::complex<float>> model_column_;
56  casacore::Array<std::complex<float>> row_buffer_;
57  std::string name_;
58  std::string column_name_;
59  MsType input_ms_type_;
60 };
61 
62 } // namespace steps
63 } // namespace dp3
64 
65 #endif // header guard
Class to hold code for virtual base class for Flaggers in DP3.
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
Common interface for steps that produce model data.
Definition: Step.h:172
Definition: MsColumnReader.h:24
common::Fields getProvidedFields() const override
Definition: MsColumnReader.h:32
void showTimings(std::ostream &os, double duration) const 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: MsColumnReader.h:30
MsColumnReader(const common::ParameterSet &, const std::string &prefix, MsType input_ms_type, const std::string &column="MODEL_DATA")
void finish() override
Finish the processing of this step and subsequent steps.
void updateInfo(const base::DPInfo &) override
Update the general info.
bool process(std::unique_ptr< base::BdaBuffer > buffer) override
base::Direction GetFirstDirection() const override
bool accepts(MsType dt) const override
Boolean if this step can process this type of data.
Definition: MsColumnReader.h:51
bool process(std::unique_ptr< base::DPBuffer > buffer) override
MsType
To check compatibility between steps before running.
Definition: Step.h:57
static constexpr dp3::common::Fields kDataField
Definition: Step.h:60
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53
A direction on the celestial sphere.
Definition: Direction.h:15