© prettyboy80/Shutterstock.com
Nutzung von OpenWeatherMap für den eigenen Wetterdienst

Better Weather mit OpenWeatherMap


Mal Hand aufs Herz, das Wetter spielt doch verrückt. Da gilt es, einen kühlen Kopf zu bewahren und am besten selbst einen Wetterdienst einzurichten. OpenWeatherMap [1] ist ein Onlineservice, der eine frei nutzbare und gut dokumentierte Programmierschnittstelle (API) für Wetterdaten, Wettervorhersagen sowie historische Wetterdaten für Entwickler von Events, Webanwendungen und mobilen Geräten bereitstellt.

Vor allem die Prognosen stoßen bei der Nutzung von OpenWeatherMap auf reges Interesse. Die Community ist groß und mit allen heutzutage üblichen Kanälen ausgestattet; Twitter wird z. B. viel genutzt – vor allem wenn es regnet: @OpenWeatherMap [2]. OWM verwendet dann standardmäßig OpenStreetMap zur Darstellung der Wetterkarten. Wie so ein Aufruf in seiner einfachsten Form aussehen kann, zeigt etwa folgendes Beispiel:

writeln(GetGeoWeather('Klagenfurt', UrlWeatherReport25));

Bereits dieser Request liefert die wichtigsten Daten und Kennzahlen zur Weiterverarbeitung im JSON-Format zurück. Somit hat man Zugriff auf freie Wetterdaten und Wettervorhersagen; ebenso stehen Wetterkarten mit Informationen über Wolken, Sonnenaufgang, Windgeschwindigkeiten und Luftdruck zur Verfügung. Alle Wetterdaten lassen sich im JSON-, XML- oder HTML-Format beziehen; ein WSDL-Endpunkt ist in Vorbereitung.

Das API ist effizient und flexibel genug, um mit REST for Weather Forecasting weitere Parameter oder Sequenzen hinzuzufügen. So lässt sich bereits ausführlich und Restful mit dem URL interagieren:

api.openweathermap.org/data/2.5/weather?q={city name}

Es sind Datenpunkte von rund 40 000 Wetterstationen verfügbar, wobei die Prognosen auf bekannten Modellen basieren. Nun lasst uns die Station programmieren. Als Erstes habe ich den URL in eine Konstante gepackt:

Const UrlWeatherReport25= 'http://api.openweathermap.org/data/2.5/weather?q=%s&units=metric';

Die Version ist bereits in der Schnittstelle erkennbar; in der einfachsten Form übergebe ich den Ort und eine Metrik, die mir Grad Celcius anstelle von Kelvin liefert. Ansonsten müsste man einfach Kelvin –273,15 abziehen.

Mit der REST-API-Schnittstelle lassen sich natürlich externe Anwendungen mittels HTTP-Methoden (vor allem GET) in jeden Server integrieren. Damit kann man auch Teilinformationen auslesen und Listen z. B. von Temperaturdaten, Objekteigenschaften oder von Tags erstellen. Weiter gehts mit der GET-Methode als Integration im Skript. Sie dient als Funktionsmuster für viele Sprachen und besitzt als Argumente den Ort und eben den API-String. Im API muss dann nur noch der eigene Standort bzw. die ID verändert werden.

Die meisten Webmaster benötigen Wetterdaten in einem PHP- oder maXbox-Skript, was mich zum Schreiben dieses Tutorials bewegt hat. Der GET-Methode wird ein Stream übergeben, der mir die JSON-Daten zurückliefert (Listing 1).

Listi...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang