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.
2.709 Apr 2021 16:47
Temperatures in the summary view can also be shown in F. Decoding of binary BUFR messages now requires Geo::BUFR 1.37+ and ECC BUFR table files from ECWMF. Parsing of METAR and translations were improved. Various other small improvements were made, and a few bugs were fixed.
2.623 Dec 2019 12:08
HTML5 is now used for HTML output and the HTML generation functions of CGI.pm are not used anymore. Escaping special characters was improved when the output is shown as text. Parsing of TAF amendments and various other groups was improved and a few bugs were fixed.
2.521 Jul 2019 14:23
Processing of the WMO code table 0700 was improved. @rn/@rp is used for the temperature. Five more AMDAR (BUFR) groups are processed. noaa.gov, SourceForge and CoD URLs were switched to HTTPS. The dependency of the parser on POSIX (floor) was removed. Various other improvements were made and a few bugs were fixed.
2.402 Sep 2018 13:16
The period g0 for the SYNOP group 54g0sndT (section 3) defaults to the W1W2 period; timeBeforeObs is used instead of hoursFrom, hoursTill (not backwards compatible). Various additional METAR, SYNOP and BUFR groups are recognised, changes for FMH-1 (2017) were incorporated, and a few bugs where fixed.
2.321 Mar 2018 15:13
Perl 5.14.4 or newer (was: 5.10.1) is required. The summary view for clouds now also shows their compass direction. The original message and parts information is included in the data for BUFR messages with multiple observations. Processing of SAO AMOS/RAMOS was improved. The new option -P for install.pl can be used to remove the "use lib ..." pragma from scripts. The Makefile was removed. Files are not linked/copied anymore to dedicated web server directories; instead, the Apache configuration uses their original location. A separate Apache configuration is provided for Apache 2.4+.
2.217 Jun 2017 14:17
BUFR messages with multiple observations are split into one report per observation. Multiple observations of past weather (with different time periods) are allowed (not backwards compatible). A few minor bugs were fixed and several smaller improvements were made.
2.129 Oct 2016 08:33
The URL for fetching data from NOAA/IWS and NOAA/NWS was adapted, the search in data files was optimised and/or fixed. The friction coefficient for the runway state in METAR is allowed to be 0, all values are now decoded.
2.009 Jul 2016 13:55
Processing of decoded BUFR messages was extended. BUFR decoding of section 4 (data) can be skipped depending on fields in BUFR sections 1..3 with Geo::BUFR 1.33+. Multiple observations in an AMDAR message are allowed. The pseudo-BUFR (text) format was improved. Missing BUFR values are not reported as unprocessed. The CGI script recognises BUFR report types (IOB, IUA, ...). Decoding of binary BUFR messages was moved to src2raw.pm. Precipitation and cloud information is shown as list in one field instead of using 1..3 fields in the summary. Many smaller improvements were made and a few minor bugs were fixed.
1.5823 Dec 2015 20:33
The processing of meteorological reports from aircrafts (AMDAR) was added. Several minor improvements were made and a few minor bugs were fixed.
1.5714 Jul 2015 17:25
Perl 5.10.1 or newer (was: 5.8.1) is required. BUFR processing was extended. The download of data from Ogimet and NOAA/NWS dataserver was adapted. Several smaller improvements were made.
1.5617 Jan 2015 10:30
The processing of pre-analyzed BUFR messages was prepared. Pipe opens in the CGI script have been improved. Pod::Usage is used for the usage information. The Makefile was reduced to a bare minimum. The option -n (dry run) was added for install.pl. Several minor improvements were made and a few minor bugs were fixed.