UFO
TrackCheckParameters.h
Go to the documentation of this file.
1
/*
2
* (C) Copyright 2019 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_TRACKCHECKPARAMETERS_H_
9
#define UFO_FILTERS_TRACKCHECKPARAMETERS_H_
10
11
#include <map>
12
#include <string>
13
14
#include "eckit/exception/Exceptions.h"
15
#include "oops/util/Duration.h"
16
#include "oops/util/parameters/OptionalParameter.h"
17
#include "oops/util/parameters/Parameter.h"
18
#include "oops/util/parameters/Parameters.h"
19
#include "oops/util/parameters/ParameterTraits.h"
20
#include "
ufo/filters/TrackCheckUtilsParameters.h
"
21
#include "
ufo/utils/Constants.h
"
22
#include "
ufo/utils/parameters/ParameterTraitsVariable.h
"
23
24
namespace
eckit
{
25
class
Configuration;
26
}
27
28
namespace
ufo
{
29
30
/// \brief Options controlling the operation of the track check filter.
31
class
TrackCheckParameters
:
public
TrackCheckUtilsParameters
{
32
OOPS_CONCRETE_PARAMETERS(
TrackCheckParameters
,
TrackCheckUtilsParameters
)
33
34
public
:
35
/// Assumed temporal resolution of the observations, i.e. absolute accuracy of the reported
36
/// observation times.
37
oops::Parameter<util::Duration>
temporalResolution
{
38
"temporal_resolution"
, util::Duration(
"PT1M"
),
this
};
39
/// Assumed spatial resolution of the observations (in km), i.e. absolute accuracy of the
40
/// reported positions.
41
///
42
/// Instantaneous speeds are estimated conservatively with the formula
43
///
44
/// speed_estimate = (reported_distance - spatial_resolution) /
45
/// (reported_time + temporal_resolution).
46
oops::Parameter<float>
spatialResolution
{
47
"spatial_resolution"
, 1.0f,
this
};
48
/// Controls the size of the set of observations against which each observation is compared.
49
///
50
/// Each observation O(x, t) (taken at time t and location x) is compared against the smallest
51
/// set of observations O'(x', t') immediately preceding and following O(x, t) that contains
52
/// \c num_distinct_buddies_per_direction earlier observations meeting the following conditions:
53
/// * |t' - t| > distinct_buddy_resolution_multiplier * temporal_resolution
54
/// * |x' - x| > distinct_buddy_resolution_multiplier * spatial_resolution
55
/// * O' has not yet been rejected
56
/// and the same number of later observations meeting the same conditions.
57
oops::Parameter<int>
numDistinctBuddiesPerDirection
{
58
"num_distinct_buddies_per_direction"
, 3,
this
};
59
/// Controls the size of the set of observations against which each observation is compared.
60
///
61
/// \see numDistinctBuddiesPerDirection
62
oops::Parameter<int>
distinctBuddyResolutionMultiplier
{
63
"distinct_buddy_resolution_multiplier"
, 3,
this
};
64
65
/// Maximum allowed rate of ascent and descent (Pa/s). If not set, climb rate checks are disabled.
66
oops::OptionalParameter<float>
maxClimbRate
{
"max_climb_rate"
,
this
};
67
/// Encoding of the function mapping air pressure (in Pa) to the maximum speed (in m/s)
68
/// considered to be realistic.
69
///
70
/// The function is taken to be a linear interpolation of a series of (pressure, speed) points.
71
/// The pressures and speeds at these points should be specified as keys and values of a
72
/// JSON-style map. Owing to a bug in the eckit YAML parser, the keys must be enclosed in quotes.
73
/// For example,
74
///
75
/// max_speed_interpolation_points: { "0": 900, "100000": 100 }
76
///
77
/// encodes a linear function equal to 900 m/s at 0 Pa and 100 m/s at 100000 Pa.
78
oops::Parameter<std::map<float, float>>
maxSpeedInterpolationPoints
{
79
"max_speed_interpolation_points"
, std::map<float, float>{{0.0f, 1000.0f}},
this
};
80
/// Maximum fraction of climb rate or speed estimates obtained by comparison with other
81
/// observations that are allowed to fall outside the allowed ranges before an observation is
82
/// rejected.
83
oops::Parameter<float>
rejectionThreshold
{
84
"rejection_threshold"
, 0.5f,
this
};
85
};
86
87
}
// namespace ufo
88
89
#endif // UFO_FILTERS_TRACKCHECKPARAMETERS_H_
ufo::TrackCheckParameters::spatialResolution
oops::Parameter< float > spatialResolution
Definition:
TrackCheckParameters.h:46
ufo::TrackCheckParameters
Options controlling the operation of the track check filter.
Definition:
TrackCheckParameters.h:31
ufo
Definition:
RunCRTM.h:27
ufo::TrackCheckParameters::numDistinctBuddiesPerDirection
oops::Parameter< int > numDistinctBuddiesPerDirection
Definition:
TrackCheckParameters.h:57
ufo::TrackCheckParameters::maxClimbRate
oops::OptionalParameter< float > maxClimbRate
Maximum allowed rate of ascent and descent (Pa/s). If not set, climb rate checks are disabled.
Definition:
TrackCheckParameters.h:66
eckit
Forward declarations.
Definition:
ObsAtmSfcInterp.h:20
ufo::TrackCheckUtilsParameters
Options controlling the operation of the track check filter.
Definition:
TrackCheckUtilsParameters.h:22
TrackCheckUtilsParameters.h
ufo::TrackCheckParameters::maxSpeedInterpolationPoints
oops::Parameter< std::map< float, float > > maxSpeedInterpolationPoints
Definition:
TrackCheckParameters.h:78
ufo::TrackCheckParameters::temporalResolution
oops::Parameter< util::Duration > temporalResolution
Definition:
TrackCheckParameters.h:37
ufo::TrackCheckParameters::rejectionThreshold
oops::Parameter< float > rejectionThreshold
Definition:
TrackCheckParameters.h:83
Constants.h
ufo::TrackCheckParameters::distinctBuddyResolutionMultiplier
oops::Parameter< int > distinctBuddyResolutionMultiplier
Definition:
TrackCheckParameters.h:62
ParameterTraitsVariable.h
fv3-bundle
ufo
src
ufo
filters
TrackCheckParameters.h
Generated on Sat Oct 24 2020 19:14:56 for UFO by
1.8.18