Wetterdaten von OpenWeatherMap mit Qlik

Aktuelle Wetterdaten mit den eigenen Unternehmensdaten zu verknüpfen, kann zu ganz neuen Schlussfolgerungen führen. Sei es im Handel, in der Produktion oder wenn Sie Verkehrsströme mit Qlik auswerten.

Qlik Datamarket liefert zwar Wetterdaten, aber für Österreich sind da einfach nicht genügend Städte hinterlegt. Als Alternative haben wir uns OpenWeatherMap.org angesehen.

OpenWeatherMap mit dem aktuellen Forecast von Wien.

OpenWeatherMap bietet eine Vielzahl an APIs, die neben dem aktuellen Wetter auch historisches Wetter, Forecast, Luftverschmutzung, usw. abdecken.

Um das Service nutzen zu können, muss man sich registrieren und einen API Key herunterladen, der dann im Qlik Script als Parameter gesetzt werden muss. Für unsere Anwendung reicht die kostenfreie Version, die bis zu 60 Abfragen (== aktuelles Wetter von 60 Städten) pro Minute zulässt. Für mehr Requests, oder aktuellere Wetterdaten kann man kostenpflichtige Modelle wählen.

OpenWeatherMap liefert die Daten in unterschiedlichen Formaten. Für eine Default Qlik-Umgebung eignet sich entsprechend XML. Um also die Wetterdaten von allen Hauptstädten in Österreich abzurufen, können Sie folgendes Qlik Script nutzen.

$(must_Include=apikey.txt);


for each vCity in 'Graz','Vienna','Eisenstadt','Linz','Klagenfurt','Eisenstadt','Bregenz','Innsbruck','Salzburg'

Wetter:
LOAD 
     '$(vCity)' as City,
 [lastupdate/value],
    [weather/number] as number,
    [weather/value],
    [weather/icon] as icon,
    [precipitation/mode] as mode,
    [visibility/value],
    [clouds/value],
    [clouds/name],
    [wind/direction/value] as [direction/value],
    [wind/direction/code] as code,
    [wind/direction/name] as [direction/name],
    [wind/speed/value] as [speed/value],
    [wind/speed/name] as [speed/name],
    [pressure/value],
    [pressure/unit],
    [humidity/value],
    [humidity/unit],
    [temperature/value],
    num(num(num#([temperature/value],'###.##','.',' '))- 273.15) as [temperature/value_Celsius],
    [temperature/min] as min,
    [temperature/max] as max,
    [temperature/unit],
    [city/id] as id,
    [city/name],
    [city/country] as country,
    [city/sun/rise] as rise,
    [city/sun/set] as set,
    [city/coord/lon] as lon,
    [city/coord/lat] as lat
FROM [http://api.openweathermap.org/data/2.5/weather?q=$(vCity),AT&appid=$(vAPIKey)&mode=xml] (XmlSimple, Table is [current]);
//&units=metric --> liefert nicht immer Wert

next




let vHour=num(hour(now(1)),'00');
let vDate = date(today(),'YYYYMMDD');

store Wetter into  ./qvd/Wetter_$(vDate)_$(vHour).qvd;

drop table Wetter;



Das Ergebnis liefert Temperatur, Wind, Luftfeuchtigkeit, Bewölkungsgrad, Sonnenauf- und untergang und sogar die Längen- und Breitengrade zu den Städten. Neben den Städtenamen kann man auch andere Queryparameter wie Postleitzahl und Geokoordinaten nutzen. Bei unseren Tests hat der OpenWeatherMap-Parameter "unit=metric" nicht so funktioniert wie unter "Unit Formats"
dokumentiert, deswegen haben wir die Umrechnung von Kelvin auf Grad Celsius im Qlik Script gelöst.



Die geladenen Wetterdaten in QlikView

Die Historisierung der Wetterdaten machen wir in Qlik selbst, indem wir für jeden Skriptlauf eine eigene .qvd wegspeichern. Wenn Sie also in der Qlik QMC die Beladung auf "stündlich" stellen, kann man sich so sogar einen Tagesverlauf abbilden.


Das Scriptbeispiel funktioniert in QlikView und Qlik Sense mit Legacy Script Modus. Für Qlik Sense Standard Modus muss man die neue URL Syntax nutzen und das Skript entsprechend adaptieren. Bitte den eigenen API-Key in die Variable "vAPIKey" eintragen.

0 Response to "Wetterdaten von OpenWeatherMap mit Qlik"

Kommentar veröffentlichen

heldendaten GmbH,2017