File: structures.h

package info (click to toggle)
aoflagger 3.4.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,960 kB
  • sloc: cpp: 83,076; python: 10,187; sh: 260; makefile: 178
file content (68 lines) | stat: -rw-r--r-- 1,868 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#ifndef AOFLAGGER_STRUCTURES_H
#define AOFLAGGER_STRUCTURES_H

#include "../structures/image2d.h"
#include "../structures/mask2d.h"
#include "../structures/timefrequencymetadata.h"

#include "../quality/histogramcollection.h"
#include "../quality/statisticscollection.h"

#include <memory>
#include <vector>

namespace aoflagger {

class FlagMaskData {
 public:
  explicit FlagMaskData(Mask2DPtr theMask) : mask(theMask) {}

  Mask2DPtr mask;
};

class ImageSetData {
 public:
  explicit ImageSetData(size_t initialSize)
      : images(initialSize),
        hasAntennas(false),
        hasInterval(false),
        hasBand(false),
        antenna1(0),
        antenna2(0),
        interval(0),
        band(0) {}

  std::vector<Image2DPtr> images;
  bool hasAntennas, hasInterval, hasBand;
  size_t antenna1, antenna2, interval, band;
};

class QualityStatisticsDataImp {
 public:
  QualityStatisticsDataImp(const double* _scanTimes, size_t nScans,
                           size_t nPolarizations, bool _computeHistograms)
      : scanTimes(_scanTimes, _scanTimes + nScans),
        statistics(nPolarizations),
        histograms(nPolarizations),
        computeHistograms(_computeHistograms) {}
  std::vector<double> scanTimes;
  StatisticsCollection statistics;
  HistogramCollection histograms;
  bool computeHistograms;
};

class QualityStatisticsData {
 public:
  QualityStatisticsData(const double* _scanTimes, size_t nScans,
                        size_t nPolarizations, bool computeHistograms)
      : _implementation(new QualityStatisticsDataImp(
            _scanTimes, nScans, nPolarizations, computeHistograms)) {}
  explicit QualityStatisticsData(
      std::shared_ptr<QualityStatisticsDataImp> implementation)
      : _implementation(implementation) {}
  std::shared_ptr<QualityStatisticsDataImp> _implementation;
};

}  // namespace aoflagger

#endif