DP3
H5ParmPredict.h
Go to the documentation of this file.
1 // H5ParmPredict.h: DP3 step class to H5ParmPredict visibilities from a source
2 // model
3 //
4 // Copyright (C) 2023 ASTRON (Netherlands Institute for Radio Astronomy)
5 // SPDX-License-Identifier: GPL-3.0-or-later
6 
10 
11 #ifndef DP3_STEPS_H5PARM_PREDICT_H_
12 #define DP3_STEPS_H5PARM_PREDICT_H_
13 
14 #include "base/DP3.h"
15 #include "steps/Step.h"
16 
17 #include "common/Timer.h"
18 
19 #include "Predict.h"
20 #include "ResultStep.h"
21 
22 namespace dp3 {
23 namespace steps {
24 
27 class H5ParmPredict : public Step {
28  public:
31  H5ParmPredict(const common::ParameterSet&, const std::string& prefix);
32 
33  common::Fields getRequiredFields() const override {
34  // Combine the result of all sub steps.
35  return base::GetChainRequiredFields(itsPredictSteps.front());
36  }
37 
38  common::Fields getProvidedFields() const override {
39  // Combine the result of all sub steps.
40  common::Fields fields;
41  for (std::shared_ptr<Step> step = itsPredictSteps.front(); step;
42  step = step->getNextStep()) {
43  fields |= step->getProvidedFields();
44  }
45  return fields;
46  }
47 
51  bool process(std::unique_ptr<base::DPBuffer>) override;
52 
54  void finish() override;
55 
57  void updateInfo(const base::DPInfo&) override;
58 
60  void show(std::ostream&) const override;
61 
63  void showTimings(std::ostream&, double duration) const override;
64 
65  private:
66  std::string itsName;
67 
68  std::vector<std::shared_ptr<Predict>> itsPredictSteps;
69  std::shared_ptr<ResultStep> itsResultStep;
70 
71  std::string itsH5ParmName;
72  std::vector<std::string> itsDirections;
73 
74  common::NSTimer itsTimer;
75 };
76 
77 } // namespace steps
78 } // namespace dp3
79 
80 #endif
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
DP3 step class to predict visibilities using an H5Parm file with a source model.
Definition: H5ParmPredict.h:27
void show(std::ostream &) const override
Show the step parameters.
void updateInfo(const base::DPInfo &) override
Update the general info.
void showTimings(std::ostream &, double duration) const override
Show the timings.
common::Fields getProvidedFields() const override
Definition: H5ParmPredict.h:38
H5ParmPredict(const common::ParameterSet &, const std::string &prefix)
bool process(std::unique_ptr< base::DPBuffer >) override
common::Fields getRequiredFields() const override
Get the fields required by the current step.
Definition: H5ParmPredict.h:33
void finish() override
Finish the processing of this step and subsequent steps.
Abstract base class for a DP3 step.
Definition: Step.h:52
dp3::common::Fields GetChainRequiredFields(std::shared_ptr< steps::Step > first_step)
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53