UFO
MetOfficeQCFlags.h
Go to the documentation of this file.
1 /*
2  * (C) Crown copyright 2020, Met Office
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_UTILS_METOFFICE_METOFFICEQCFLAGS_H_
9 #define UFO_UTILS_METOFFICE_METOFFICEQCFLAGS_H_
10 
11 namespace ufo {
12  /// \file QC flags used in OPS
13  /// A variety of flags are defined for entire observations,
14  /// particular elements within (generic) observations, and specific observations
15 
16 namespace MetOfficeQCFlags {
17  // Report flags for whole observations
18  // Notes:
19  // PermRejectReport = used for station list rejections
20  // SurplusReport = used for ship/airep data judged to be (almost) duplicate
21  // used for thinned buoy reports
22  // OutOfAreaReport = used for data outside model area
23  // (outside ocean mask for ocean/sst/wave analysis)
24  // used for data outside time window of analysis
26  FinalRejectReport = 1 << 0, ///< One of flags 1-6 set
27  PermRejectReport = 1 << 1, ///< Blacklisted data
28  SurplusReport = 1 << 2, ///< (Near) duplicate data
29  OutOfAreaReport = 1 << 3, ///< Outside analysis area/time
30  LandRejectReport = 1 << 4, ///< Marine ob over land
31  UsedInSuperObReport = 1 << 5, ///< Combined with other obs
32  TrackRejectReport = 1 << 6, ///< Failed track check
33  SuperObReport = 1 << 8, ///< This is a SuperOb
34  // Sonde data
35  NoPressureSensor = 1 << 13, ///< No PILOT pressure sensor
36  // Satellite wind data
37  MissingDataReport = 1 << 14, ///< Missing data
38  SatwindAltReport = 1 << 15, ///< Satwind alternative p/uv
39  // Other miscellaneous flags
40  Thin4DFlag = 1 << 17, ///< Duplicate found
41  StationListThinFlag = 1 << 18 ///< Rejected based on station list
42  };
43 
44  // Assim flags for whole observations
45  enum WholeObAssim {
46  NewReport = 1 << 0, ///< Ob not yet assimilated
47  AssimilatedReport = 1 << 1, ///< Ob already assimilated
48  };
49 
50  // Flags for individual (generic) observation elements
51  enum Elem {
52  NoAssimFlag = 1 << 23, ///< Do not use in analysis
53  FinalRejectFlag = 1 << 0, ///< Final QC flag
54  BuddyRejectFlag = 1 << 1, ///< PGE>0.5 after buddy check
55  BackRejectFlag = 1 << 2, ///< PGE>0.5 after backgr check
56  PermRejectFlag = 1 << 3, ///< Blacklisted data
57  ClimRejectFlag = 1 << 4, ///< PGE>0.5 after climat check
58  BuddyPerfFlag = 1 << 5, ///< Buddy check performed
59  BackPerfFlag = 1 << 6, ///< Background check performed
60  ClimPerfFlag = 1 << 7, ///< Climatological check perf
61  PermCorrectFlag = 1 << 8, ///< Fixed correction
62  DataCorrectFlag = 1 << 9, ///< Eg sign correction
63  ConsistencyFlag = 1 << 10, ///< Internal consistency check
64  ExtremeValueFlag = 1 << 11 ///< Extreme value check
65  };
66 
67  // Flags for surface data
68  enum Surface {
69  TendencyFlag = 1 << 12, ///< Pressure tendency check.
70  PstdRepFlag = 1 << 13, ///< Pstd reported not Pmsl.
71  PstnPrefFlag = 1 << 14, ///< Use Pstn if reported.
72  PmslUsedFlag = 1 << 15, ///< Pmsl used in P* calc.
73  PstdUsedFlag = 1 << 16, ///< Pstd used in P* calc.
74  PstnUsedFlag = 1 << 17, ///< Pstn used in P* calc.
75  QNHinHgFlag = 1 << 16, ///< QNH in 0.01 inches Hg
76  QNHhPaFlag = 1 << 17, ///< QNH in whole hPa - Metars
77  RHreportFlag = 1 << 18, ///< RH was reported
78  SiteQualityFlag = 1 << 20, ///< AIRQAL site quality reject flag
79  VisRejFlag = 1 << 22, ///< Reject Visibility Ob
80  notRoundedFlag = 1 << 24, ///< Metar QNH not rounded to whole hPa
81  };
82 
83  // Flags for profiles
84  enum Profile {
85  HydrostaticFlag = 1 << 12, ///< Hydrostatic check flag
86  InterpolationFlag = 1 << 13, ///< Interpolation check flag
87  SuperadiabatFlag = 1 << 14, ///< Superadiabatic check flag
88  SurfaceLevelFlag = 1 << 15, ///< Surface Level
89  StandardLevelFlag = 1 << 16, ///< Standard Level
90  SigTempLevelFlag = 1 << 17, ///< Significant Temperature
91  SigWindLevelFlag = 1 << 18, ///< Significant Wind Level
92  MaxWindLevelFlag = 1 << 19, ///< Maximum Wind Level
93  TropopauseFlag = 1 << 20, ///< Tropopause Level
94  PartialLayerFlag = 1 << 21 ///< Partial Layer Vert Average
95  };
96 
97  // Flags for satellite winds
98  enum SatWind {
99  SatwindConfFlag = 1 << 12, ///< Satwind product confidence
100  SatwindInversionFlag = 1 << 13, ///< Inversion height corrected
101  SatwindDryLayerFlag = 1 << 14, ///< Model dry layer QC
102  SatwindWrongLayerFlag = 1 << 15, ///< Wrong moist layer QC
103  SatwindPoorConstraint = 1 << 16, ///< Best-fit pressure is not well constrained
104  };
105 
106  // Flags for scatterometers
107  enum Scatt {
108  ScatConfidenceFlag = 1 << 12, ///< Wind product confidence
109  ScatAmbigRemov1Flag = 1 << 13, ///< Wind ambiguity removal
110  ScatAmbigRemov2Flag = 1 << 14, ///< Wind ambiguity removal
111  ScatIncAngle1Flag = 1 << 15, ///< Wind angle of incidence
112  ScatIncAngle2Flag = 1 << 16 ///< Wind angle of incidence
113  };
114 
115  // Flags for aircraft relative humidity
116  enum AircraftRH {
117  DerivedFromMixRatioFlag = 1 << 12, ///< Relative humidity derived from mixing ratio
118  DerivedFromFlightLevelFlag = 1 << 13, ///< Pressure derived from flight level
119  };
120 
121  // Flags for satellite SST
122  enum SatSST {
123  DaytimeFlag = 1 << 12, ///< Observation recorded in daytime
124  DiurnalWarmFlag = 1 << 13 ///< Indicates a likely diurnal warming component in signal
125  };
126 
127  // Profile flags which depend on sounding data type
128  enum Sounding {
129  // TEMP and PILOT
130  TEMPSigWind = 1 << 1, ///< Significant wind level
131  TEMPSigTemp = 1 << 2, ///< Significant temperature level
132  TEMPMaxWind = 1 << 3, ///< Maximum wind level
133  TEMPTropopause = 1 << 4, ///< Tropopause level
134  TEMPStandard = 1 << 5, ///< Standard level
135  TEMPSurface = 1 << 6, ///< Surface level
136  TEMPStandardX = 1 << 7, ///< Semi-standard level
137  // BUFR
138  BUFRSigWind = 1 << 11, ///< Significant wind level
139  BUFRSigTemp = 1 << 13, ///< Significant temperature level
140  BUFRMaxWind = 1 << 14, ///< Maximum wind level
141  BUFRTropopause = 1 << 15, ///< Tropopause level
142  BUFRStandard = 1 << 16, ///< Standard level
143  BUFRSurface = 1 << 17, ///< Surface level
144  BUFRStandardX = 1 << 16 ///< Semi-standard level, grouped with standard levels in this case
145  };
146 } // namespace MetOfficeQCFlags
147 
148 } // namespace ufo
149 
150 #endif // UFO_UTILS_METOFFICE_METOFFICEQCFLAGS_H_
@ NewReport
Ob not yet assimilated.
@ AssimilatedReport
Ob already assimilated.
@ BUFRMaxWind
Maximum wind level.
@ BUFRSigTemp
Significant temperature level.
@ BUFRStandardX
Semi-standard level, grouped with standard levels in this case.
@ TEMPMaxWind
Maximum wind level.
@ TEMPSurface
Surface level.
@ TEMPSigWind
Significant wind level.
@ BUFRTropopause
Tropopause level.
@ TEMPSigTemp
Significant temperature level.
@ TEMPTropopause
Tropopause level.
@ TEMPStandard
Standard level.
@ BUFRSurface
Surface level.
@ BUFRSigWind
Significant wind level.
@ TEMPStandardX
Semi-standard level.
@ BUFRStandard
Standard level.
@ VisRejFlag
Reject Visibility Ob.
@ QNHinHgFlag
QNH in 0.01 inches Hg.
@ SiteQualityFlag
AIRQAL site quality reject flag.
@ PstnPrefFlag
Use Pstn if reported.
@ QNHhPaFlag
QNH in whole hPa - Metars.
@ PmslUsedFlag
Pmsl used in P* calc.
@ RHreportFlag
RH was reported.
@ PstdRepFlag
Pstd reported not Pmsl.
@ notRoundedFlag
Metar QNH not rounded to whole hPa.
@ PstnUsedFlag
Pstn used in P* calc.
@ PstdUsedFlag
Pstd used in P* calc.
@ TendencyFlag
Pressure tendency check.
@ InterpolationFlag
Interpolation check flag.
@ SuperadiabatFlag
Superadiabatic check flag.
@ TropopauseFlag
Tropopause Level.
@ HydrostaticFlag
Hydrostatic check flag.
@ MaxWindLevelFlag
Maximum Wind Level.
@ SurfaceLevelFlag
Surface Level.
@ PartialLayerFlag
Partial Layer Vert Average.
@ SigTempLevelFlag
Significant Temperature.
@ StandardLevelFlag
Standard Level.
@ SigWindLevelFlag
Significant Wind Level.
@ DaytimeFlag
Observation recorded in daytime.
@ DiurnalWarmFlag
Indicates a likely diurnal warming component in signal.
@ MissingDataReport
Missing data.
@ SatwindAltReport
Satwind alternative p/uv.
@ StationListThinFlag
Rejected based on station list.
@ SurplusReport
(Near) duplicate data
@ SuperObReport
This is a SuperOb.
@ UsedInSuperObReport
Combined with other obs.
@ Thin4DFlag
Duplicate found.
@ TrackRejectReport
Failed track check.
@ NoPressureSensor
No PILOT pressure sensor.
@ FinalRejectReport
One of flags 1-6 set.
@ PermRejectReport
Blacklisted data.
@ LandRejectReport
Marine ob over land.
@ OutOfAreaReport
Outside analysis area/time.
@ ScatIncAngle2Flag
Wind angle of incidence.
@ ScatConfidenceFlag
Wind product confidence.
@ ScatAmbigRemov1Flag
Wind ambiguity removal.
@ ScatAmbigRemov2Flag
Wind ambiguity removal.
@ ScatIncAngle1Flag
Wind angle of incidence.
@ DerivedFromFlightLevelFlag
Pressure derived from flight level.
@ DerivedFromMixRatioFlag
Relative humidity derived from mixing ratio.
@ NoAssimFlag
Do not use in analysis.
@ ExtremeValueFlag
Extreme value check.
@ ConsistencyFlag
Internal consistency check.
@ FinalRejectFlag
Final QC flag.
@ ClimPerfFlag
Climatological check perf.
@ DataCorrectFlag
Eg sign correction.
@ PermCorrectFlag
Fixed correction.
@ BuddyPerfFlag
Buddy check performed.
@ BackPerfFlag
Background check performed.
@ BackRejectFlag
PGE>0.5 after backgr check.
@ BuddyRejectFlag
PGE>0.5 after buddy check.
@ ClimRejectFlag
PGE>0.5 after climat check.
@ PermRejectFlag
Blacklisted data.
@ SatwindPoorConstraint
Best-fit pressure is not well constrained.
@ SatwindInversionFlag
Inversion height corrected.
@ SatwindDryLayerFlag
Model dry layer QC.
@ SatwindConfFlag
Satwind product confidence.
@ SatwindWrongLayerFlag
Wrong moist layer QC.
Definition: RunCRTM.h:27