|
| MetOfficeBuddyCheck (ioda::ObsSpace &obsdb, const Parameters_ ¶meters, std::shared_ptr< ioda::ObsDataVector< int > > flags, std::shared_ptr< ioda::ObsDataVector< float > > obserr) |
|
| ~MetOfficeBuddyCheck () override |
|
| FilterBase (ioda::ObsSpace &, const FilterParametersBaseWithAbstractAction ¶meters, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >) |
|
| FilterBase (ioda::ObsSpace &, const eckit::Configuration &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >) |
|
| ~FilterBase () |
|
| ObsProcessorBase (ioda::ObsSpace &, bool deferToPost, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >) |
|
| ~ObsProcessorBase () |
|
void | preProcess () override |
|
void | priorFilter (const GeoVaLs &) override |
|
void | postFilter (const ioda::ObsVector &, const ioda::ObsVector &, const ObsDiagnostics &) override |
|
oops::Variables | requiredVars () const override |
|
oops::Variables | requiredHdiagnostics () const override |
|
|
void | print (std::ostream &) const override |
|
void | applyFilter (const std::vector< bool > &, const Variables &, std::vector< std::vector< bool >> &) const override |
|
int | qcFlag () const override |
|
Variable | backgroundErrorVariable (const Variable &filterVariable) const |
| Return the name of the variable containing the background error estimate of the specified filter variable. More...
|
|
std::vector< size_t > | getValidObservationIds (const std::vector< bool > &apply, const boost::optional< Eigen::ArrayXXi > &profileIndex) const |
| Returns a vector of IDs of all observations that should be buddy-checked. More...
|
|
MetaData | collectMetaData (const boost::optional< Eigen::ArrayXXi > &profileIndex) const |
| Collects and returns metadata of all observations. More...
|
|
std::vector< int > | getStationIds () const |
| Returns a vector of integer-valued station IDs, obtained from the source indicated by the filter parameters. More...
|
|
std::vector< float > | calcBackgroundErrorHorizontalCorrelationScales (const std::vector< size_t > &validObsIds, const std::vector< float > &latitudes) const |
| Calculates and returns background error correlation scales at observation locations. More...
|
|
std::vector< bool > | flagAndPrintVerboseObservations (const std::vector< size_t > &validObsIds, const std::vector< float > &latitudes, const std::vector< float > &longitudes, const std::vector< util::DateTime > ×, const std::vector< float > *pressures, const std::vector< int > &stationIds, const std::vector< float > &bgErrorHorizCorrScales) const |
| Identifies observations whose buddy checks should be logged. More...
|
|
void | checkScalarData (const std::vector< MetOfficeBuddyPair > &pairs, const std::vector< int > &flags, const std::vector< bool > &verbose, const std::vector< float > &bgErrorHorizCorrScales, const std::vector< int > &stationIds, const std::vector< util::DateTime > &datetimes, const Eigen::ArrayXXf *pressures, const Eigen::ArrayXXf &obsValues, const Eigen::ArrayXXf &obsErrors, const Eigen::ArrayXXf &bgValues, const Eigen::ArrayXXf &bgErrors, Eigen::ArrayXXf &pges) const |
| Buddy check for scalar quantities. More...
|
|
void | checkVectorData (const std::vector< MetOfficeBuddyPair > &pairs, const std::vector< int > &flags, const std::vector< bool > &verbose, const std::vector< float > &bgErrorHorizCorrScales, const std::vector< int > &stationIds, const std::vector< util::DateTime > &datetimes, const Eigen::ArrayXXf *pressures, const Eigen::ArrayXXf &uObsValues, const Eigen::ArrayXXf &vObsValues, const Eigen::ArrayXXf &obsErrors, const Eigen::ArrayXXf &uBgValues, const Eigen::ArrayXXf &vBgValues, const Eigen::ArrayXXf &bgErrors, Eigen::ArrayXXf &pges) const |
| Buddy check for vector (two-dimensional) quantities. More...
|
|
void | flagRejectedObservations (const Variables &filtervars, const std::map< std::string, std::vector< float >> &grossErrProbsByVarName, std::vector< std::vector< bool >> &flagged) const |
|
Met Office's implementation of the buddy check.
The filter cross-checks observations taken at nearby locations against each other, updating their gross error probabilities (PGEs) and rejecting observations whose PGE exceeds a threshold specified in the filter parameters.
Variables to be checked should be specified using the "filter variables" YAML option, supporting surface (single-level) and multi-level variables. Variables can be either scalar or vector (with two Cartesian components, such as the eastward and northward wind components). In the latter case the two components need to specified one after the other in the "filter variables" list, with the first component having the first_component_of_two
option set to true. Example:
filter variables:
- name: air_temperature
- name: eastward_wind
options:
first_component_of_two: true
- name: northward_wind
See MetOfficeBuddyCheckParameters for the documentation of the other available parameters.
This filter assumes background error estimates for each filter variable var
can be retrieved from the var_background_error
ObsDiagnostic. These diagnostics are typically produced using the BackgroundErrorVertInterp or BackgroundErrorIdentity operators. To make sure these operators are applied in addition to the "main" operator calculating model equivalents of observations, instruct the system to use a Composite operator with two or more components; for instance,
obs operator:
name: Composite
components:
# operator used to evaluate H(x)
- name: Identity
# operator used to evaluate background errors
- name: BackgroundErrorIdentity
Definition at line 82 of file src/ufo/filters/MetOfficeBuddyCheck.h.