DP3
AntennaIntervalConstraint.h
Go to the documentation of this file.
1 // Copyright (C) 2024 ASTRON (Netherlands Institute for Radio Astronomy)
2 // SPDX-License-Identifier: GPL-3.0-or-later
3 
4 #ifndef DP3_DDECAL_ANTENNA_INTERVAL_CONSTRAINT_H_
5 #define DP3_DDECAL_ANTENNA_INTERVAL_CONSTRAINT_H_
6 
7 #include "Constraint.h"
8 
9 #include <vector>
10 
11 namespace dp3::ddecal {
12 
42 class AntennaIntervalConstraint final : public Constraint {
43  public:
45  const std::vector<size_t>& antenna_averaging_factors)
46  : antenna_averaging_factors_(antenna_averaging_factors) {}
47 
48  void Initialize(size_t n_antennas,
49  const std::vector<uint32_t>& solutions_per_direction,
50  const std::vector<double>& frequencies) override;
51 
52  const std::vector<size_t>& GetIntervalsPerAntenna() const {
53  return antenna_averaging_factors_;
54  }
55 
56  void Apply(SolutionSpan& solutions, double time) override;
57 
58  private:
59  std::vector<size_t> antenna_averaging_factors_;
60 };
61 
62 } // namespace dp3::ddecal
63 
64 #endif
Definition: AntennaIntervalConstraint.h:42
void Initialize(size_t n_antennas, const std::vector< uint32_t > &solutions_per_direction, const std::vector< double > &frequencies) override
const std::vector< size_t > & GetIntervalsPerAntenna() const
Definition: AntennaIntervalConstraint.h:52
AntennaIntervalConstraint(const std::vector< size_t > &antenna_averaging_factors)
Definition: AntennaIntervalConstraint.h:44
void Apply(SolutionSpan &solutions, double time) override
This class is the base class for classes that implement a constraint on calibration solutions....
Definition: Constraint.h:27
Definition: AmplitudeOnlyConstraint.h:12
aocommon::xt::Span< std::complex< double >, 4 > SolutionSpan
Definition: Solutions.h:20