Go to the documentation of this file.
19 :
ProfileCheckBase(options, profileIndices, profileDataHandler, profileCheckValidator)
28 const std::vector <float> &pressures =
30 const std::vector <float> &tObs =
32 const std::vector <float> &tBkg =
34 const std::vector <float> &PstarBackgr =
36 std::vector <int> &tFlags =
38 std::vector <int> &NumAnyErrors =
40 std::vector <int> &NumSignChange =
42 std::vector <float> &tObsCorrection =
45 if (!oops::allVectorsSameNonZeroSize(pressures, tObs, tBkg, PstarBackgr,
46 tFlags, tObsCorrection)) {
47 oops::Log::warning() <<
"At least one vector is the wrong size. "
48 <<
"Check will not be performed." << std::endl;
49 oops::Log::warning() <<
"Vector sizes: "
50 << oops::listOfVectorSizes(pressures, tObs, tBkg, PstarBackgr,
51 tFlags, tObsCorrection)
56 for (
int jlev = 0; jlev < numLevelsToCheck; ++jlev) {
70 oops::Log::debug() <<
" -> Failed sign check for level " << jlev << std::endl;
80 oops::Log::debug() <<
" -> Uncorrected tObs: " << tObs[jlev] <<
"C" << std::endl;
82 << tObsCorrection[jlev] <<
"C" << std::endl;
84 << tObs[jlev] + tObsCorrection[jlev] <<
"C" << std::endl;
91 oops::Log::debug() <<
" -> Passed test but have large T difference for level "
93 <<
"P = " << pressures[jlev] * 0.01 <<
"hPa, tObs = "
static constexpr const char *const counter_NumAnyErrors
Retrieve and store data for individual profiles. To do this, first the vector of values in the entire...
const ProfileIndices & profileIndices_
Indices of profile's observations in the entire sample.
Determine indices of observations making up individual profiles. The indices are computed with respec...
ProfileDataHandler & profileDataHandler_
Profile data handler.
int getNumLevelsToCheck() const
Return number of levels to which QC checks should be applied.
oops::Parameter< float > SCheck_PstarThresh
Threshold used for Pstar difference in sign check (Pa)
static constexpr double t0c
Profile QC check validator.
Profile QC checker base class.
const ProfileConsistencyCheckParameters & options_
Configurable parameters.
void runCheck() override
Run check.
oops::Parameter< float > SCheck_PrintLargeTThresh
P threshold over which to print large T differences (Pa)
oops::Parameter< bool > SCheck_CorrectT
Correct tObs in the sign check?
static ProfileCheckMaker< ProfileCheckSign > makerProfileCheckSign_("Sign")
static constexpr const char *const obs_air_pressure
const float missingValueFloat
Missing value (float)
static constexpr const char *const hofx_air_temperature
util::Duration abs(const util::Duration &duration)
Options controlling the operation of the ProfileConsistencyChecks filter.
static constexpr const char *const PstarBackgr
static constexpr const char *const counter_NumSignChange
static constexpr const char *const obscorrection_air_temperature
ProfileCheckSign(const ProfileConsistencyCheckParameters &options, const ProfileIndices &profileIndices, ProfileDataHandler &profileDataHandler, ProfileCheckValidator &profileCheckValidator)
static constexpr const char *const qcflags_air_temperature
oops::Parameter< float > SCheck_ProfileSignTol
Tolerance used for sign check (K)
@ FinalRejectFlag
Final QC flag.
oops::Parameter< float > SCheck_tObstBkgThresh
Threshold used for |tObs - tBkg| in sign check (K)
std::vector< T > & get(const std::string &fullname)
static constexpr const char *const obs_air_temperature
@ DataCorrectFlag
Eg sign correction.