Fullscreen
Loading...
 

Interim extranet supporting technical-related activities

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

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

This page provides informal guidance. The information on this page has no status within WMO (see WMO Regulations 43 & 44)

You may suggest improvements to this page by sending us an email.

Print

IWXXM-2-Tutorial-taf-YUDO-2012-08-16T00Z








Tutorial:
TAF for fictional airport YUDO





This
Terminal Aerodrome Forecast (TAF) is intended as an example and does not
represent actual forecast conditions.





 



The
full XML for this example can be found here.





XML Namespaces





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



Description

XML Namespace

Default namespace prefix

XML Schema

http://www.w3.org/2001/XMLSchema

xsd

XML Linking Language

http://www.w3.org/1999/xlink

xlink

OGC GML 3.2.1

http://www.opengis.net/gml/3.2

gml

ISO/TS 19139:2007 metadata XML schema implementation

http://www.isotc211.org/2005/gmd

gmd

OGC OMXML Observations and Measurements

http://www.opengis.net/om/2.0

om

OGC OMXML Sampling Features

http://www.opengis.net/sampling/2.0

sf

OGC OMXML Spatial Sampling Features

http://www.opengis.net/samplingSpatial/2.0

sams

WMO Observable Property Model(1.2)

http://def.wmo.int/opm/2013

opm

WMO METCE (1.2)

http://def.wmo.int/metce/2013

metce

ICAO Meteorological Information Exchange Model (2.1)

http://icao.int/iwxxm/2.1

iwxxm




Note that the XML Namespace is distinct from the schema locations. For
reference, these are provided here.



Overview: the TAF
report





The XML-encoded TAF has a root element <iwxxm:TAF> within which the XML Namespace information
is declared.


The <iwxxm:TAF>
element encodes a TAF forecast. Status is included as an attribute. The status
attribute takes on the value "NORMAL" in this example. Other values
include "AMENDMENT", "CANCELLATION",
"CORRECTION", and "MISSING". In this example, the TAF
contains an issueTime element, a validTime
element, a single baseForecast element, and three changeForecast elements.


The code fragment below shows the XML Namespace declarations plus the basic
structure of this TAF report.





Overall
structure of TAF report





 

<iwxxm:TAF xmlns:iwxxm="http://icao.int/iwxxm/2.1" 
           xmlns:gml="http://www.opengis.net/gml/3.2" 
           xmlns:om="http://www.opengis.net/om/2.0" 
           xmlns:sams="http://www.opengis.net/samplingSpatial/2.0" 
           xmlns:metce="http://wmo.int/metce/2013" 
           xmlns:sf="http://www.opengis.net/sampling/2.0" 
           xmlns:xlink="http://www.w3.org/1999/xlink" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           xmlns:aixm="http://www.aixm.aero/schema/5.1.1" 
           xsi:schemaLocation="http://icao.int/iwxxm/2.1 http://schemas.wmo.int/iwxxm/2.1/iwxxm.xsd 
                               http://def.wmo.int/metce/2013 http://schemas.wmo.int/metce/1.2/metce.xsd 
                               gml:id="taf-YUDO-201208160000Z" 
                               status="NORMAL">
   <iwxxm:issueTime>...</iwxxm:issueTime>
   <! The time at which this TAF is intended to be used >  
   <iwxxm:validTime>...</iwxxm:validTime>    
   <iwxxm:baseForecast>...</iwxxm:baseForecast> 
   <iwxxm:changeForecast>...</iwxxm:changeForecast> 
   <iwxxm:changeForecast>...</iwxxm:changeForecast> 
   <iwxxm:changeForecast>...</iwxxm:changeForecast> 
 </iwxxm:TAF>





As in the METAR example presented elsewhere on this site, XML attribute gml:id is provided. All instances
of this attribute within a given document must be unique. Furthermore, we
recommend that the gml:id
for the report itself is globally unique, comprising of
{report-type}-{aerodrome-identifier}-{issue-time}. The issue time should be
provided in ISO 8601 format.


The "Observation Structure" section of the tutorial for METAR also
includes a thorough discussion of the Observations and Measurements (O&M)
Model and its application to meteorological observations and forecasts. This is
important background to understanding the <iwxxm:issueTime> and <iwxxm:validTime>
elements. The element <iwxxm:issueTime>
is used to encode the group YYGGggZ that is used in
the Traditional Alphanumeric Code (TAC) for TAF "to report the date and
time of origin of forecast."


The element <iwxxm:validTime>
might be confusing to some, and it might be confused with <om:phenomenonTime>. The element <iwxxm:validTime> is derived from <om:validTime>, and it is defined by ISO 19156:2011
"Geographic information — Observations and measurements" to be
"the time period during which the result is intended to be used." In other words, when the forecast is valid for use. The
element <om:phenomenonTime>
is defined to be "the time that the result (6.2.2.9) applies to the
property of the feature-of-interest (6.2.2.7)." For a METAR, this can be
described as when the weather happened. For a TAF, this can be described as
when the weather is forecast to happen.




Meteorological
Aerodrome Forecast





As mentioned above, the example TAF includes one instance of <iwxxm:baseForecast> and three
instances of <iwxxm:changeForecast>. All four
of these elements include a single instance of <om:OM_Observation>. The semantics of both the base
forecast and change forecast are specified within the controlled register at
http://codes.wmo.int, and can be discovered at http://codes.wmo.int/49-2/observation-type/IWXXM/2.1/MeteorologicalAerodromeForecast.
The element <om:type>
declares this relationship.


As described above, the element <om:pheonomenonTime>
is used to provide information about the temporal domain of the forecast. When
used within <iwxxm:baseForecast>,
<om:phenomenonTime> spans the entire valid time
of the TAF. When used within <iwxxm:changeForecast>,
however, <om:phenomenonTime> is limited to the
portion of the forecast covered by the change group.


The element <om:resultTime>
should always match the issuance time of the TAF. Applying the O&M model to
the specific case of a TAF, the procedure is the action of the forecaster (some
combination of thinking and typing, perhaps), the valid time is the valid
period of the TAF, the feature of interest is the aerodrome, and the result is
the forecast of values.


The example illustrates one key difference between <iwxxm:baseForecast> and <iwxxm:changeForecast>.
That is the attribute changeIndicator. This, of
course, takes on the familiar values "BECOMING",
"TEMPORARY_FLUCTUATIONS", "FROM", etc. The code fragment
below illustrates the commonalities shared by <iwxxm:baseForecast> and <iwxxm:changeForecast>.





Commonalities
shared by baseForecast and changeForecast





 

<iwxxm:baseForecast>
  <om:OM_Observation gml:id="bf-1">
    <om:type xlink:href="http://codes.wmo.int/49-2/observation/type/IWXXM/2.1/MeteorologicalAerodromeForecast" 
     xlink:title="Aerodrome Forecast"/>
    <om:phenomenonTime xlink:href="#tp-201208160600-201208170000"/>
    <! resultTime is always the issueTime of the TAF >
    <om:resultTime xlink:href="#ti-201208160000Z"/>
    <!...>
    <om:validTime xlink:href="#tp-201208160600-201208170000"/>
    <om:procedure>...</om:procedure>
    <om:observedProperty xlink:href="http://codes.wmo.int/49-2/observable-property/
     MeteorologicalAerodromeForecast" xlink:title="TAF forecast properties"/>
    <om:featureOfInterest>...</om:featureOfInterest>
    <om:result>...</om:result>
  </om:OM_Observation>
</iwxxm:baseForecast>
<iwxxm:changeForecast>
  <om:OM_Observation gml:id="cf-1">
    <om:type xlink:href="http://codes.wmo.int/49-2/observation-type/
     IWXXM/2.1/MeteorologicalAerodromeForecast" xlink:title="Aerodrome Forecast"/>
    <om:phenomenonTime>...</om:phenomenonTime>
    <! resultTime is always the issueTime of the TAF >
    <om:resultTime xlink:href="#ti-201208160000Z"/>
    <!...>
    <om:validTime xlink:href="#tp-201208160600-201208170000"/>
    <om:procedure xlink:href="#p-49-2-taf" xlink:title="WMO 49-2 TAF"/>
    <om:observedProperty xlink:href="http://codes.wmo.int/49-2/observable-property/
     MeteorologicalAerodromeForecast" xlink:title="TAF forecast properties"/>
    <om:featureOfInterest xlink:href="#sampling-point-03839"/>
    <om:result>...</om:result>
  </om:OM_Observation>
</iwxxm:changeForecast>
<iwxxm:changeForecast>...</iwxxm:changeForecast>
<iwxxm:changeForecast>...</iwxxm:changeForecast>







Observation result:
Meteorological Aerodrome Forecast Record





As described in the METAR tutorial, the observation result is the main part of
the TAF; it provides the data values for the forecast properties. The result is
constrained to be an instance of MeteorologicalAerodromeForecastRecord.

MeteorologicalAerodromeForecastRecord has been
designed with the explicit intention to allow provision of the information
required to meet ICAO Annex 3 / WMO No. 49 Volume 2 regulation. As with the
sampling point, IWXXM relies on rule-based validation (e.g. schematron)
to validate this constraint; XML Schema will not enforce this constraint.

The code fragment below provides the XML-encoding of the result for the second
instance of <iwxxm:changeForecast>.
This models the line "TEMPO 1608/1612 17006G12MPS 1000 TSRA SCT010CB
BKN020" from the example TAF. Arguably, this is the most interesting
portion.





Encoding
of the result





 

<om:result>
  <iwxxm:MeteorologicalAerodromeForecastRecord gml:id="change-fcst-record-2"
   changeIndicator="TEMPORARY_FLUCTUATIONS" cloudAndVisibilityOK="false">
    <iwxxm:prevailingHorizontalVisibility uom="m">1000</iwxxm:prevailingHorizontalVisibility>
    <iwxxm:surfaceWind>
      <iwxxm:AerodromeSurfaceWindForecast variableWindDirection="false">
        <iwxxm:meanWindDirection uom="deg">170</iwxxm:meanWindDirection>
        <iwxxm:meanWindSpeed uom="m/s">6</iwxxm:meanWindSpeed>
        <iwxxm:windGustSpeed uom="m/s">12</iwxxm:windGustSpeed>
      </iwxxm:AerodromeSurfaceWindForecast>
    </iwxxm:surfaceWind>
  <iwxxm:weather xlink:href="http://codes.wmo.int/306/4678/TSRA" 
   xlink:title="Thunderstorm with precipitation of rain"/>
  <iwxxm:cloud>
    <iwxxm:AerodromeCloudForecast gml:id="acf3">
      <iwxxm:layer>
        <iwxxm:CloudLayer>
          <iwxxm:cloudType xlink:href="http://codes.wmo.int/bufr4/codeflag/0-20-012/9"     
           xlink:title="Cumulonimbus"/>
          <iwxxm:amount xlink:href="http://codes.wmo.int/bufr4/codeflag/0-20-008/2" 
           xlink:title="Scattered"/>
          <iwxxm:base uom="m">300</iwxxm:base>
        </iwxxm:CloudLayer>
      </iwxxm:layer>
      <iwxxm:layer>
        <iwxxm:CloudLayer>
          <iwxxm:amount xlink:href="http://codes.wmo.int/bufr4/codeflag/0-20-008/3" 
           xlink:title="Broken"/>
          <iwxxm:base uom="m">600</iwxxm:base>
        </iwxxm:CloudLayer>
      </iwxxm:layer>
    </iwxxm:AerodromeCloudForecast>
  </iwxxm:cloud>
</iwxxm:MeteorologicalAerodromeForecastRecord>
</om:result>





Looking in detail, we see:





Attributes





 

changeIndicator="TEMPORARY_FLUCTUATIONS" cloudAndVisibilityOK="false">


 



  • The change indicator (i.e., attribute changeIndicator) is TEMPO


  • CAVOK (e.g. attribute cloudAndVisibilityOK)
    is false


 





Visibility





 

<iwxxm:prevailingHorizontalVisibility uom="m">1000</iwxxm:prevailingHorizontalVisibility>


 



  • Prevailing horizontal visibility is forecast to be 1000
    meters. (See the METAR tutorial for an explanation of units of measure.)


 





Surface
Wind





 

<iwxxm:surfaceWind>
  <iwxxm:AerodromeSurfaceWindForecast variableWindDirection="false">
    <iwxxm:meanWindDirection uom="deg">170</iwxxm:meanWindDirection>
    <iwxxm:meanWindSpeed uom="m/s">6</iwxxm:meanWindSpeed>
    <iwxxm:windGustSpeed uom="m/s">12</iwxxm:windGustSpeed>
  </iwxxm:AerodromeSurfaceWindForecast>
</iwxxm:surfaceWind>





The class <iwxxm:surfaceWind>
is used both for METAR and TAF.



  • Wind direction is not forecast to be variable


  • The mean wind direction is forecast to be 170 degrees
    (measured from true north)


  • The mean wind speed is forecast to be 6 meters per
    second with gusts to 12 meters per second


 





Weather





 

<iwxxm:weather xlink:href="http://codes.wmo.int/306/4678/TSRA" 
xlink:title="Thunderstorm with precipitation of rain"/>


 



  • A thunderstorm with rain is forecast




The METAR tutorial provides substantial detail on the registry that hosts these
codes and

the technique used in the schema to designate the vocabulary used.





Cloud





 

<iwxxm:cloud>
  <iwxxm:AerodromeCloudForecast gml:id="acf3">
    <iwxxm:layer>
      <iwxxm:CloudLayer>
        <iwxxm:cloudType xlink:href="http://codes.wmo.int/bufr4/codeflag/0-20-012/9" 
         xlink:title="Cumulonimbus"/>
        <iwxxm:amount xlink:href="http://codes.wmo.int/bufr4/codeflag/0-20-008/2" 
         xlink:title="Scattered"/>
        <iwxxm:base uom="m">300</iwxxm:base>
      </iwxxm:CloudLayer>
    </iwxxm:layer>
    <iwxxm:layer>
      <iwxxm:CloudLayer>
        <iwxxm:amount xlink:href="http://codes.wmo.int/bufr4/codeflag/0-20-008/3"    
         xlink:title="Broken"/>
        <iwxxm:base uom="m">600</iwxxm:base>
      </iwxxm:CloudLayer>
    </iwxxm:layer>
  </iwxxm:AerodromeCloudForecast>
</iwxxm:cloud>





The class <iwxxm:cloud>
is used in both TAF and METAR, and additional information can be

found in the METAR tutorial.



  • A scattered layer of cumulonimbus clouds with base 300
    meters is forecast


  • A broken layer of clouds with base of 600 meters is
    also forecast.





Page last modified on Saturday 14 of October, 2017 11:57:41 CEST