Wettervorhersage

Wie präzise ist eigentlich die Wettervorhersage? Um das zu prüfen benötigt man die Daten von einem Wetterdienst zum eigenen Standort und eigene Messdaten. Als Wetterdienst habe ich OpenWeatherMap ausprobiert. Über die API kann man Wetterdaten für viele Städte beziehen. Hierzu ist ein API key (APPID) erforderlich, die man über die Registrierung erhält.

Ich verwende die 5-Tage-Vorhersage mit drei-Stunden-Auflösung und trage die Daten in eine MySQL-Tabelle ein. Zusammen mit meinen eigenen Messwerten von Außentemperatur, relativer Feuchte und Luftdruck kann ich einen Benchmark erstellen. Dieser Benchmark zeigt, die gut die Vorhersage zum Beispiel für drei Stunden, oder einen oder zwei Tage tatsächlich ist.

Mit folgendem Aufruf erhält man zum Beispiel die Wettervorhersage für Neu-Ulm in JSON-Format:
http://api.openweathermap.org/data/2.5/forecast?q=Neu-Ulm,de&APPID=XYZ&units=metric&lang=de

Diese Daten sehen auf den ersten Blick etwas wild aus, zum Beispiel so:
{"cod":"200","message":0.0042,"cnt":40,"list":[{"dt":1517702400,"main":{"temp":-2.26,"temp_min":-4.28,"temp_max":-2.26,"pressure":959.18,"sea_level":1023.86,"grnd_level":959.18,"humidity":86,"temp_kf":2.01},"weather":[{"id":800,"main":"Clear","description":"Klarer Himmel","icon":"01n"}],"clouds":{"all":76},"wind":{"speed":1.07,"deg":235},"snow":{"3h":0.013},"sys":{"pod":"n"},"dt_txt":"2018-02-04 00:00:00"},{"dt":1517713200,"main":{"temp":-1.13,"temp_min":-2.64,"temp_max":-1.13,"pressure":960.45,"sea_level":1025.42,"grnd_level":960.45,"humidity":95,"temp_kf":1.51},"weather":[{"id":600,"main":"Snow","description":"Mäßiger Schnee","icon":"13n"}],"clouds":{"all":88},"wind":{"speed":1.37,"deg":175.005},"snow":{"3h":0.504},"sys":{"pod":"n"},"dt_txt":"2018-02-04 03:00:00"},{"dt":1517724000,"main":{"temp":-0.89,"temp_min":-1.9,"temp_max":-0.89,"pressure":962.34,"sea_level":1027.57,"grnd_level":962.34,"humidity":98,"temp_kf":1.01},"weather":[{"id":600,"main":"Snow","description":"Mäßiger Schnee","icon":"13n"}],"clouds":{"all":88},"wind":{"speed":1.66,"deg":213.003},"snow":{"3h":0.437},"sys":{"pod":"n"},"dt_txt":"2018-02-04 06:00:00"},{"dt":1517734800,"main":{"temp":-0.43,"temp_min":-0.93,"temp_max":-0.43,"pressure":964.26,"sea_level":1029.49,"grnd_level":964.26,"humidity":100,"temp_kf":0.5},"weather":[{"id":600,"main":"Snow","description":"Mäßiger Schnee","icon":"13d"}],"clouds":{"all":88},"wind":{"speed":1.02,"deg":253.003},"snow":{"3h":0.06},"sys":{"pod":"d"},"dt_txt":"2018-02-04 09:00:00"},
usw.

Zum Glück gibt es eine JSON-Bibliothek für Python, mit der sich diese Daten ganz einfach interpretieren lassen.

Aber auch PHP kann sehr komfortabel mit JSON-Daten umgehen. Zum Beispiel können die aktuellen Wetterdaten mit folgenden PHP-Script dargestellt werden:

Das Ergebnis könnte dann zum Beispiel so aussehen:
Aktuelles Wetter in Neu-Ulm um 2018-02-08 20:50: -1.00°C, 1,017.0 hPa, 92 %, Trüb, Wind 1.0m/s aus 120°
Sonnenauf- und -untergang: 07:37 - 17:31

Hier geht es demnächst weiter (2018-02-08)!