DP3
AntennaFlagger.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_ANTENNAFLAGGER_H_
5 #define DP3_STEPS_ANTENNAFLAGGER_H_
6 
7 #include <memory>
8 #include <string>
9 
10 #include "Step.h"
11 
12 #include "antennaflagger/Flagger.h"
13 #include "common/ParameterSet.h"
14 #include "common/Timer.h"
15 
16 namespace dp3 {
17 namespace steps {
18 class AntennaFlagger final : public Step {
19  public:
20  explicit AntennaFlagger(const common::ParameterSet& parset,
21  const std::string& prefix);
22 
23  common::Fields getRequiredFields() const override {
24  return kDataField | kFlagsField;
25  }
26 
27  common::Fields getProvidedFields() const override { return kFlagsField; }
28 
29  void updateInfo(const base::DPInfo& info) override;
30  void finish() override;
31  void show(std::ostream& ostream) const override;
32  bool process(std::unique_ptr<base::DPBuffer> buffer) override;
33  void showTimings(std::ostream& ostream, double duration) const override;
34 
35  private:
36  std::string name_;
37  common::BaselineOrder baseline_order_;
38  std::unique_ptr<dp3::antennaflagger::Flagger> flagger_;
39 
40  // AartfaacFlagger parameters
41  float antenna_flagging_sigma_;
42  size_t antenna_flagging_max_iterations_;
43  size_t antenna_flagging_outlier_threshold_;
44  float station_flagging_sigma_;
45  size_t station_flagging_max_iterations_;
46 
47  // TImers
48  common::NSTimer initialization_timer_;
49  common::NSTimer computation_timer_;
50  common::NSTimer flagging_timer_;
51 };
52 
53 } // namespace steps
54 } // namespace dp3
55 
56 #endif // DP3_ANTENNAFLAGGERSTEP_H
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
Definition: AntennaFlagger.h:18
void showTimings(std::ostream &ostream, double duration) const override
AntennaFlagger(const common::ParameterSet &parset, const std::string &prefix)
common::Fields getProvidedFields() const override
Definition: AntennaFlagger.h:27
void finish() override
Finish the processing of this step and subsequent steps.
void updateInfo(const base::DPInfo &info) override
void show(std::ostream &ostream) const override
Show the step parameters.
common::Fields getRequiredFields() const override
Get the fields required by the current step.
Definition: AntennaFlagger.h:23
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 kDataField
Definition: Step.h:60
static constexpr dp3::common::Fields kFlagsField
Definition: Step.h:62
BaselineOrder
Definition: baseline_indices.h:63
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53