UFO
HistoryCheckParameters.h
Go to the documentation of this file.
1 /*
2  * (C) Crown Copyright 2021 Met Office
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 #ifndef UFO_FILTERS_HISTORYCHECKPARAMETERS_H_
8 #define UFO_FILTERS_HISTORYCHECKPARAMETERS_H_
9 
10 #include <utility>
11 
12 #include "ioda/ObsSpaceParameters.h"
13 
14 #include "oops/util/Duration.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 
23 
24 namespace ufo {
25 
26 /// \brief Options controlling the operation of history check filter.
28  OOPS_CONCRETE_PARAMETERS(HistoryCheckParameters, TrackCheckUtilsParameters)
29 
30  public:
31  /// Surface observation subtype determining if the track and/or stuck check could be run
32  /// \todo It is possible to use this to decide on the window length. Should the manual entry
33  /// method be kept?
34  oops::RequiredParameter<SurfaceObservationSubtype> surfaceObservationSubtype{
35  "input category", this};
36 
37  /// Amount of time before start of assimilation window to collect for the history check
38  oops::RequiredParameter<util::Duration> timeBeforeStartOfWindow {
39  "time before start of window", this
40  };
41 
42  /// The options for running the ship track check filter which can be optionally run, should the
43  /// subtype not be LNDSYN/LNDSYB. These must be filled in in order for the track filter to run.
44  oops::OptionalParameter<TrackCheckShipCoreParameters> trackCheckShipParameters {
45  "ship track check parameters", this
46  };
47 
48  /// The options for running the stuck check filter which can be optionally run, should the
49  /// subtype not be TEMP/BATHY/TESAC/BUOYPROF. These must be filled in in order for the stuck
50  /// filter to run.
51  oops::OptionalParameter<StuckCheckCoreParameters> stuckCheckParameters {
52  "stuck check parameters", this
53  };
54 
55  /// Creates a new obs space with the wider window that is determined by the observation subtype.
56  /// Needs: name (can be set with setValue), simulated variables, obsdatain.obsfile.
57  oops::RequiredParameter<ioda::ObsTopLevelParameters> largerObsSpace {
58  "obs space", this
59  };
60 
61  /// Controls whether all of the larger obs space's variables are reset to match the primary
62  /// obs space's when filter is run. Used for unit testing (esp. stuck check portions).
63  oops::Parameter<bool> resetLargerObsSpaceVariables {
64  "reset larger obs space variables", false, this
65  };
66 
67  /// Maximum number of characters for a string-labelled station id.
68  /// This is used to ensure unique integer hashes if station ids are string labels.
69  oops::Parameter<int> stationIdMaxStringLength {
70  "station id max string length", 24, this
71  };
72 };
73 
74 } // namespace ufo
75 
76 #endif // UFO_FILTERS_HISTORYCHECKPARAMETERS_H_
Options controlling the operation of history check filter.
oops::OptionalParameter< StuckCheckCoreParameters > stuckCheckParameters
oops::Parameter< bool > resetLargerObsSpaceVariables
oops::Parameter< int > stationIdMaxStringLength
oops::RequiredParameter< ioda::ObsTopLevelParameters > largerObsSpace
oops::RequiredParameter< SurfaceObservationSubtype > surfaceObservationSubtype
oops::RequiredParameter< util::Duration > timeBeforeStartOfWindow
Amount of time before start of assimilation window to collect for the history check.
oops::OptionalParameter< TrackCheckShipCoreParameters > trackCheckShipParameters
Options controlling the operation of the track check filter.
Definition: RunCRTM.h:27