Wetterwarnungen vom DWD – Alternative: GDS (FTP)

ACHTUNG: Der GDS-FTP-Server wird zum 15.01.2018 abgeschaltet.

Wie schon im ersten Beitrag zu erahnen, war ich mit den Wetterdaten auf Landkreisebene nicht wirklich zufrieden. Es soll zwar irgendwann auch eine Json-Schnittstelle mit Gemeindewarnungen geben, aber diese gibt noch nicht.

Der DWD liefert per FTP-Server – ebenfalls kostenlos – Wetterdaten im CAP-Format auf Gemeindeebene an. Das Ganze nennt sich GDS (Global Basic Data Set) und ist hier zu finden:

http://www.dwd.de/DE/leistungen/gds/gds.html?nn=480258

Nach einer kostenlosen Registrierung erhält man per Mail die FTP-Zugangsdaten. Der FTP-Server ist voll von Wetterdaten und Grafiken. An der richtigen Stelle findet man eine Menge ZIP-Dateien die unterschiedlich viele XML-CAP-Dateien enthalten.

FTP-Ordnerstruktur

In der zuletzt erstellten ZIP-Datei sind die aktuellen Meldungen enthalten. Für jede Wetterwarnung in Deutschland steht eine XML-CAP-Datei, worin die betroffenen Regionen aufgelistet sind (auf Gemeindeebene).

Hier ein Beispiel eines „Warnhinweis vor STARKWIND“ für das Seegebiet Viking in der Nordsee (Warncell-ID 401000006):

Im Gegensatz zu den Json-Daten gibt es hierzu eine vollständige Dokumentation, was mich sehr gefreut hat:

http://www.dwd.de/DE/leistungen/gds/help/warnungen/cap_dwd_profile_de_pdf.pdf

Das Prinzip der Json-Variante, bei der bei jedem Aufruf der Webseite, die Json-Daten ausgewertet wurden, lässt sich hier natürlich nicht anwenden. Die Zeit, die das Script brauchen würde, die Infos aus den Dateien in der ZIP-Datei vom FTP-Server zu lesen, wäre viel zu lang und die Darstellung auf der Webseite wäre viel zu sehr verzögert.

Aus diesem Grund ist mir die Idee gekommen, die Wetterdaten selbst aufzubereiten und im gleichen Format wie der DWD es tut bereitzustellen. Das hat den Vorteil, dass ich mein bisheriges Script zur Anzeige der Warnungen kaum verändern muss.

Also erstelle ich ein Script, welches wie folgt strukturiert ist:

  1. Anmeldung an FTP-Server
  2. Prüfen ob Datei bereits heruntergeladen wurde (unnötigen Traffic vermeiden)
  3. Download der aktuellsten ZIP-Datei (Sortierung nach Name)
  4. Abmeldung von FTP-Server
  5. Entpacken in temporäres Verzeichnis
  6. XML-Dateien parsen und Informationen sammeln und aufbereiten
  7. Speichern der Daten als Datei (Datenbank wäre natürlich auch möglich)

Ergebnis ist folgendes Script, welches per Cronjob alle 10 Minuten ausgeführt wird:

 

Der Abruf der Wetterwarnungen für eine bestimmte Gemeinde geschieht über folgendes Script:

Beispiel:

http://mt88.eu/weather/get_warnings.php?regionCode=401000006

Weitere Infos: Unwetterdaten Service

Categories: DWD Unwetter Parser