Cancel Fullscreen
Loading...
 

This is the static archive copy of the old wiswiki, decommissioned on June 1 2020

Print

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

Tutorial: TAF for fictional airport YUDO
Note that this tutorial has not been updated for IWXXM 3.0

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 NamespaceDefault namespace prefix
XML Schemahttp://www.w3.org/2001/XMLSchema xsd
XML Linking Languagehttp://www.w3.org/1999/xlinkxlink
OGC GML 3.2.1http://www.opengis.net/gml/3.2gml
ISO/TS 19139:2007 metadata XML schema implementationhttp://www.isotc211.org/2005/gmd gmd
OMXML Observations and Measurementshttp://www.opengis.net/om/2.0 om
OGC OMXML Sampling Featureshttp://www.opengis.net/sampling/2.0sf
OMXML Spatial Sampling Featureshttp://www.opengis.net/samplingSpatial/2.0sams
WMO Observable Property Model(1.2)http://def.wmo.int/opm/2013opm
METCE (1.2) http://def.wmo.int/metce/2013metce
ICAO Meteorological Information Exchange Model (2.1http://icao.int/iwxxm/2.1iwxxm


Note that the XML Namespace is distinct from the schema locations. For reference, these are provided (IWXXM-2-Info">here)).

Overview: the TAF report<p></p>

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 <span class="SpellE">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 (i.e. attribute cloudAndVisibilityOK) is false

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


  • Prevailing horizontal visibility is forecast to be 1000 metres. (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 metres is forecast
  • A broken layer of clouds with base of 600 metres is also forecast.


Page last modified on Friday 11 of May, 2018 12:30:33 CEST