DP3
SolutionWriter.h
Go to the documentation of this file.
1 // Copyright (C) 2021 ASTRON (Netherlands Institute for Radio Astronomy)
2 // SPDX-License-Identifier: GPL-3.0-or-later
3 
4 #ifndef DP3_DDECAL_SOLUTIONWRITER_H
5 #define DP3_DDECAL_SOLUTIONWRITER_H
6 
8 
9 #include "base/CalType.h"
10 #include "base/Direction.h"
11 
12 #include <schaapcommon/h5parm/h5parm.h>
13 
14 namespace dp3 {
15 namespace ddecal {
16 
18  public:
23  explicit SolutionWriter(const std::string& filename);
24 
29  const std::vector<std::string>& all_antenna_names,
30  const std::vector<std::array<double, 3>>& all_antenna_positions);
31 
40  void Write(
41  const std::vector<std::vector<std::vector<std::complex<double>>>>&
42  solutions,
43  const std::vector<std::vector<std::vector<ddecal::ConstraintResult>>>&
44  constraint_solutions,
45  double start_time, double end_time, double ms_timestep_duration,
46  size_t n_interval_timesteps,
47  const std::vector<size_t>& solutions_per_direction, base::CalType mode,
48  const std::vector<std::string>& used_antenna_names,
49  const std::vector<base::Direction>& source_directions,
50  const std::vector<std::vector<std::string>>& directions,
51  const std::vector<double>& chan_freqs,
52  const std::vector<double>& chan_block_freqs, const std::string& history);
53 
54  private:
59  void WriteDirect(
60  const std::vector<std::vector<std::vector<std::complex<double>>>>&
61  solutions,
62  const std::vector<std::vector<std::vector<ddecal::ConstraintResult>>>&
63  constraint_solutions,
64  double start_time, double end_time, double ms_timestep_duration,
65  double solution_interval, base::CalType mode,
66  const std::vector<std::string>& used_antenna_names,
67  const std::vector<base::Direction>& source_directions,
68  const std::vector<std::vector<std::string>>& directions,
69  const std::vector<double>& chan_freqs,
70  const std::vector<double>& chan_block_freqs, const std::string& history);
71 
72  void WriteSolverResults(
73  const std::vector<std::vector<std::vector<std::complex<double>>>>&
74  solutions,
75  base::CalType mode, const std::vector<std::string>& used_antenna_names,
76  const std::vector<base::Direction>& source_directions,
77  const std::vector<std::vector<std::string>>& directions,
78  const std::vector<double>& chan_freqs,
79  const std::vector<double>& chan_block_freqs, const std::string& history,
80  const std::vector<double>& solution_times);
81 
82  void WriteConstraintResults(
83  const std::vector<std::vector<std::vector<ddecal::ConstraintResult>>>&
84  constraint_solutions,
85  base::CalType mode, const std::vector<std::string>& used_antenna_names,
86  const std::vector<base::Direction>& source_directions,
87  const std::vector<std::vector<std::string>>& directions,
88  const std::vector<double>& chan_freqs,
89  const std::vector<double>& chan_block_freqs, const std::string& history,
90  const std::vector<double>& solution_times);
91 
92  schaapcommon::h5parm::H5Parm h5parm_;
93 };
94 
95 } // namespace ddecal
96 } // namespace dp3
97 
98 #endif
Definition: SolutionWriter.h:17
SolutionWriter(const std::string &filename)
void Write(const std::vector< std::vector< std::vector< std::complex< double >>>> &solutions, const std::vector< std::vector< std::vector< ddecal::ConstraintResult >>> &constraint_solutions, double start_time, double end_time, double ms_timestep_duration, size_t n_interval_timesteps, const std::vector< size_t > &solutions_per_direction, base::CalType mode, const std::vector< std::string > &used_antenna_names, const std::vector< base::Direction > &source_directions, const std::vector< std::vector< std::string >> &directions, const std::vector< double > &chan_freqs, const std::vector< double > &chan_block_freqs, const std::string &history)
void AddAntennas(const std::vector< std::string > &all_antenna_names, const std::vector< std::array< double, 3 >> &all_antenna_positions)
CalType
Definition: CalType.h:11
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53