metaf2xml: analysiere und dekodiere METAR, TAF, SYNOP, BUOY, AMDAR und schreibe Daten als XML
Beschreibung
metaf2xml kann Wetterbeobachtungen (METAR, SPECI, SAO) und
Wettervorhersagen (TAF) von Flughäfen, synoptische Wettermeldungen (SYNOP),
Wettermeldungen von Bojen (BUOY) und Flugzeugen (AMDAR) herunterladen,
analysieren und dekodieren. Daten können auch aus dekodierten
BUFR-Meldungen übernommen werden. Die so gewonnenen Daten können entweder
als XML geschrieben oder an eine benutzerdefinierte Funktion übergeben
werden (alles mit Perl).
Es bietet auch XSLT style sheets, um diese XML-Daten in verständliche
Sprache (Text, HTML) oder in XML mit anderen Schemata umzuwandeln. Eine
Web-basierte (CGI) Benutzerschnittstelle kann benutzt werden, um aktuelle
Wetterdaten von NOAA, Ogimet oder anderen Quellen zu holen und anzuzeigen.
Die aktuelle Version ()
ist 2.9
(Beschreibung der Änderungen).
Sie erfordert Perl 5.14.4+,
das für
Unix/Linux, macOS, und Windows
verfügbar ist.
Der Quelltext ist verfügbar als
TAR- oder
ZIP-Archiv und in
Git.
Verschiedene
installierbare Pakete
sind ebenfalls verfügbar.
Hintergrund
METAR und SPECI (Wetterbeobachtungen) und TAF (Wettervorhersagen) sind
unentbehrlich für Flugplanung und Entscheidungen während des Fluges (für
reale Flüge und Flugsimulation).
Wetterinformationen werden regelmäßig von Meteorologen weltweit für mehr
als 6200 Flughäfen bereitgestellt und über zuverlässige, nicht-öffentliche
Netzwerke verteilt.
SYNOP-Informationen werden weltweit von mehr als 7600 manuellen und
automatischen meteorologischen Stationen und mehr als 2500 mobilen
Stationen gesammelt und für Wettervorhersagen und Klimastatistiken
verwendet.
Das Format der Originalmeldungen ist abgekürzt, einige Bestandteile sind
kodiert.
Hier sind einige METAR-, TAF-, und SYNOP-Meldungen von Rio (SBGL, 83746),
New York (KJFK, 74486), und Tokio (RJTT, 47662) und Meldungen von
nahegelegenen Bojen (alphanumerisch (TAC) und dekodiert von BUFR):
Das Format der Meldungen (und eine Menge mehr über Wetterbeobachtung und
-meldungen) kann man in WMO Manual No. 306 oder in Annex 3 to
the Convention on International Civil Aviation finden; einige Länder
weichen von diesem Standard ab oder erweitern ihn, einige davon haben
Dokumentation darüber veröffentlicht (z.B.
Federal Meteorological Handbook No. 1 und No. 2
für die USA).
Vor allem das Format der Bemerkungen in METAR- und TAF-Meldungen und die
Kodierung der Abschnitte 3 und 5 in SYNOP-Meldungen hängen vom Land oder sogar
der Station ab.
metaf2xml kann für Flugsimulation oder von Piloten(-schülern) verwendet werden,
die ihr Wissen über Meldungsformate erweitern wollen, und von allen, die
einfach nur das aktuelle oder vorhergesagte Wetter an einer Station in
verständlicher Sprache erfahren wollen (siehe Beispiele unten).
Warum noch ein METAR/TAF-Analyseprogramm?
Es gibt andere Projekte, die sich mit METAR und TAF beschäftigen, z.B.:
die C-Bibliothek MDSP von NOAA/NWS,
auf SourceForge
(inaktiv),
auf GitHub,
ein MS Windows-Programm (läuft unter Wine) in einem ZIP-Archiv von
MetarWeather,
das Aviation Weather Center
der NOAA übersetzt (größtenteils) METAR- und TAF-Meldungen aus ihrer
Datenbank,
die Website
Ogimet bietet graphische und
text-basierte Oberflächen für aktuelle und ältere METAR-, TAF-, SYNOP- und
BUOY-Daten (bezogen von NOAA),
die Website
Meteomanz.com bietet graphische und
text-basierte Oberflächen für aktuelle und ältere SYNOP-Daten; die meisten
Teile der Meldungen werden auch in verständliche Sprache (Englisch,
Spanisch) übersetzt,
Allmetsat
bietet eine graphische Oberfläche zu METAR- und TAF-Daten
(Quelle: NOAA/IWS); die wichtigsten Teile der Meldungen werden auch in
verständliche Sprache übersetzt.
Aber irgendwie vermisste ich immer eine Eigenschaft, die ich gern gehabt hätte.
Eigenschaften von metaf2xml
3.524
Verarbeitung der Meldungen
Das Analyse-Modul
(Anleitung in Englisch)
akzeptiert (= verarbeitet) oder toleriert (= markiert als Fehler) viele
Erweiterungen des Standards; sie sind im Quelltext mit "EXTENSION" markiert.
Viele kleinere, häufige Formatfehler werden vor der Analyse korrigiert, es
sind mehr Kombinationen von Wetterphänomenen erlaubt, das Fehlen von
Informationen wird in vielen Fällen erkannt.
Alle Bemerkungen werden verarbeitet, einige davon werden abhängig vom
Ursprungsland oder der Station interpretiert, z.B. 'MON INVIS VAL FOSCHIA' und
QUL/QUK (Italien), 'JP' (einige Karibikländer), 'YLO1' (Militär), alles aus dem
Federal Meteorological Handbook No. 1 und dem Air Force
Manual 15-111 (19.12.2003), 'RSNK' und 'LAG PK' (Daten von weiteren
Wetterstationen), und viele mehr.
Im Moment werden mehr als 80 Arten von METAR-Bemerkungen erkannt, von simplen
Schlüsselwörtern ganz abgesehen (siehe auch das
DTD-Schema).
Das Modul kann die Daten als XML schreiben.
Alternativ kann eine callback-Funktion registriert werden, an die
schrittweise die gleichen Daten in der gleichen Reihenfolge wie für die
XML-Ausgabe übergeben werden.
Die Daten enthalten ausschließlich Informationen der Originalmeldung, mit 2
Ausnahmen: die relative Feuchte (eigentlich 4 verschiedene Werte von 4
verschiedenen Formeln) und die Hauptwolkenuntergrenze (falls es eine gibt);
diese 2 Bestandteile sind in XSLT umständlich zu berechnen.
Für jedes Datenelement wird der entsprechende Text aus der Meldung
mitgeliefert.
Das Ziel ist, so viele Informationen wie möglich aus einer Meldung zu
erhalten, ohne Teile davon falsch zu interpretieren, und dass die
ausgegebenen Daten nicht mehr analysiert werden müssen.
Herkunft der Meldungen
Meldungen können einfach als Text angegeben werden.
Außerdem kann das Programm metaf.pl
(Anleitung in Englisch)
von der Kommandozeile aus oder als CGI-Programm benutzt werden, um aktuelle
Wetterdaten von einem Internet-Server, aus einer SQL-Datenbank oder
einer lokalen Datei zu holen und in verständlicher Sprache anzuzeigen.
metaf.pl benutzt das Modul src2raw.pm
(Anleitung in Englisch)
um korrekt formatierte Meldungen aus den Dateien der öffentlichen Server zu
extrahieren.
Anzeige der XML-Datei
Das Projekt stellt auch XSLT style sheets bereit, um das XML in verständliche
Sprache als Text oder HTML in
Englisch,
Deutsch, und
Spanisch
umzuwandeln.
Das Ausgabeformat für HTML zeigt jede Meldung in einer eigenen Tabelle an.
In der linken Spalte steht der Inhalt des entsprechenden Teiles der
Originalmeldung und in der ersten Zeile steht die Originalmeldung (siehe auch
Screenshots des Projektes oder Beispiele unten).
Um den Inhalt zu Text oder HTML zu konvertieren, wird das Programm "xsltproc"
benutzt, aber andere, ähnliche Programme sollten problemlos funktionieren.
Weiterhin gibt es auch XSLT style sheets, um eine Kurzfassung oder einen
Überblick zu erzeugen: angezeigt werden nur einige Bestandteile der Meldungen,
in abgekürzter Form, jede Meldung eine Zeile.
Kommandozeilen-Schnittstelle
Das Programm metaf2xml.pl
(Anleitung in Englisch)
liest Meldungen, verarbeitet sie, und schreibt die
XML-Daten auf die Standardausgabe.
Sie kann dann als Eingabe für "xsltproc" oder ähnliche Programme dienen,
um HTML oder Text zu erhalten.
Das Programm metaf.pl
(Anleitung in Englisch)
kann benutzt werden, um aktuelle Meldungen von anderen Quellen zu holen.
Web-basierte Schnittstelle
Idealerweise sollte jeder XML-fähige Browser das XML mit Hilfe des in der
Datei angegeben XSLT style sheets verarbeiten und das Ergebnis anzeigen können.
Es gibt jedoch einige, die nicht XML-fähig sind.
Das Programm metaf.pl
(Anleitung in Englisch)
bietet eine Schnittstelle mit XML/XSLT oder reinem HTML.
Die XML-Daten sieht man, wenn als Ausgabeformat "XML" gewählt wurde und man
sich dann den Seitenquelltext anzeigen lässt.
Quellkode ist verfügbar und GPL
Jeder, der möchte, ist gerne eingeladen, etwas zum Projekt beizutragen.
Der beste Startpunkt ist das
Ticket-System.
Zum Ausprobieren
Die aktuelle Version von metaf2xml kann bei SourceForge ausprobiert
werden.
Allerdings kann die Demo-Version keine aktuellen Meldungen für Stationen
liefern, da SourceForge keine ausgehenden Verbindungen ins Internet
zulässt. Die Meldungen werden stattdessen aus einer Datenbank auf dem
SourceForge-Server geholt. Die Datenbank wird nur von Zeit zu Zeit
aktualisiert, momentan hat sie Daten für
.
Bei der
Demo-Version mit Grafik
(verwendet Ajax) werden Stationen auf einer Karte durch einen Punkt markiert.
Die Karte kann in verschiedenen Vergrößerungen angezeigt und durch Anklicken und
Ziehen verschoben werden.
Die angeforderten Meldungen werden unterhalb der Karte angezeigt, die
neueste zuoberst.
Die Liste der Stationen wird dynamisch aus der gleichen Datenbank erzeugt.
Bei der
text-basierten Demo-Version
können Wettermeldungen eingegeben werden.
Wird eine Option mit "Id(s)" gewählt, können auch Stationskennungen
eingegeben werden.
Quellen für Wetterdaten
Verschiedene Organisationen und Anbieter ermöglichen freien Zugang zu aktuellen
und älteren Wetterdaten, z.B.:
Das Ergebnis der Analyse der o.a. Beispielmeldungen ist in
example.xml
(XML ohne XSLT style sheet-Referenz).
Mit den XSLT style sheets des Projektes sieht die Ausgabe in verständlicher
Sprache (hier: als HTML, zuerst als Zusammenfassung, darunter detailliert)
so aus: