Aktuelle DWD Messdaten
Für ein kleines Projekt benötigte ich mal-eben-schnell die aktuellen Außentemperaturen vor Ort. Eine eigene Wetterstation war keine vorhanden, andere Sensorik ebenfalls nicht. Wetter-Daten gibt es auch im Internet; im Jahr 2024 garantiert auch via REST-API, kein Problem dachte ich. Dienstleister bei denen ein Account notwendig ist oder andere private Seiten wollte ich nicht verwenden gibt es doch den DWD. Eine kurze Suche nach DWD und REST-API lieferte den Endpunkt einer API, allerdings waren dort in ziemlich aufwändigen Strukturen lediglich Vorhersage-Daten zu finden nicht jedoch die aktuellen Messwerte. Die Daten aus irgendwelchen Tabellen von den Seiten des DWD herauszuziehen wollte ich auch nicht, dann wäre dauerhaftes Nacharbeiten angesagt.
Also: Selbermachen. Bei weiterführenden Recherchen auf den Seiten des DWD bin ich schließlich auf den OpenData Server des DWD gestoßen auf dem aktuelle und historische Messdaten zu finden sind. Dort gibt es ziemlich viele Daten; in lesbarer Form jedoch in Formaten, die sich eine unmittelbare automatisierte Verarbeitung nur bedingt verwenden lassen (Archiv-Formate, inkrementell geschriebene Datensätze, etc.). Letztendlich habe ich dann in binärer Form die Daten gefunden, die ich suchte: Aktuelle Messdaten (Synchronoptische Meldungen, SYNOP) im BUFR-Format.
Auf Basis dieser synoptischen Daten ist dann sowohl eine Übersicht mit aktuellen Messdaten aller Stationen (auch die in der Antarktis) sowie eine API für die Abfrage der Stationsdaten genau einer einzelnen Station entstanden.
Stationsliste
Auf der Seite mit den Messdaten finden sich auch Verweise für den Download der Daten im JSON-Format. Für die Freunde der gepflegten Textausgabe gibt es diese Liste ebenso formatiert.
API
Für die Abfrage einer Station ist eine eindeutige Kennung zu verwenden, auf den Seiten des DWD finden sich zu verschiedenen Stationen eine Vielzahl von Identifizierern, Stationskennungen sowie Stations-IDs. Leider gibt es auf den Webseiten des DWD keine zentrale Stelle an der beschrieben wird, was diese Kennungen bedeuten oder nach welchem Schema diese vergeben werden. Die Verwendung der unterschiedlichen Kennungen bei der oben erwähnten API führte daher manchmal zu einem Ergebnis, oft aber auch nicht. Insgesamt eine etwas unbefriedigende Situation. Im Handbuch für die BUFR-Kodierungen der SYNOP-Nachrichten habe ich dann allerdings den entscheidenden Hinweis gefunden:
Sofern keine WMO-Kennung (fünfstellige Zahl) für die Station vorhanden ist, wird die nationale Kennung (C-Kennung, alphanumerisch aktuell vier Stellen) verwendet.
Der Endpunkt der API ist
http://tools.kyubu.de/dwd/id/<station_id>
wobei
Die Skala der Temperaturwerte lässt sich dabei mit dem Parameter u einstellen:
- c: Celsius
- f: Fahrenheit
- k: Kelvin
Werkzeuge für die DWD-Synop-Meldungen
Nachfolgend ist eine kurze Liste mit Dokumentationen und Werkzeugen für die Verarbeitung von BUFR-kodierten Daten im Wesentlichen als Notizzettel während der Entwicklung entstanden. Vielleicht ist dieser für den einen oder anderen auch hilfreich.
Dokumentation
Tools
eccodes codes_set instructions
-
unpack: Entpacken der BUFR-Daten
-
extractSubset: Index des Subsets zum extrahieren
-
doExtractSubsets: Extraktion der/des Subsets (danach mit codes_clone in ein anderes Handle kopieren)
codes_set(buf, "extractSubset", subsetNumber) codes_set(buf, "doExtractSubsets", 1)
Disclaimer
Wetterdaten: Quelle: Deutscher Wetterdienst
Fragen, Hinweise und Kommentare: delta whiskey delta - lima india sierra tango echo @ kilo yankee uniform bravo uniform . delta echo