MADIS Road Weather Information System (RWIS) & Clarus Quality Control Checks
Clarus Quality Checking Test Algortithms
- Sensor Range Test
- Climate Range Test
- Time Step Test
- Like Instrument Test
- Persistence Test
- Interquartile Range (IQR) Spatial Test
- Within a 69 mile radius of the target sensor reading
- Within +/- 350 meters of elevation
- Within 1 hour of the target sensor reading time
- Barnes Spatial Test
- Within the configured radius of the target observation, typically 69 miles
- Within 65 minutes of the target observation time, -60 minutes to +5 minutes to accommodate potential skewed time reporting
- Dewpoint Temperature Test
- Sea Level Pressure Test
- Precipitation Estimation Test
The sensor range test detects sensor readings that fall outside the range of sensor hardware
specifications or theoretical limits (i.e., a maximum and minimum value). If a sensor reading does not
pass the sensor range test, then no other quality checking tests are performed on that sensor reading.
Each time this quality check is invoked, it is given a single sensor reading. If the sensor reading cannot be obtained, the test returns immediately with an error condition indicating that it failed to run.
The sensor provides the sensor range in the form of a maximum and minimum value. If the sensor value is greater than or equal to the minimum, and less than or equal to the maximum, the sensor reading passes the sensor range quality check. If the sensor reading value is less than the minimum or greater than the maximum, the sensor reading does not pass the sensor range quality check.
The climate range test detects sensor readings that fall outside predetermined climate range values.
The climate range data have been drawn from 30 years of National Centers for Environmental
Prediction-Department of Energy (NCEP-DOE) Reanalysis 2 data. These reanalysis data are created
by running a set of historical observational data through a common model, thus ensuring that the
output data are consistent over time. The reanalysis also ensures that data are available in every time
period at every grid point. For each weather parameter, the climate range values used in this test were
determined by computing monthly minimum and maximum values over a 2.5 degree x 2.5 degree
fixed latitude-longitude grid. In the latitude band, this equates to a grid spacing of 172.5 miles. In the
longitude band, this varies from 172.5 miles at the equator, to 0 miles at the poles.
Each time this QCh test is invoked, it is given a single sensor reading. The appropriate climate maximum and minimum values used for the test are determined by the month of the sensor reading date and the latitude/longitude region in which the sensor reading location falls. If the sensor reading value is greater than or equal to the climate minimum, and less than or equal to the climate maximum, the sensor reading passes the climate range quality check. If the sensor reading value is less than the climate minimum or greater than the climate maximum, the sensor reading does not pass the sensor climate range quality check.
The step test detects sensor readings whose values change by more than a predefined variablespecific
or station-specific rate over a thirty minute (past) and five minute (future) configurable period.
For example, an air temperature reading from 2:00 p.m. will be compared to the corresponding air
temperature sensor readings from the same sensor that was recorded in the time range of 1:30 p.m.
to 2:05 p.m.
Each time this test is invoked, it is given a single sensor reading. The system then obtains all of the sensor readings that have been received over the configured time period from the same sensor that are of the same weather parameter type. If either the current sensor reading or the prior sensor readings (a minimum of one is required) cannot be obtained, the test returns immediately with an error condition indicating that it was not able to run.
From the sensor, the system obtains configured positive and negative step threshold rates. If the difference between the current sensor value and the prior sensor value divided by the time difference in seconds ((current . prior) / time difference) falls between the negative step threshold and positive step threshold rates, then the current sensor reading passes the step quality check. If the computed rate falls outside the defined rates, then the current sensor reading does not pass the step quality check. This method assumes that the positive step threshold is specified as a positive value and the negative step threshold is specified as a negative value.
- The like instrument test detects sensor readings whose values differ from the average of all sensor
values obtained from the same station with the same weather parameter type by more than a
predefined variable-specific threshold. For example, if there were four surface temperatures at the
same station, the sensor reading being evaluated would be compared to the average of all of the
surface temperatures against the threshold (positive and negative). In reality, few sensors are
repeated at a station outside of surface temperature, so this test is not often used.
Each time this test is invoked, it is given a single sensor reading. From the station information associated with the sensor reading, the number of sensors is obtained for the given sensor reading type. If that number is greater than one, it obtains the sensor reading(s) from the other like sensor(s) from the same station that are time-stamped within an hour before the original sensor reading. If additional sensor reading instances cannot be obtained, the test returns immediately with an error condition indicating that it was not able to run.
The like instrument threshold for the current sensor reading type is obtained from the configuration information. If the difference between the average of all sensor reading values plus and minus the threshold (sensor reading >= average sensor reading . threshold AND sensor reading <= average sensor reading + threshold) both evaluate to true, then the sensor reading passes the like instrument test. If either of the comparisons evaluate to false, then the original sensor reading does not pass the like instrument test.
- The persistence test detects sensor reading whose values remain constant for a predefined variablespecific
period of time. For example, if consecutive pressure sensor readings remain unchanged to
the precision of the instrument for four hours, the current sensor reading does not pass the
Each time this test is invoked, it is given a single sensor reading, which then determines the persistence time period. Consecutive sensor readings from the same sensor and station over that period of time preceding the current observation are then obtained. If the current sensor reading or the prior sensor reading cannot be obtained, the test returns immediately with an error condition indicating that it was unable to run.
If one or more of the consecutive sensor values are different, the current sensor reading passes the persistence quality check. If all of the consecutive sensor values over the given time period are equivalent, the current sensor does not pass the persistence quality check.
The IQR spatial test is a method for checking whether a sensor reading is consistent with its
neighboring sensor readings. It detects sensor readings that differ by more than a predefined
threshold from an expected value within a neighborhood of the target sensor reading.
In general, across large regions, the atmosphere is quite homogeneous spatially. However, there are times and places such as in complex terrain or near frontal systems where close sensor readings are quite different but realistic. As such, the spatial test has some limitations.
A target sensor reading does not pass the IQR test when:
- |Ze - Zo| > max(M * 0.7413 * IQR, minToleranceBound)
- Ze = Median of neighbors
Zo = Target sensor reading
M = Multiplier value: The value is 3 for all fields, except Relative Humidity, which is 2.5
IQR = Interquartile range: The difference between the .25 and .75 percentiles of the neighbors. The coefficient 0.7413 makes the IQR an unbiased estimate of the true standard deviation.
minToleranceBound = A fixed value set for each field that bounds the minimum acceptable spread between the target sensor value and the estimate.
The minToleranceBound values for each weather parameter field are as follows:
essAirTemperature: 3.5 deg C
essDewpointTemp: 7 deg C
windSensorAvgSpeed: 4.5 m/sec
essAtmosphericPressure: 7.5 mbar
essRelativeHumidity: 15 %
essSurfaceTemperature: 10 deg C
essPavementTemperature: 10 deg C
essSubSurfaceTemperature: 3 deg C
essWetBulbTemp: 7 deg C
Up to 20 of the nearest sensors to the target sensor reading satisfying the above criteria are chosen to makeup the background field.
- Like the IRQ test, the neighboring stations used for spatial comparison are determined by a
formula based on configurable tolerance bounds. Unlike the IRQ test, neighboring sensor
readings are weighted according to their distance from the original sensor, with the weight
decreasing exponentially with the distance from the station. In the Clarus System, neighboring
) are based on ASOS, AWOS, and ESS in situ data. The ASOS program is a joint effort
of the National Weather Service (NWS), the Federal Aviation Administration (FAA), and the
Department of Defense (DOD). The ASOS systems serve as the nation's primary surface
weather observing network. ASOS is designed to support weather forecast activities and aviation
operations and, at the same time, support the needs of the meteorological, hydrological, and
climatological research communities. The AWOS provides basic aviation weather observations
directly to pilots approaching the airport. The majority of the ~170 systems were installed at
various non-towered airports (OFCM, 2009).
The neighboring stations used for spatial comparison must fall within a distance set by a configuration parameter. Neighboring observations are weighted according to their distance from the original sensor, with the weight decreasing exponentially with the distance from the station.
Each time this test is invoked, it is given a single observation. Through the observation instance, it obtains a sensor and a station. If the sensor or station cannot be obtained, the test returns immediately with an error condition indicating that it was unable to run. Then a set of observations to use for the spatial analysis is determined. If there are fewer than two observations of the same type available or if the IQR Spatial Test was able to run, the test returns immediately with an error condition indicating that it was unable to run.
A target observation does not pass the Barnes Spatial Test when the target observation value (Z0) falls outside of the range defined by the number of configured standard deviations about the weighted mean of the neighboring observations (Ze).
An observation does not pass the Barnes Spatial Test when:
- |Ze - Zo| > SdMin * O
- Z0 = Target observation
Ze = Weighted mean of neighboring observations
Zi = The ith neighboring observation
SdMin = The configured allowable standard deviations
O = Estimated standard deviation
Ze = (E W(ri) * Zi) /(E W(ri))
- W(ri) = exp( -|Zi - Zo|^2 / (2*(ri/O)^2))
- Most automated dewpoint temperatures are not sensed directly but derived from other weather
parameters. Thus, the dewpoint temperature test detects air temperature and relative humidity sensor
readings whose corresponding derived dewpoint temperatures do not pass a Barnes spatial analysis.
This test is similar to the Barnes spatial quality check except that it performs the objective analysis on
dewpoint temperature sensor readings derived from air temperature and relative humidity sensor
readings instead of performing the test directly on the sensor readings themselves.
Each time this test is invoked, it is given a single relative humidity sensor reading. Using sensor and station information, the corresponding most recent (within one hour) air temperature sensor reading is retrieved. If the sensor, station, or corresponding air temperature sensor reading cannot be obtained, the test returns immediately with an error condition indicating that it is unable to run.
At this point, the dewpoint temperature test follows the same method as the Barnes spatial test to obtain the set of sensor readings to use in the spatial analysis, except that it obtains both air temperature and relative humidity for each station. If sensor readings for both air temperature and relative humidity cannot be obtained for a given station, that station is not used in the spatial analysis. If both air temperature and relative humidity sensor readings are not available for at least two stations, the quality check returns immediately with an error condition indicating that it was unable to run.
Once the air temperature and relative humidity sensor readings are obtained, the dewpoint temperature (Td) is calculated for each location using the following formulas.
- Td = 240.97 * ln(es/6.1365)/(17.502 - ln(es/6/6.1365)
- es = (RH/100) * 6.1365 * exp(17.502*T) / (240.97 + T)
es = saturated water vapor pressure
T = air temperature in C
RH = relative humidity
- The sea level pressure test is a method for checking whether an atmospheric pressure measurement
is consistent with its neighboring sensor readings, when both the target pressure sensor reading and
its neighbors have been reduced to sea level pressure. It detects reduced pressure sensor readings
that differ by more than a predefined threshold from an expected value within a neighborhood of the
target sensor reading.
The algorithm is based on the Mesoscale Analysis Prediction System-Sea Level Pressure (MAPSSLP) reduction algorithm (Benjamin and Miller, 1990). The MAPS-SLP algorithm estimates the surface temperature versus using the sensed surface temperature for the pressure reduction calculation from the 700mb temperature (usually obtained via soundings), which is adjusted by the standard lapse rate to the station elevation.
A formulation of the hydrostatic and hypsometric equation, which relates the change in pressure and the change in temperature, is the following:
- Psl = Psta * [Tsl / Tsta)^g/Ry
- Psl = the sea level pressure
Psta = the surface (station) pressure
Tsta (effective temperature) = the temperature assumed to be valid at the surface (station level)
Tsl = the temperature at MSL
y = the lapse rate of the temperature
g = the acceleration due to gravity
R = the universal gas constant (Benjamin and Miller, 1990).
Tsl = T700 + y(Z700- 0)
Tsta - T700 + y(Z700 - Zsta)
T700 = the temperature at the 700 hPa level (Kelvin)
Z700 = the height of the 700 hPa pressure level in meters above MSL
Zsta = the height of the station above MSL in meters.
The following constant values are used in the code (U.S. Standard Atmosphere, 1976):
g = 9.80665 m/s^2
R = 287.053072047065 J/(kg- K)
y = 6.5 degrees C/1000m
The precipitation estimation test utilizes NCEP Stage II and Stage IV data for comparison with ESS
precipitation accumulation reports. The NCEP stage II and IV data are real-time, hourly, multi-sensor
National Precipitation Analysis (NPA) data developed at the NCEP in cooperation with the Office of
Hydrology (Lin and Mitchell, 2005). The Stage II/IV analyses merge radar data with hourly METAR
gauge reports and are output onto a 4-km Hydrologic Rainfall Analysis Project (HRAP) grid. The
HRAP grid is a National Weather Service (NWS) coordinate system that uses a polar stereographic
projection true at 60°N / 105°W. Each hour.s analysis is run at 35 minutes past the hour and then run
6 hours and 18 hours later. The first run incorporates precipitation reports from rain gauge sites and
the later runs use HADS automated gauge reports transmitted via the GOES Data Collection Platform
(DCP). The primary difference between Stage II and Stage IV analyses is that Stage IV Data is
manually QC.d at the NWS Regional Forecast Centers (RFCs), so it is generally better than the Stage
The precipitation estimation QCh algorithm compares a target ESS precipitation accumulation report to nearby Stage II or IV grid values. Because there is approximately a one-hour lag in the Stage II/IV availability, recent data measured within the previous hour from neighboring ASOS, AWOS and other ESS stations are also incorporated into the algorithm in order to assess whether the target reports should pass or fail the precipitation QCh test.
The algorithm is designed to check 3, 6, 12, and 24-hour precipitation accumulation values. Only precipitation accumulation reports greater than 1 mm are tested. In addition, only precipitation accumulation reports which have more than 25% of the accumulation period covered by Stage II or Stage IV data are evaluated. If less than 25% of the period is covered, a flag of .not enough data. is returned.
The algorithm is listed in Appendix C, but basically, it assess whether the sensor reading falls within an acceptable threshold of minimum and maximum expected precipitation. The thresholds vary on the sensor reading.
Benjamin, S. G. and P. A. Miller, 1990: An alternative sea level pressure reduction and a statistical comparison of geostrophic wind estimates with observed surface winds. Mon. Wea. Rev., 118, 2099.2116.
Bluestein, H. B., 1992: Synoptic.Dynamic Meteorology in Midlatitudes. Vol. I: Principles of Kinematics and Dynamics. Oxford University Press, 431 pp.
Committee on Extension to the Standard Atmosphere: U.S. Standard Atmosphere, 1976. NOAA, USAF.
Lin, Y., K.E. Mitchell, 2005: The NCEP Stage II/IV precipitation analyses: development and applications. Preprints, 19th Conf. on Hydrology, San Diego, CA, Amer. Meteor. Soc., P1.2.
McGill, R., L. Tukey and W. Larsen, 1978: Variations of box plots. Amer. Stat., 32, 12-16.
NCAR, 2010: Validation Report of the Upgraded Clarus System. 87 pp.
Office of the Federal Coordinator for Meteorology, 2009: The Federal Plan for Meteorological Services and Supporting Research Fiscal Year 2009. U.S. Department of Commerce/National Oceanic and Atmospheric Administration. 255 pp.
Pauley, P. M., 1998: An Example of Uncertainty in Sea Level Pressure Reduction. Wea. and Forecasting, 13, 833-850.
Last updated 15 March 2017