Automated quality control#

Tests based on the WMO “Guidelines on Surface Station Data Quality Control and Quality Assurance for Climate Applications”, WMO-No. 1269.

Overview#

The tests listed below are intended to be run automatically on individual observations on initial ingest and will be called from another process.

Tests#

  • Sensor based range check (detects observations that are outside the specified sensor limits), requires observer and result.

  • Domain test (determines whether the observed value is outside the realm of scientific possibility, e.g. air temperature > 70 Celsius), requires observed_property and result.

  • Climate based range test (compares the observed value with the climatological upper and lower extreme values), requires location, elevation, date, time observed_property and result. Sensor characteristics can be taken into account if available.

API definition#

POST /process/_ingest_auto_qc#

Data ingest automated QC

Runs automated quality control on one or more observations encoded as a GeoJSON FeatureCollection. Triggered after data ingested or manually.

Request JSON Object:
  • type (string:enum, required) – FeatureCollection

  • features[] (object) –

  • features[].id (string, required) – Identifier for the observation

  • features[].type (string:enum, required) – Feature

  • features[].geometry (object, required) –

  • features[].geometry.type (string:enum, required) – Type of feature (Point)

  • features[].geometry.coordinates[] (number) –

  • features[].properties (object, required) –

  • features[].properties.elevation (number) – Elevation of observation above mean sea level (in meters)

  • features[].properties.phenomenon_time (string:date-time, required) – Observation time, either instant or start and end of observing period

  • features[].properties.result (object) –

  • features[].properties.result.value (number, required) – The value of the result in float representation

  • features[].properties.result.uom (string, required) – Units used to represent the value being observed

  • features[].properties.result.description (string) – str representation of the result if applicable

  • features[].properties.result_quality[] (object) –

  • features[].properties.result_quality[].scheme (string) – Quality control scheme

  • features[].properties.result_quality[].test (string) – Test applied

  • features[].properties.result_quality[].result (string) – Textual representation of result

  • features[].properties.result_quality[].flag (integer) – Flag

  • features[].properties.host (string:uri, required) – Host associated with making the observation, equivalent to OGC OMS ‘host’

  • features[].properties.observer (string:uri, required) – Observer associated with making the observation, equivalent to OGC OMS ‘observer’

  • features[].properties.observed_property (string:uri, required) – The phenomenon, or thing, being observed

Response JSON Object:
  • type (string:enum, required) – FeatureCollection

  • features[] (object) –

  • features[].id (string, required) – Identifier for the observation

  • features[].type (string:enum, required) – Feature

  • features[].geometry (object, required) –

  • features[].geometry.type (string:enum, required) – Type of feature (Point)

  • features[].geometry.coordinates[] (number) –

  • features[].properties (object, required) –

  • features[].properties.elevation (number) – Elevation of observation above mean sea level (in meters)

  • features[].properties.phenomenon_time (string:date-time, required) – Observation time, either instant or start and end of observing period

  • features[].properties.result (object) –

  • features[].properties.result.value (number, required) – The value of the result in float representation

  • features[].properties.result.uom (string, required) – Units used to represent the value being observed

  • features[].properties.result.description (string) – str representation of the result if applicable

  • features[].properties.result_quality[] (object) –

  • features[].properties.result_quality[].scheme (string) – Quality control scheme

  • features[].properties.result_quality[].test (string) – Test applied

  • features[].properties.result_quality[].result (string) – Textual representation of result

  • features[].properties.result_quality[].flag (integer) – Flag

  • features[].properties.host (string:uri, required) – Host associated with making the observation, equivalent to OGC OMS ‘host’

  • features[].properties.observer (string:uri, required) – Observer associated with making the observation, equivalent to OGC OMS ‘observer’

  • features[].properties.observed_property (string:uri, required) – The phenomenon, or thing, being observed

Status Codes:

Activity diagram#

https://www.plantuml.com/plantuml/svg/dL9DJyCm3BttL_YszB0LnAqJOWXf4WSu03U4aDSwQwGi2Oqxr7-FsuwAhOC3FbJDi_sUlrQHiUPcPvDPnHnYdcN1ekkGHU5t6HPizeRRUMbmM-DklY76f4zAGAocGCYGhtqDX4K5MfvDJQ3y9bAzHpRUfNtesN2coAEtCwD1lGW8XNVQR8Mg12tHF-XkKk2A7AYMOdgKt5b-6u9jU-Bbr7ddGojLnCOoi3_ylNyqQAN9rxV504mJnx82naZbtoNqIi_4KtfjSGlNS05gu4cdIcIZJC_vVz1UWj9ex7bQLnfzXFukz8U8pEmArADdmBr8uSRIYTXKABztiZk639fG8XFqJCO9r-5Qni5_o_KhFpYNfzVpMKcFoIa0wi7BtStMGrQSfM3Yi21mKk_OQVv44k2MYLIQhEJJNVyN

Implementation status#

In development