UFO
TrackCheckShipParameters.h
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2021 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_TRACKCHECKSHIPPARAMETERS_H_
9 #define UFO_FILTERS_TRACKCHECKSHIPPARAMETERS_H_
10 
11 #include <string>
12 
13 #include "oops/util/Duration.h"
14 #include "oops/util/parameters/OptionalParameter.h"
15 #include "oops/util/parameters/Parameter.h"
16 #include "oops/util/parameters/Parameters.h"
17 #include "oops/util/parameters/ParameterTraits.h"
18 #include "oops/util/parameters/RequiredParameter.h"
19 
21 
22 namespace ufo {
23 
24 class TrackCheckShipCoreParameters : public oops::Parameters {
25  OOPS_CONCRETE_PARAMETERS(TrackCheckShipCoreParameters, Parameters)
26 
27  public:
28  /// Assumed temporal resolution of the observations, i.e. absolute accuracy of the reported
29  /// observation times.
30  oops::RequiredParameter<util::Duration> temporalResolution {
31  "temporal resolution", this
32  };
33 
34  /// Assumed spatial resolution (km) of the observations, i.e. absolute accuracy of the
35  /// reported positions.
36  ///
37  /// Instantaneous speeds are estimated conservatively with the formula
38  ///
39  /// speed_estimate = (reported_distance - spatial resolution) /
40  /// (reported_time + temporal resolution).
41  oops::RequiredParameter<double> spatialResolution {
42  "spatial resolution (km)", this
43  };
44 
45  /// Maximum speed (before marking as fast) in m/s
46  oops::RequiredParameter<double> maxSpeed {
47  "max speed (m/s)", this
48  };
49 
50  /// The fraction of track observations that must be flagged in the track filter
51  /// for the full track to be rejected.
52  oops::RequiredParameter<float> rejectionThreshold {
53  "rejection threshold", this
54  };
55 
56  /// \brief If \p earlyBreakCheck set to true, check will stop early based on the number
57  /// of short-spaced, fast, and bended segments of the track
58  oops::RequiredParameter<bool> earlyBreakCheck {
59  "early break check", this
60  };
61 };
62 
63 /// \brief Options controlling the operation of the ship track check filter.
65  OOPS_CONCRETE_PARAMETERS(TrackCheckShipParameters, TrackCheckUtilsParameters)
66 
67  public:
69 
70  /// The start of an observation window where trace output should be produced. If blank,
71  /// the start of the track will be treated as the start of this window.
72  oops::OptionalParameter<float> debugWindowStart {
73  "debug window start", this
74  };
75 
76  /// The end of an observation window where trace output should be produced. If blank,
77  /// the end of the track will be treated as the end of this window.
78  oops::OptionalParameter<float> debugWindowEnd {
79  "debug window end", this
80  };
81 
82  /// The type of input source. This affects the treatment of tracks
83  /// with large numbers of short segments between observations.
84  oops::Parameter<SurfaceObservationSubtype> inputCategory {
85  "input category", SurfaceObservationSubtype::SHPSYN, this
86  };
87 
88 
89  /// \brief To be set to \p true if the filter's unit tests are being run
90  oops::Parameter<bool> testingMode {
91  "unit testing mode", false, this
92  };
93 
94  /// \brief To be set to \p true if the filter's single-segment comparison test is being run.
95  oops::Parameter<bool> comparisonTesting {
96  "comparison test", false, this
97  };
98 };
99 
100 } // namespace ufo
101 
102 #endif // UFO_FILTERS_TRACKCHECKSHIPPARAMETERS_H_
oops::RequiredParameter< double > spatialResolution
oops::RequiredParameter< float > rejectionThreshold
oops::RequiredParameter< bool > earlyBreakCheck
If earlyBreakCheck set to true, check will stop early based on the number of short-spaced,...
oops::RequiredParameter< util::Duration > temporalResolution
oops::RequiredParameter< double > maxSpeed
Maximum speed (before marking as fast) in m/s.
Options controlling the operation of the ship track check filter.
oops::OptionalParameter< float > debugWindowStart
oops::Parameter< bool > testingMode
To be set to true if the filter's unit tests are being run.
TrackCheckShipCoreParameters core
oops::OptionalParameter< float > debugWindowEnd
oops::Parameter< SurfaceObservationSubtype > inputCategory
oops::Parameter< bool > comparisonTesting
To be set to true if the filter's single-segment comparison test is being run.
Options controlling the operation of the track check filter.
Definition: RunCRTM.h:27