Home
Name Modified Size InfoDownloads / Week
2.9 2023-10-22
readme.txt 2023-10-22 5.2 kB
Totals: 2 Items   5.2 kB 2
metaf2xml can download, parse and decode aviation routine weather reports
(METAR, SPECI, SAO), aerodrome forecasts (TAF), synoptic observations
(SYNOP), observations from buoys (BUOY) and meteorological reports from
aircrafts (AMDAR). Data can also be taken from decoded BUFR messages.
The extracted data can be written as XML or passed to a user-defined
function (all done in Perl).

It also provides XSLT style sheets to convert the XML to plain language
(text, HTML), or XML with different schemas. A web-based (CGI) user
interface can be used to download and display up-to-date weather data from
NOAA, Ogimet, and other sources.

The documentation for all Perl scripts and modules (as manual and in other
formats) can be generated from the POD inside them.

metaf2xml consists of the following files:

metaf2xml/parser.pm (manual: metaf2xml::parser(3pm))
    Perl module to parse messages and write the data as XML or pass
    it to a user-defined function

    requires the Perl module metaf2xml::bufr

    The XML output is intended to:
    - contain all data from the message, but no additional data,
    - allow validation to be as strict as possible,
    - not require further parsing or decoding,
    - be concise, and human-legible.

    DTD is used for validation, as XSD seemed more effort.

    DTD cannot restrict the string-value of a node, but only its
    attributes. Therefore values are assigned to an otherwise empty node
    with the attribute 'v' (for "value") and, if applicable, 'u' (for
    "unit"), 'q' (for "qualifier"), and 'rp'/'rpi' and/or 'rn'/'rne'
    (possible positive and/or negative deviation from the displayed value
    due to rounding of the observed value):

       <wind>
        <dir v="210" rp="4" rn="5"/>      <!-- 205 .. <214° -->
        <speed v="12" u="KT"/>            <!-- 12 kt -->
       </wind>
       <RVR>
        <distance v="325" rp="25" u="M"/> <!-- 325 .. <350 m -->
       </RVR>
       <cloudCover v="OVC"/>

    Each entry also contains the original string from the message as an
    attribute named 's' (for "string"):

       <cloud s="OVC200">
        <cloudBase v="20000" u="FT"/>
        <cloudCover v="OVC"/>
       </cloud>

    There are 2 exceptions to the "no additional data" goal:
    - if a cloud layer is the ceiling, it will have the "isCeiling" tag
    - if temperature and dew point are given it will have 4 tags for the
      humidity (from 4 different formulas)
    Both items are considered "hard to compute" in XSL though it certainly
    is possible.

    Versioning of the contents of the XML is implemented using the
    namespace attribute for the "<reports />" node with the version as the
    last part of its value.

metaf2xml/bufr.pm
    supplementary Perl module for metaf2xml::parser to process a decoded
    BUFR message

metaf2xml.pl (manual: metaf2xml(1))
    example Perl script for metaf2xml::parser

metaf2xml/src2raw.pm (manual: metaf2xml::src2raw(3pm))
    Perl module to convert data from different sources of weather
    information to the format expected by metaf2xml::parser

    requires the Perl module Geo::BUFR 1.37+ and ECC BUFR table files from
    ECWMF to decode binary BUFR messages

metafsrc2raw.pl (manual: metafsrc2raw(1))
    example Perl script for metaf2xml::src2raw

metaf.pl (manual: metaf(1))
    (CGI) script to download and display METAR/TAF/SYNOP/BUOY/AMDAR messages

    requires the Perl modules CGI, metaf2xml::parser, metaf2xml::src2raw
    may require curl, xsltproc, and/or a web server (depending on use)

metaf.xsl
    XML style sheet to transform the contents of the generated XML file
    for detailed output

    All groups/items are converted to plain language (language support
    from metaf-lang*.xml), one line (or more) per group/item.
    The output format can be text or HTML. For the text format, the
    columns are separated by tabulators.

metaf-sum.xsl
    XML style sheet to transform the contents of the generated XML file
    for summary output

    The output is in the form of a summary, one line per message
    (plus one line per METAR/TAF trend).
    The output format can be text or HTML. For the text format, the
    columns are separated by tabulators.

metaf-html.xsl, metaf-text.xsl
    XML style sheets for detailed output

    They define the output method (HTML or text) and then include
    metaf.xsl.

metaf-sum-html.xsl, metaf-sum-text.xsl
    XML style sheets for summary output

    They define the output method (HTML or text) and then include
    metaf-sum.xsl.

metaf-ui.xsl
    XML style sheet to generate the header, footer and input form for the
    user interface

metaf-fullhtml.xsl, metaf-sum-ui.xsl
    XML style sheets for the user interface

    They define the output method HTML and then include metaf.xsl or
    metaf-sum.xsl, respectively, and metaf-ui.xsl.

metaf-lang.xml, metaf-lang-*.xml
    XML files with translated plain language text in various languages

stations.xml
    example data file with additional station information, read by
    metaf.xsl and metaf-sum.xsl
    This is, and will remain, a stub, and will not be extended or updated.

metaf.dtd
    the Document Type Definition for the XML data
Source: readme.txt, updated 2023-10-22