Open Source im professionellen Einsatz
Linux-Magazin 02/2015
© alphaspirit, 123RF

© alphaspirit, 123RF

Perl-Skript erkundigt sich nach dem Wetter

Schirmherr

Ein Perl-Skript, das im Morgengrauen die aktuelle Wettervorhersage einholt, hilft bei der Entscheidung, auf Risiko zu spielen oder doch einen Schirm einzupacken.

392

In der nassen Jahreszeit stellt sich oft die Frage, ob im Laufe des Tages Regen oder Schnee vom Himmel fallen wird und man deswegen gut beraten wäre, auf den Weg zur Arbeit einen Schirm mitzunehmen.

Untergrund-Wetter

Letztlich wären aber sogar gelegentliche Regenschauer um die Mittagszeit irrelevant, solange sich der Weg zur und von der Arbeit trockenen Fußes bewältigen lässt. Zum Glück bietet der Wetterdienst "Weather Underground" [1] kostenlose Vorhersagen für die laufenden Stunden des Tages. Obwohl diese zweifellos nicht immer hundertprozentig zutreffen, schlagen sie doch die menschliche Intuition im Schnitt um Längen.

Auf dem CPAN finden Perl-Programmierer das Modul WWW::Wunderground::API, das die Wetterdaten mit einem eigens von [2] eingeholten API-Key skriptgesteuert vom Server saugt. Das simple Skript in Listing 1 nutzt das Modul, iteriert über die stündlichen Einträge im zurückkommenden Json-Datenwust und gibt pro Stunde die Uhrzeit und die Regenwahrscheinlichkeit im Eintrag »pop« (Probability of precipitation, [3] ) aus. Abbildung 1 zeigt, dass es am Nachmittag mit weniger als 50 Prozent Wahrscheinlichkeit regnen wird, ein gläubiger Mathematiker könnte den Schirm zu Hause lassen.

Listing 1

chance-of-rain.pl

01 #!/usr/local/bin/perl -w
02 use strict;
03 use WWW::Wunderground::API;
04 use DateTime;
05
06 my $w = WWW::Wunderground::API->new(
07   location => "Munich, Germany",
08   api_key  => "0123456789abcdef",
09   auto_api => 1,
10 );
11
12 for my $e (@{ $w->hourly }) {
13   my $dt = DateTime->from_epoch(
14     epoch => $e->{ FCTTIME }->{ epoch } );
15
16   print "$dt: $e->{ pop }%\n";
17 }
Abbildung 1: Anfangend bei der aktuellen Stunde gibt Weather Underground die stündliche Regenwahrscheinlichkeit an.

Mehr als nur Regen

Dabei kommt vom Underground-Server weit mehr zurück als nur die Regenwahrscheinlichkeit. Die in Zeile 12 von Listing 1 aufgerufene Methode »hourly()« liefert einen Array von stündlichen Wetterelementen des Tages. Wie der Datensalat in Abbildung 2 zeigt, verweist jedes Element auf eine Reihe von Schlüsseln wie »humidity« (Luftfeuchtigkeit) oder »sky« (Bewölkung). Schließlich stehen unter »FCTTIME« das Datum und die Uhrzeit der Vorhersage.

Abbildung 2: Die stündlichen Wettervorhersagen enthalten nicht nur die Regenwahrscheinlichkeit, sondern auch Luftfeuchtigkeit oder Temperatur.

Listing 1 schnappt sich den Eintrag »epoch« aus dem Datum und wandelt die dort stehenden Unix-Sekunden seit 1970 mit dem Perl-Modul »DateTime« in ein lesbares und später leicht maschinell manipulierbares Format um.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Screencast zum Perl-Snapshot 02/2015

    Braucht man einen Regenschirm oder nicht? Ein Perl-Skript kennt die Antwort. Es holt über eine API Daten eines Wetterdienstes ein und betrachtet dabei insbesondere die Regenwahrscheinlichkeit für die Zeit, in der der Arbeitsweg zu absolvieren ist.

  • Perl-Snapshot

    Push-Notifications auf sein Handy halten den abwesenden Hausherrn darüber auf dem Laufenden, welche Clients sich im WLAN zu Hause an- und abmelden.

  • Der Lauscher an der Wand

    Ein Lausch-Bot in einem IRC-Kanal springt bei bestimmten Schlüsselwörtern an und benachrichtigt einen definierten User via Instant Messaging über das Gehörte.

  • Perl-Snapshot

    Handgeräte für die Navigation weisen den Weg und schreiben bei Wanderungen laufend die aktuelle Position mit. Mit einigen Skripten unter Linux bereitet Extrembergsteiger Michael Schilli die Daten seiner waghalsigen Erstbesteigungen optisch ansprechend auf.

  • Licht ins Dunkel

    Im Dunkeln ist gut munkeln - doch damit ist jetzt Schluss: Der hier vorgestellte Perl-Daemon holt verborgene Vorgänge im Netz ans Licht und schlägt Alarm, wenn ihm etwas verdächtig vorkommt.

comments powered by Disqus