Interim extranet supporting technical-related activities

WMO public web site | WMO Extranet (Community members) site

Go to wiki: WIS, CCl, WIGOS, DPFS, DRR.



Example CompositeObservableProperty for METAR/SPECI observation

This page provides an example instance of CompositeObservableProperty (from the "Observable Property Model") that may be used to describe the 27 physical properties reported in an ICAO standard METAR.

The full XML for this example can be found here.

Preamble: publication of web-accessible definitions of physical properties

WMO Code-forms include a large number of references to physical properties (or, using the terminology from the International vocabulary of metrology, "Quantities" ): elements from BUFR Table B and parameters from GRIB2 Code-table 4.2.

As WMO develops new data-exchange products using contemporary formats such as XML that complement the existing BUFR and GRIB code-forms, it is essential that the elements and parameters are published as web-accessible definitions so that they can be referred to from data products.

We anticipate that WMO will publish terms from BUFR (edition 4) Table B and GRIB2 code-table 4.2 within the following registers:
  • <http://data.wmo.int/def/bufr4/b>
  • <http://data.wmo.int/def/grib2/codeflag/4.2>

Thus, the quantity air temperature, defined within GRIB2 code-table 4.2 discipline #0 "meteorology" category #0 "temperature" parameter #0 "air temperature" may be allocated the following URI:
  • <http://data.wmo.int/def/grib2/codeflag/4.2/0.0.0>

We recognise that there is some duplication of quantities across BUFR and GRIB2. However, at this point in time, no attempt is made to reconcile terms from BUFR and GRIB2 into a common quantity dictionary.

Also note that the unit of measure specified in the BUFR or GRIB2 code-table entry is considered the canonical unit. Data may be provided using an alternative unit of measure on the proviso that it must be possible to convert the data values to the canonical unit. For example, air temperature is specified in GRIB2 with unit of measure Kelvin (K), whilst air temperature within a METAR is typically reported in Celsius; the transformation from Celsius to Kelvin is achieved using a standard conversion factor.

XML Namespaces

The following namespaces are used either directly or indirectly in this example:

DescriptionXML NamespaceDefault namespace prefix
XML Schema Instancehttp://www.w3.org/2001/XMLSchema-instancexsi
XML Linking Languagehttp://www.w3.org/1999/xlinkxlink
OGC GML 3.2.1http://www.opengis.net/gml/3.2gml
OGC OMXML Observations and Measurementshttp://www.opengis.net/om/2.0om
WMO Observable Property Model(1.0RC1)http://data.wmo.int/def/opm/1.0RC1opm


This XML document references a large number of quantities whose definitions are published in the <http://data.wmo.int/def/grib2/codeflag/4.2> and <http://data.wmo.int/def/bufr4/b> code-spaces. For example:

<opm:property xlink:href="http://data.wmo.int/def/grib2/codeflag/4.2/0.0.0" xlink:title="Air temperature"/>

To simplify the XML and improve its human readability XML ENTITY declarations can be made:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE opm:CompositeObservableProperty [
  <!ENTITY bufr "http://data.wmo.int/def/bufr4/b/">
  <!ENTITY grib "http://data.wmo.int/def/grib2/codeflag/4.2/">

These ENTITY declarations enable a string (in this case the base URI) to be substituted for a compact token. Thus the XML in the example above becomes:

<opm:property xlink:href="&grib;0.0.0" xlink:title="Air temperature"/>

The XML is made somewhat easier to read - and certainly shorter! We see that the token is bracketed using the ampersand "&" and semicolon ";" characters.

Note that most web-browers replace the token with the original text - so viewing the example file in this mode would not display the ENTITY declaration.


A meteorological aerodrome observation report may include information about 27 quantities. The CompositeObservableProperty class enable these to be aggregated into a single entity.

The code fragment below shows the XML Namespace declarations, the human-readable label for this resource and the number of properties contained therein (e.g. count).

<?xml version="1.0" encoding="UTF-8"?>
<opm:CompositeObservableProperty xmlns:opm="http://data.wmo.int/def/opm/1.0RC1"
    xsi:schemaLocation="http://data.wmo.int/def/opm/1.0RC1 http://schemas.wmo.int/opm/1.0RC1/opm.xsd"
    <opm:label>Observed properties for METAR and SPECI (Meteorological Aerodrome Reports)</opm:label>

References to pre-defined observable properties

The majority of observable properties that are contained within this composite are standard quantities whose definitions can be referenced directly. The code fragment below illustrates three such references:

    <opm:property xlink:href="&grib;0.0.0" xlink:title="Air temperature"/>
    <opm:property xlink:href="&grib;0.0.6" xlink:title="Dew-point temperature"/>
    <opm:property xlink:href="&grib;0.3.11" xlink:title="Altimeter setting"/>

Each of these definitions will resolve to provide useful information (e.g. human-readable web-pages or machine-readable content; the format provided will be determined using HTTP content negotiation).

Note that these definitions are not yet published to support 1.0RC1.


Some quantities require qualification with regards their use in a particular context.

The code fragment below illustrates how the standard quantity "Runway visual range" is qualified as the _mean_ value during a 10-minute duration:

        <opm:QualifiedObservableProperty gml:id="meanRVR">
            <opm:label>Mean runway visual range during a 10-minute period</opm:label>
            <opm:baseProperty xlink:href="&bufr;20/061" xlink:title="Runway visual range"/>
                    <opm:aggregationTimePeriod uom="http://opengis.net/def/uom/UCUM/0/min">10</opm:aggregationTimePeriod>
                    <opm:description>Mean value during a 10-minute period</opm:description>
                    <opm:statisticalFunction xlink:href="http://data.wmo.int/def/bufr4/codeflag/0-08-023/4" xlink:title="Mean value"/>

Line 5 provides the base property (e.g. <opm:baseProperty>) from which this qualified observable property is derived.

Line 8 provides the aggregation information; in this case an aggregation over a 10-minute time-period (e.g. <opm:aggregationTimePeriod>). Other aggregation types are possible (e.g. length, area, volume).

Line 9 provides the statistical function that is used (e.g. <opm:statisticalFunction>); in this case a "mean value". This term is taken from the BUFR edition 4 code-table 0 08 023 "First order statistics"; term #4.

On occasions, it is necessary to describe more complex qualifications. For example, the code fragment below illustrates how "Runway visual range" is qualified to provide the maximum 1-minute mean RVR during a 10-minute period:

        <opm:QualifiedObservableProperty gml:id="oneMinuteMeanMaximumRVR">
            <opm:label>Maximum 1-minute mean RVR during a 10-minute period</opm:label>
            <opm:baseProperty xlink:href="&bufr;20/061" xlink:title="Runway visual range"/>
                    <opm:aggregationTimePeriod uom="http://opengis.net/def/uom/UCUM/0/min">10</opm:aggregationTimePeriod>
                    <opm:description>Maximum value during a 10-minute period</opm:description>
                    <opm:statisticalFunction xlink:href="http://data.wmo.int/def/bufr4/codeflag/0-08-023/2" xlink:title="Maximum value"/>
                            <opm:aggregationTimePeriod uom="http://opengis.net/def/uom/UCUM/0/min">1</opm:aggregationTimePeriod>
                            <opm:description>Mean value during a 1-minute period</opm:description>
                            <opm:statisticalFunction xlink:href="http://data.wmo.int/def/bufr4/codeflag/0-08-023/4" xlink:title="Mean value"/>

Here we see two instances of <opm:StatisticalQualifier> (lines 7 and 12). The element <opm:derivedFrom> (line 11) is used to establish the derivation chain.

It is possible to have an arbitrarily complex derivation chain if the need arises.

Page last modified on Thursday 06 of December, 2012 00:37:16 CET