metaf2xml Changelog

What's new in metaf2xml 2.9

Jan 22, 2024
  • src2raw, dtd, lang, ui, cgi:
  • adapt to new NOAA AWC Data API
  • parser, xsl, dtd, lang:
  • METAR remarks NZxx: process surface / horizon definition
  • parser, src2raw, dtd, lang:
  • recognise "ADV" (METAR), "ADVISORY OFFSITE" (TAF) as advisory

New in metaf2xml 2.8 (Sep 26, 2022)

  • parser, src2raw, metaf2xml.pl, cgi:
  • AMDAR: messages from SBAO start with "ARP" instead of "AMDAR"
  • xsl, metaf-sum, lang:
  • define and apply decimal separator
  • xsl, lang:
  • improve display of value ranges
  • parser, bufr, dtd:
  • BUOY (BUFR), AMDAR: process precision of temperature observation
  • BUOY (BUFR): omit method of salinity/depth measurement if not available or salinity not measured
  • parser, bufr, xsl, dtd:
  • tempChange: use tempChangeVal instead of temp
  • parser, xsl, dtd:
  • METAR remarks: put consecutive clouds into one remark
  • METAR remarks: use separate remark for embedded/associated cloud types
  • parser:
  • METAR remarks EGxx: move colour codes with trend to main/trend section
  • cgi:
  • data source can have username and password

New in metaf2xml 2.7 (Apr 11, 2021)

  • parser, metaf-sum, ui, lang, cgi:
  • summary: temperatures can also be shown in °F
  • parser, xsl, metaf-sum, dtd:
  • TAF: distinguish trend types "FM" and "PROB"
  • src2raw:
  • require Geo::BUFR 1.37+ and use ECC BUFR table files
  • metaf2xml.pl, cgi, metafsrc2raw.pl:
  • force layer :bytes for input (in case :utf8 is the default)
  • parser, xsl, dtd, lang:
  • METAR/TAF: use trendType/@q as duration of variation
  • METAR: use trend/@q as trend period
  • METAR/TAF: improve warnings
  • xsl:
  • MSXML2.XSLTemplate processor does not transform call-template defined via ENTITY (gui.js)

New in metaf2xml 2.6 (Dec 23, 2019)

  • xsl, metaf-sum, ui, sum-ui, fullhtml, lang, cgi, css:
  • use HTML5. do not use HTML generation functions of CGI.pm
  • parser, xsl, dtd, lang:
  • TAF: extend parsing for amendment info
  • metaf-sum, lang:
  • BUOY summary: show seaSurfaceTemp
  • parser, xsl, dtd:
  • SYNOP section 2: allow displacement

New in metaf2xml 2.5 (Jul 21, 2019)

  • parser, xsl, dtd, lang:
  • use @rn/@rp for temperature, avoid "-0"
  • METAR: use timePeriod=synopMainHour if obs hour is unknown
  • parser, xsl, dtd:
  • SYNOP code table 0700: Da=9 means locationSpec=allDirections
  • SYNOP section 3: remove from
  • parser, bufr, xsl, metaf-sum, dtd, lang:
  • AMDAR (BUFR): process obsTime with seconds and 5 more groups
  • parser:
  • METAR Cxxx cloud height, vert. vis.: use correct deviation
  • METAR temperature: allow spaces around slash, allow missing air temperature
  • SYNOP code table 0700: Dp must be 1..8
  • remove dependency on POSIX (floor)
  • cgi:
  • switch tgftp.nws.noaa.gov to HTTPS
  • src2raw, dtd, cgi:
  • FSU data service was removed from public access

New in metaf2xml 2.4 (Sep 3, 2018)

  • 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.

New in metaf2xml 2.3 (Mar 21, 2018)

  • parser, bufr, src2raw, metaf2xml.pl, cgi, metafsrc2raw.pl, install.pl:
  • require Perl 5.14.4+ (use "package NAME VERSION", implicit strictures, -'-1' is no longer '+1' but 1)
  • parser, bufr, dtd:
  • add XML attributes part, parts, s_all if original message has multiple observations
  • install.pl:
  • add option -P (comments out "use lib ..." in installed scripts)
  • remove install to HTDOCS_DIR, CGI_BIN_DIR
  • remove installation variables CGI_BIN_DIR, HTDOCS_DIR, USE_CP
  • describe only installation from sources
  • cgi, install.pl:
  • configuration/installation variables: add CURL_PATH, CURL_OPTS, XSLTPROC_PATH; rename METAF2XML_XSL -> METAF2XML_SHARE
  • Makefile:
  • remove
  • metaf-sum:
  • show compass direction for clouds

New in metaf2xml 2.2 (Jun 19, 2017)

  • parser, bufr:
  • split BUFR messages with multiple observations parser, bufr, xsl, metaf-sum, dtd:
  • SYNOP: allow multiple past weather (not backwards compatible)
  • cgi:
  • test for local files/DB only if messages need to be fetched
  • ui, cgi, css:
  • allow longer messages
  • change page top to match home page install.pl,
  • Makefile:
  • make path for Perl binary configurable
  • metaf2xml.pl:
  • remove code for deprecated option -TBUFR
  • option -D takes an argument

New in metaf2xml 2.1 (Nov 1, 2016)

  • cgi:
  • adapt to new URLs for NOAA/IWS and NOAA/NWS
  • optimise and/or fix file search and server queries parser, xsl, dtd, lang:
  • METAR runway state: allow friction coefficient 00; decode all values (not backwards compatible)
  • bufr:
  • omit associated field if significance is missing
  • Git commits:
  • 936383f: METAR runway state: allow friction coefficient 00; decode all values
  • Decoding: The value for the friction coefficient is divided by 100, the value for the braking action is BA_POOR, BA_POOR_MED, ... instead of 91, 92, ... These changes are not backwards compatible.
  • 943e61e: cgi: adapt NOAA URLs. optimise and/or fix file search and server queries
  • 292f843: minor changes including:
  • bufr: omit associated field if significance is missing
  • ui, cgi: avoid leading blank for example messages

New in metaf2xml 2.0 (Aug 22, 2016)

  • extend BUFR processing src2raw, metaf2xml.pl metafsrc2raw.pl:
  • decode binary BUFR in metaf2xml::src2raw, deprecate "metaf2xml.pl -TBUFR" parser, xsl, dtd, lang:
  • METAR remarks: recognise Ihnnn (ice accretion) parser, xsl, metaf-sum, dtd, lang:
  • group AMDAR measurements in metaf-sum:
  • show precipitation and cloudInfo as lists in one field
  • SYNOP, BUOY: show wave data
  • SYNOP: separate lowest cloud base from total cover with comma cgi:
  • allow selection by report type for BUOY (SS|IOB), AMDAR (UD|IUA)
  • recognise report type IS[IMN] for (BUFR) SYNOP cgi, install.pl:
  • change default CGI_{DATA,LOG}_DIR from /var/tmp to /var/opt/metaf2xml as required by the FHS
  • change default log file name from metaf2xml.log to metaf.log install.pl:
  • change default METAF2XML_{MAN,DOC,XSL} as required by the FHS xsl, ui, metaf-sum, dtd, cgi:
  • remove unused translation stubs for pl, pt-br parser, dtd:
  • 70HwaHwaHwa (SYNOP) and 20PwaPwaPwa 21HwaHwaHwa (BUOY) are more exact values, not additional measurements

New in metaf2xml 1.55 (Jun 3, 2014)

  • xsl, metaf-sum, ui, lang, install.pl:
  • rename metaf-lang*.xsl to what they are: .xml
  • parser, metaf2xml.pl, cgi:
  • replace metaf2xml::parser::finish_* by metaf2xml::parser::finish
  • parser, xsl, metaf-sum, dtd, lang:
  • TAF: use tag minQNH for forecast lowest altimeter setting
  • xsl, lang:
  • METAR/TAF: improve weather translation. show CNL in title, NIL as group
  • parser, xsl, dtd:
  • TAF: add volcanic ash forecast
  • parser:
  • temperature: do not omit '-' for M00 (METAR,TAF) and x1000 (SYNOP,BUOY)
  • METAR/TAF visibility: add range only for reportable values
  • parser, src2raw, metaf2xml.pl, cgi, metafsrc2raw.pl, install.pl:
  • use L for Pod links to manuals

New in metaf2xml 1.53 (Sep 30, 2013)

  • parser, xsl, dtd, lang:
  • SYNOP section 3: process groups 918sqDp, 919MwDa, 97[5-9]vpDp,
  • 959vpDp
  • parser, xsl, metaf-sum, dtd:
  • SYNOP section 9: process group 0dxdxfxfx for DE
  • metaf-add, ui, dtd, lang, cgi:
  • distinguish SYNOP by station type (wmo,ship,mobil) instead of source
  • (land,ship)
  • xsl, metaf-sum:
  • SYNOP: show offset to actual obs. time
  • support GUI demo with browsers based on WebKit
  • metaf-sum, lang:
  • improve handling of summary header
  • metaf-sum:
  • wind: show direction for gusts, use 1 column instead of 2
  • mark derived humidity
  • parser, src2raw, metaf2xml.pl, cgi, metafsrc2raw.pl:
  • allow and make check for exact Perl module version
  • xsl, ui, cgi, css, install.pl:
  • move style to CSS file to allow stricter CSP directives
  • parser, xsl, metaf-sum, lang, cgi:
  • if data source is DB: also get station info from DB
  • parser:
  • SYNOP section 3: allow ///// as 5j1j2j3j4 group. process tempMax,
  • tempMin for MOBIL
  • parser, metaf2xml.pl:
  • allow character data in "empty" nodes
  • install.pl:
  • settings can be provided as arguments. extend description of
  • installation
  • fix installation of files having CRLF as end-of-line
  • improve installation of man pages
  • metaf-add:
  • adapt to changes in DTD, stations.xml. improve namespace handling

New in metaf2xml 1.51 (Feb 21, 2013)

  • METAR/TAF: use code table 1690 for heights and vert. vis. except for US
  • parser, xsl, metaf-sum, dtd
  • SYNOP US: use FMH-2 instead of code table 1600 for base of lowest cloud parser, xsl, dtd, lang
  • extend processing of SAO parser, XML, xsl, dtd:
  • METAR: 5 groups handled as extensions become remarks

New in metaf2xml 1.50 (Nov 1, 2012)

  • new data source: SQL database
  • parser, XML, src2raw, xsl, dtd, lang:
  • extend processing of SAO
  • xsl, ui, metaf-sum, dtd, lang, cgi:
  • prepare translations for pl, pt-br
  • xsl, ui, metaf-sum, lang, install.pl:
  • split metaf-lang-{de,en,es,pl,pt-br,ru}.xsl from metaf-lang.xsl
  • lang:
  • improve Russian translation (thanks to Roman Nikitin).

New in metaf2xml 1.49 (Jul 20, 2012)

  • parser, xsl, dtd, lang:
  • complete processing of BUOY sections 3 and 4
  • XML, metaf2xml.pl:
  • use option -o instead of -x; option -x will become obsolete
  • metaf2xml.pl:
  • example callback functions: honor option -o, add filter
  • parser, src2raw:
  • process (canadian AUTO) SAO
  • parser:
  • METAR, TAF: tolerate one previously unrecognized group before a recognized mandatory group

New in metaf2xml 1.47 (Jan 5, 2012)

  • BUOY sections 1, 2: process quality control indicators for section
  • BUOY: process quality control indicators for position and time
  • SYNOP section 5: add processing for country BE
  • parser, xsl, dtd, metaf-sum:
  • use instead of
  • cloudTypes: improve display of oktas
  • xsl, lang:
  • mark derived values
  • xsl, metaf-sum, lang:
  • move country name translations to station.xml
  • cgi:
  • if HTTP header DNT (Do Not Track) is 1: log only x's as IP address
  • parser, XML, src2raw:
  • improve version string handling
  • ui, cgi:
  • use HTTP method GET instead of POST (no data is changed on the
  • server)
  • INSTALL, install.pl:
  • generate INSTALL from POD in install.pl

New in metaf2xml 1.43 (Apr 8, 2011)

  • add processing of BUOY messages sections 0, 1, 2
  • install.sh, INSTALL, Makefile:
  • minor changes to how and which files are installed
  • install.sh: set CGI_LOG_FILE from $CGI_LOG_DIR/$CGI_LOG_NAME
  • install.sh: install metaf.pl also to METAF2XML_BIN,
  • install metafsrc2raw.pl only for "cgi"
  • install.sh: install example configuration for Apache
  • INSTALL: adapted to above changes
  • Makefile: avoid duplicate shell commands, use install.sh instead
  • metaf-sum, cgi:
  • do not make text of report a link or provide station info as hint if
  • called from command line or for format=text
  • metaf2xml.pl, metafsrc2raw.pl:
  • extend option -H to 5: with optional group BBB
  • cgi:
  • add parameter "end_date" for Ogimet (usable from command line, only)

New in metaf2xml 1.42 (Feb 7, 2011)

  • 11 more groups in SYNOP section 3 are now processed, processing of some other groups in sections 1, 2 and 3 has been improved.
  • There is a new trend type "FM" for TAF reports.
  • The XML nodes "reports" and below now have a non-empty namespace.
  • The handling of time periods was improved.
  • The option -X for metaf2xml.pl was removed. Many smaller improvements and a few bugfixes were made.

New in metaf2xml 1.41 (Oct 16, 2010)

  • SYNOP section 2: process groups 6IsEsEsRs/ICING, ICE ciSibiDizi
  • SYNOP section 5: fix and extend processing of US sea reports
  • SYNOP section 2: allow 99 for direction and period of swell
  • parser, dtd, xsl:
  • SYNOP section 2: allow missing speed for displacement
  • parser:
  • SYNOP section 0: determine country for mobile land stations
  • SYNOP section 2: improve determination of country from call sign
  • metaf-sum, lang:
  • pressure tendency is for station level if provided
  • improve display of past weather

New in metaf2xml 1.40 (May 22, 2010)

  • cgi:
  • don't print any HTML if called from command line and format=text
  • set TZ=GMT0 to prevent offsets from mktime()
  • NOAA/IWS has only 24 files, don't download any of them twice
  • only return valid names for file list from NOAA/NWS
  • xsl, metaf-sum:
  • revert commit a434444 (xsl cleanup: use ...) to avoid excessive
  • memory usage by xsltproc
  • if $lang is set but invalid: use default language instead of @lang
  • parser:
  • process SYNOP group 00fff (wind speed >99) even if speed unit is unknown
  • minor bugfixes: reject invalid code 05 for SYNOP additional weather,
  • always include all available decimal places
  • xsl:
  • minor bugfix: show direction of cloud for SYNOP group 57CDaeC
  • metaf-sum:
  • improve output for gusts

New in metaf2xml 1.39 (Apr 21, 2010)

  • SYNOP section 3: process groups 926S0i0 (hoar frost/coloured precip.),
  • 929S8S'8 (drift snow), 93[2-7]RR (deposits), 928S7S'7 (snow cover), and
  • 940Cn3 (evolution of clouds)
  • METAR: improve parsing for remarks
  • parser, dtd, xsl:
  • METAR runway state: allow (and mark invalid) states U, D, N
  • SYNOP section 1: allow /// for geopotential
  • TAF periods: process but warn about mixed pre/post August 2007 format and
  • ambiguous period (pre August 2007 format)/wind groups

New in metaf2xml 1.34 (Jan 7, 2009)

  • METAR: recognise new format for runway state
  • TAF: recognise new date/time formats also for max./min. temperature
  • SYNOP: tolerate invalid values for table 4377