8 #ifndef DP3_STEPS_BDAAVERAGER_H_
9 #define DP3_STEPS_BDAAVERAGER_H_
37 const bool use_weights_and_flags =
true);
52 bool process(std::unique_ptr<base::DPBuffer> buffer)
override;
56 void show(std::ostream&)
const override;
97 struct BaselineBuffer {
98 BaselineBuffer(std::size_t time_factor, std::size_t n_input_channels,
99 std::size_t n_output_channels, std::size_t n_correlations);
102 std::size_t times_added;
103 const std::size_t time_factor;
109 std::vector<std::size_t> input_channel_indices;
113 std::map<std::string, std::vector<std::complex<float>>> data;
114 std::vector<float> weights;
118 void AddBaseline(std::size_t baseline_nr);
120 void InitializeBdaBuffer(
const std::vector<std::string>& data_names);
125 const double bl_threshold_time_;
127 const double bl_threshold_channel_;
129 const double max_interval_;
131 std::size_t min_channels_;
136 std::size_t maxfreqfactor_;
138 std::size_t maxtimefactor_;
141 std::size_t bda_pool_size_;
142 std::unique_ptr<base::BdaBuffer> bda_buffer_;
143 std::vector<BaselineBuffer> baseline_buffers_;
145 std::array<std::size_t, 3> expected_input_shape_;
149 std::vector<unsigned int> baseline_factors_;
152 std::vector<std::vector<double>> freqs_;
155 std::vector<std::vector<double>> widths_;
157 const bool use_weights_and_flags_;
159 std::queue<size_t> size_requests_;
160 std::vector<std::string> data_names_;
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
Implements a map of Key-Value pairs.
Definition: ParameterSet.h:31
Definition: BDAAverager.h:26
void updateInfo(const base::DPInfo &) override
void show(std::ostream &) const override
Show the step parameters.
void PushBufferSizeRequest(size_t buffersize)
bool accepts(MsType t) const override
Boolean if this step can process this type of data.
Definition: BDAAverager.h:60
float TotalAveragingFactor() const
BdaAverager(const common::ParameterSet &parset, const std::string &prefix, const bool use_weights_and_flags=true)
void SetAveragingParameters(const base::DPInfo &info)
common::Fields getRequiredFields() const override
Get the fields required by the current step.
Definition: BDAAverager.h:41
MsType outputs() const override
Return which datatype this step outputs.
Definition: BDAAverager.h:62
common::Fields getProvidedFields() const override
Definition: BDAAverager.h:47
void finish() override
Finish the processing of this step and subsequent steps.
bool process(std::unique_ptr< base::DPBuffer > buffer) override
Abstract base class for a DP3 step.
Definition: Step.h:52
static constexpr dp3::common::Fields kWeightsField
Definition: Step.h:64
static constexpr dp3::common::Fields kUvwField
Definition: Step.h:66
MsType
To check compatibility between steps before running.
Definition: Step.h:57
static constexpr dp3::common::Fields kDataField
Definition: Step.h:60
static constexpr dp3::common::Fields kFlagsField
Definition: Step.h:62
unsigned int rownr_t
Definition: Types.h:19
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53