UFO
TrackCheckShipDiagnostics.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2020 Met Office UK
3  *
4  * This software is licensed under the terms of the Apache Licence Version 2.0
5  * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6  */
7 
8 #ifndef UFO_FILTERS_TRACKCHECKSHIPDIAGNOSTICS_H_
9 #define UFO_FILTERS_TRACKCHECKSHIPDIAGNOSTICS_H_
10 
11 #include <utility>
12 #include <vector>
13 
15 namespace ufo {
17 {
18  typedef std::vector<TrackCheckShip::ObservationStatistics> ObsStatsVec;
20  typedef std::pair<ObsStatsVec, TrkStats> SingleTrackInitialCalculationResults;
21  typedef std::pair<std::vector<size_t>, int> FirstIterativeRemovalInfo;
22  std::vector<SingleTrackInitialCalculationResults> multipleTrackInitialCalculationResults_;
23  std::vector<bool> earlyBreaks_;
24  std::vector<FirstIterativeRemovalInfo> firstIterativeRemovalInfo_;
26  timeSum_; // category nine
30  public:
31  /// \brief Updates the collection of track diagnostics to include
32  /// the calculated values from a new track.
34  singleTrackInitalCalcResults) {
35  multipleTrackInitialCalculationResults_.push_back(singleTrackInitalCalcResults);
36  }
37  /// \brief Returns the full collection of track diagnostics, separated by
38  /// track.
39  const std::vector<SingleTrackInitialCalculationResults> &getInitialCalculationResults() const {
41  }
42 
43  /// \brief Stores the indicator as to if the track was deemed not worth
44  /// checking after the initial calculations were performed
45  void storeEarlyBreakResult(bool result) {
46  earlyBreaks_.push_back(result);
47  }
48  /// \brief Returns the collection of indicators as to which tracks were
49  /// deemed not worth checking.
50  const std::vector<bool> &getEarlyBreaks() const {
51  return earlyBreaks_;
52  }
53 
54  /// \brief Stores the observation(s) removed on the first iteration of the main removal loop.
56  const FirstIterativeRemovalInfo &firstIterativeRemovalInfo)
57  {
58  firstIterativeRemovalInfo_.push_back(firstIterativeRemovalInfo);
59  }
60 
61  const std::vector<FirstIterativeRemovalInfo> &getFirstIterativeRemovalInfo() const
62  {
64  }
65 
66  std::vector<double> getDistanceSum() const {
67  return distanceSum_;
68  }
69 
70  void storeDistanceSum(const double &distanceSum) {
71  distanceSum_.push_back(distanceSum);
72  }
73 
74  std::vector<double> getDistancePrevObsOmitted() const {
76  }
77 
78  void storeDistancePrevObsOmitted(double distancePrevObsOmitted) {
79  distancePrevObsOmitted_.push_back(distancePrevObsOmitted);
80  }
81 
82  std::vector<double> getDistanceCurrentObsOmitted() const {
84  }
85  void storeDistanceCurrentObsOmitted(const double &distanceCurrentObsOmitted) {
86  distanceCurrentObsOmitted_.push_back(distanceCurrentObsOmitted);
87  }
88  std::vector<double> getTimeSum() const {
89  return timeSum_;
90  }
91  void storeTimeSum(const double &timeSum) {
92  timeSum_.push_back(timeSum);
93  }
94  std::vector<double> getPreviousSegmentDistanceProportion() const {
96  }
97  void storePreviousSegmentDistanceProportion(const double &previousSegmentDistanceProportion) {
98  previousSegmentDistanceProportion_.push_back(previousSegmentDistanceProportion);
99  }
102  }
104  const double &previousObservationDistanceAveragedProportion) {
106  previousObservationDistanceAveragedProportion);
107  }
108  std::vector<double> getPreviousSegmentTimeProportion() const {
110  }
111  void storePreviousSegmentTimeProportion(const double &previousSegmentTimeProportion) {
112  previousSegmentTimeProportion_.push_back(previousSegmentTimeProportion);
113  }
114  std::vector<double> getPreviousAndFastestSegmentTimeProportion() const {
116  }
118  const double &previousAndFastestSegmentTimeProportion) {
119  previousAndFastestSegmentTimeProportion_.push_back(previousAndFastestSegmentTimeProportion);
120  }
121 };
122 } // namespace ufo
123 
124 #endif // UFO_FILTERS_TRACKCHECKSHIPDIAGNOSTICS_H_
std::vector< double > previousObservationDistanceAveragedProportion_
std::pair< ObsStatsVec, TrkStats > SingleTrackInitialCalculationResults
void storePreviousSegmentDistanceProportion(const double &previousSegmentDistanceProportion)
std::vector< double > previousSegmentTimeProportion_
std::vector< double > previousAndFastestSegmentTimeProportion_
std::vector< double > getDistanceSum() const
std::vector< double > getPreviousSegmentDistanceProportion() const
std::vector< double > distanceCurrentObsOmitted_
std::pair< std::vector< size_t >, int > FirstIterativeRemovalInfo
void storeEarlyBreakResult(bool result)
Stores the indicator as to if the track was deemed not worth checking after the initial calculations ...
void storeFirstIterativeRemovalInfo(const FirstIterativeRemovalInfo &firstIterativeRemovalInfo)
Stores the observation(s) removed on the first iteration of the main removal loop.
std::vector< FirstIterativeRemovalInfo > firstIterativeRemovalInfo_
std::vector< double > previousSegmentDistanceProportion_
std::vector< SingleTrackInitialCalculationResults > multipleTrackInitialCalculationResults_
void storePreviousSegmentTimeProportion(const double &previousSegmentTimeProportion)
std::vector< double > getTimeSum() const
std::vector< double > getDistanceCurrentObsOmitted() const
const std::vector< SingleTrackInitialCalculationResults > & getInitialCalculationResults() const
Returns the full collection of track diagnostics, separated by track.
void storeDistanceCurrentObsOmitted(const double &distanceCurrentObsOmitted)
void storeDistancePrevObsOmitted(double distancePrevObsOmitted)
TrackCheckShip::TrackStatistics TrkStats
std::vector< double > getPreviousSegmentTimeProportion() const
void storeDistanceSum(const double &distanceSum)
std::vector< double > distancePrevObsOmitted_
std::vector< double > getPreviousObservationDistanceAveragedProportion() const
const std::vector< FirstIterativeRemovalInfo > & getFirstIterativeRemovalInfo() const
void storePreviousAndFastestSegmentTimeProportion(const double &previousAndFastestSegmentTimeProportion)
void storePreviousObservationDistanceAveragedProportion(const double &previousObservationDistanceAveragedProportion)
std::vector< TrackCheckShip::ObservationStatistics > ObsStatsVec
std::vector< double > getPreviousAndFastestSegmentTimeProportion() const
const std::vector< bool > & getEarlyBreaks() const
Returns the collection of indicators as to which tracks were deemed not worth checking.
void storeInitialCalculationResults(SingleTrackInitialCalculationResults singleTrackInitalCalcResults)
Updates the collection of track diagnostics to include the calculated values from a new track.
std::vector< double > getDistancePrevObsOmitted() const
void storeTimeSum(const double &timeSum)
Definition: RunCRTM.h:27
A container for all track-wise counters and calculations that indicate the overall quality of the tra...