12 static ProfileCheckMaker<ProfileCheckBackgroundWindSpeed>
26 const std::vector <float> &uObs =
28 const std::vector <float> &uObsErr =
30 const std::vector <float> &uBkg =
32 const std::vector <float> &uBkgErr =
34 std::vector <float> &uPGE =
36 std::vector <float> &uPGEBd =
38 std::vector <int> &uFlags =
40 const std::vector <float> &vObs =
42 const std::vector <float> &vObsErr =
44 const std::vector <float> &vBkg =
46 const std::vector <float> &vBkgErr =
48 std::vector <float> &vPGE =
50 std::vector <float> &vPGEBd =
52 std::vector <int> &vFlags =
54 const std::vector <int> &timeFlags =
57 if (!oops::allVectorsSameNonZeroSize(uObs, uObsErr, uBkg, uBkgErr,
59 vObs, vObsErr, vBkg, vBkgErr,
60 vPGE, vFlags, timeFlags)) {
61 oops::Log::warning() <<
"At least one vector is the wrong size. "
62 <<
"Check will not be performed." << std::endl;
63 oops::Log::warning() <<
"Vector sizes: "
64 << oops::listOfVectorSizes(uObs, uObsErr, uBkg, uBkgErr,
66 vObs, vObsErr, vBkg, vBkgErr,
67 vPGE, vFlags, timeFlags)
76 for (
int jlev = 0; jlev < numProfileLevels; ++jlev) {
78 uPGE[jlev] = 0.5 + 0.5 * uPGE[jlev];
Options controlling the operation of the ConventionalProfileProcessing filter.
oops::Parameter< float > BkCheck_PdBad_uv
Prior probability of 'bad' observations for u and v.
ProbabilityOfGrossErrorParameters PGEParameters
Parameters related to PGE calculations.
oops::Parameter< bool > modellevels
Have the observation and model values been averaged onto model levels?
void runCheck(ProfileDataHandler &profileDataHandler) override
Run check.
ProfileCheckBackgroundWindSpeed(const ConventionalProfileProcessingParameters &options)
Profile QC checker base class.
const ConventionalProfileProcessingParameters & options_
Configurable parameters.
Retrieve and store data for individual profiles. To do this, first the vector of values in the entire...
std::vector< T > & get(const std::string &fullname)
int getNumProfileLevels() const
Return number of levels to which QC checks should be applied.
std::vector< float > & getObsDiag(const std::string &variableName)
Get ObsDiags for a particular profile.
@ InterpolationFlag
Interpolation check flag.
@ PermRejectFlag
Blacklisted data.
static ProfileCheckMaker< ProfileCheckBackgroundWindSpeed > makerProfileCheckBackgroundWindSpeed_("BackgroundWindSpeed")
void BayesianPGEUpdate(const ProbabilityOfGrossErrorParameters &options, const std::vector< float > &obsVal, const std::vector< float > &obsErr, const std::vector< float > &bkgVal, const std::vector< float > &bkgErr, const std::vector< float > &PdBad, const bool ModelLevels, std::vector< int > &flags, std::vector< float > &PGE, std::vector< float > &PGEBd, float ErrVarMax, const std::vector< float > *obsVal2, const std::vector< float > *bkgVal2)
Bayesian update of probability of gross error (PGE)
static constexpr const char *const bkgerr_eastward_wind
static constexpr const char *const qcflags_eastward_wind
static constexpr const char *const bkgerr_northward_wind
static constexpr const char *const obserr_eastward_wind
static constexpr const char *const hofx_northward_wind
static constexpr const char *const qcflags_northward_wind
static constexpr const char *const pge_northward_wind
static constexpr const char *const pgebd_northward_wind
static constexpr const char *const obs_northward_wind
static constexpr const char *const obs_eastward_wind
static constexpr const char *const qcflags_time
static constexpr const char *const hofx_eastward_wind
static constexpr const char *const pgebd_eastward_wind
static constexpr const char *const obserr_northward_wind
static constexpr const char *const pge_eastward_wind