UFO
|
Options controlling the operation of the Gaussian_Thinning filter. More...
#include <GaussianThinningParameters.h>
Public Member Functions | |
void | deserialize (util::CompositePath &path, const eckit::Configuration &config) override |
Reimplemented to detect incompatible options. More... | |
![]() | |
const FilterActionParametersBase & | action () const override |
Return parameters defining the action performed on observations flagged by the filter. More... | |
Public Attributes | |
oops::Parameter< float > | horizontalMesh {"horizontal_mesh", defaultHorizontalMesh(), this} |
oops::Parameter< bool > | useReducedHorizontalGrid {"use_reduced_horizontal_grid", true, this} |
oops::OptionalParameter< bool > | roundHorizontalBinCountToNearest |
oops::Parameter< float > | verticalMesh {"vertical_mesh", -1.0f, this} |
oops::Parameter< float > | verticalMin {"vertical_min", 100.0f, this} |
Lower bound of the vertical coordinate interval split into cells of size vertical_mesh . More... | |
oops::Parameter< float > | verticalMax {"vertical_max", 110000.0f, this} |
oops::Parameter< std::string > | verticalCoord {"vertical_coordinate", "air_pressure", this} |
Observation vertical coordinate. More... | |
oops::OptionalParameter< util::Duration > | timeMesh {"time_mesh", this} |
oops::OptionalParameter< util::DateTime > | timeMin {"time_min", this} |
oops::OptionalParameter< util::DateTime > | timeMax {"time_max", this} |
oops::OptionalParameter< Variable > | categoryVariable {"category_variable", this} |
oops::OptionalParameter< Variable > | priorityVariable {"priority_variable", this} |
oops::OptionalParameter< DistanceNorm > | distanceNorm {"distance_norm", this} |
oops::Parameter< bool > | opsCompatibilityMode {"ops_compatibility_mode", false, this} |
oops::Parameter< bool > | thinIfAnyFilterVariablesAreValid {"thin_if_any_filter_variables_are_valid", true, this} |
![]() | |
oops::OptionalParameter< std::vector< Variable > > | filterVariables |
oops::Parameter< std::vector< WhereParameters > > | where {"where", {}, this} |
oops::Parameter< bool > | deferToPost {"defer to post", false, this} |
Static Private Member Functions | |
static float | defaultHorizontalMesh () |
Options controlling the operation of the Gaussian_Thinning filter.
Definition at line 55 of file GaussianThinningParameters.h.
|
inlinestaticprivate |
Definition at line 182 of file GaussianThinningParameters.h.
|
override |
Reimplemented to detect incompatible options.
Definition at line 16 of file GaussianThinningParameters.cc.
oops::OptionalParameter<Variable> ufo::GaussianThinningParameters::categoryVariable {"category_variable", this} |
A string-valued or integer-valued variable. Observations with different values of that variable are thinned separately.
Note: The filter will automatically detect if the chosen variable was also used to group observations into records when the ObsSpace was constructed, and if so, avoid exchanging data with other MPI processes, since in these circumstances each process can thin its observations independently from others.
The variable used to group observations into records can be set with the obs space.obsdatain.obsgrouping.group variable
YAML option.
Definition at line 125 of file GaussianThinningParameters.h.
oops::OptionalParameter<DistanceNorm> ufo::GaussianThinningParameters::distanceNorm {"distance_norm", this} |
Determines which of the highest-priority observations lying in a cell is retained.
Allowed values:
geodesic:
retain the observation closest to the cell centre in the horizontal direction (the vertical coordinate and time are ignored)maximum:
retain the observation lying furthest from the cell's bounding box in the system of coordinates in which the cell is a unit cube (all dimensions along which thinning is enabled are taken into account).Defaults to geodesic
unless the ops_compatibility_mode
option is enabled, in which case it's set to maximum
.
Definition at line 146 of file GaussianThinningParameters.h.
oops::Parameter<float> ufo::GaussianThinningParameters::horizontalMesh {"horizontal_mesh", defaultHorizontalMesh(), this} |
Cell size (in km) along the meridians. Thinning in the horizontal direction is disabled if this parameter is negative.
Definition at line 70 of file GaussianThinningParameters.h.
oops::Parameter<bool> ufo::GaussianThinningParameters::opsCompatibilityMode {"ops_compatibility_mode", false, this} |
Set this option to true
to make the filter produce identical results as the Ops_Thinning subroutine from the Met Office OPS system when both are run serially (on a single process).
The filter behavior is modified in several ways:
round_horizontal_bin_count_to_nearest
option is set to true
.distance_norm
option is set to maximum
.time_min
, time_max
], [pressure_min
, pressure_max
] and [0, 360] degrees, respectively. This may cause observations lying at the boundaries of the latter intervals to be put in bins of their own, which is normally undesirable.Definition at line 172 of file GaussianThinningParameters.h.
oops::OptionalParameter<Variable> ufo::GaussianThinningParameters::priorityVariable {"priority_variable", this} |
Variable storing observation priorities. Among all observations in a cell, only those with the highest priority are considered as candidates for retaining. If not specified, all observations are assumed to have equal priority.
Definition at line 132 of file GaussianThinningParameters.h.
oops::OptionalParameter<bool> ufo::GaussianThinningParameters::roundHorizontalBinCountToNearest |
True to set the number of zonal bands so that the band width is as close as possible to horizontal_mesh
, and the number of bins in each zonal band so that the bin width in the zonal direction is as close as possible to that in the meridional direction. False to set the number of zonal bands so that the band width is as small as possible, but no smaller than horizontal_mesh
, and the bin width in the zonal direction is as small as possible, but no smaller than in the meridional direction.
Defaults to false
unless the ops_compatibility_mode
option is enabled, in which case it's set to true
.
Definition at line 83 of file GaussianThinningParameters.h.
oops::Parameter<bool> ufo::GaussianThinningParameters::thinIfAnyFilterVariablesAreValid {"thin_if_any_filter_variables_are_valid", true, this} |
Option to choose how to treat observations where there are multiple filter variables. If true, treats an observation location as valid if any filter variables have not been rejected. If false, observations are treated as valid only if all filter variables have passed QC. This is an optional parameter, if omitted the default value is true.
Definition at line 179 of file GaussianThinningParameters.h.
oops::OptionalParameter<util::DateTime> ufo::GaussianThinningParameters::timeMax {"time_max", this} |
Upper bound of the time interval split into cells of size time_mesh
. This parameter is rounded upwards to the nearest multiple of time_mesh
starting from time_min
. Temporal thinning is disabled if this parameter is not specified.
Definition at line 111 of file GaussianThinningParameters.h.
oops::OptionalParameter<util::Duration> ufo::GaussianThinningParameters::timeMesh {"time_mesh", this} |
Cell size in the temporal direction. Temporal thinning is disabled if this this parameter is not specified or set to 0.
Definition at line 104 of file GaussianThinningParameters.h.
oops::OptionalParameter<util::DateTime> ufo::GaussianThinningParameters::timeMin {"time_min", this} |
Lower bound of the time interval split into cells of size time_mesh
. Temporal thinning is disabled if this parameter is not specified.
Definition at line 107 of file GaussianThinningParameters.h.
oops::Parameter<bool> ufo::GaussianThinningParameters::useReducedHorizontalGrid {"use_reduced_horizontal_grid", true, this} |
True to use a reduced grid, with fewer cells at high latitudes. False to use a regular grid, with the same number of cells at all latitudes.
Definition at line 73 of file GaussianThinningParameters.h.
oops::Parameter<std::string> ufo::GaussianThinningParameters::verticalCoord {"vertical_coordinate", "air_pressure", this} |
Observation vertical coordinate.
Definition at line 98 of file GaussianThinningParameters.h.
oops::Parameter<float> ufo::GaussianThinningParameters::verticalMax {"vertical_max", 110000.0f, this} |
Upper bound of the vertical coordinate interval split into cells of size vertical_mesh
. This parameter is rounded upwards to the nearest multiple of vertical_mesh
starting from vertical_min
.
Definition at line 96 of file GaussianThinningParameters.h.
oops::Parameter<float> ufo::GaussianThinningParameters::verticalMesh {"vertical_mesh", -1.0f, this} |
Cell size in the vertical direction. Thinning in the vertical direction is disabled if this parameter is not specified or negative.
Definition at line 90 of file GaussianThinningParameters.h.
oops::Parameter<float> ufo::GaussianThinningParameters::verticalMin {"vertical_min", 100.0f, this} |
Lower bound of the vertical coordinate interval split into cells of size vertical_mesh
.
Definition at line 92 of file GaussianThinningParameters.h.