File: timefrequencystatistics.cpp

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 (39 lines) | stat: -rw-r--r-- 977 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
#include "timefrequencystatistics.h"

#include <cmath>
#include <string>
#include <sstream>

namespace algorithms {

TimeFrequencyStatistics::TimeFrequencyStatistics(const TimeFrequencyData& data)
    : _data(data) {}

num_t TimeFrequencyStatistics::GetFlaggedRatio() {
  size_t total = 0, flagged = 0;

  for (size_t i = 0; i < _data.MaskCount(); ++i) {
    const Mask2DCPtr mask = _data.GetMask(i);
    flagged += mask->GetCount<true>();
    total += mask->Width() * mask->Height();
  }
  if (total != 0)
    return (num_t)flagged / (num_t)total;
  else
    return 0;
}

std::string TimeFrequencyStatistics::FormatRatio(num_t ratio) {
  std::stringstream s;
  if (ratio > 0.01)
    s << (round(ratio * 10000.0) / 100.0) << "%";
  else if (ratio > 0.001)
    s << (round(ratio * 100000.0) / 1000.0) << "%";
  else if (ratio > 0.0001)
    s << (round(ratio * 1000000.0) / 10000.0) << "%";
  else
    s << (ratio * 100.0) << "%";
  return s.str();
}

}  // namespace algorithms