Artikel-Schlagworte: „Gnuplot“

Wetternews

Bei der momentanen Kälte sitze ich lieber in der warmen Stube und bastle an meinen Wetterscripten weiter.
Inzwischen ist ein erstes Wetterdiagramm online (siehe Seite ‚Wetter‘). Dort wird ein stündlich aktualisiertes Diagramm des Verlaufs von Temperatur und relativer Luftfeuchtigkeit angezeigt.
Dazu wird per Cronjob ein kleines Shellscript gestartet, welches wieder um verschiedene Scripte und Programme aufruft, die dann im Endeffekt das kleine Diagramm erstellen.
Beteiligt sind daran Perl, MySQL, Gnuplot und Imagemagick. Das Perlscript fragt die betreffenden Daten aus der MySQL-Datenbank ab, schreibt sie in eine Textdatei und erzeugt eine Steuerdatei für Gnuplot. Gnuplot lädt die Steuerdatei und erzeugt aus den Daten in der Textdatei eine transparente .png-Bilddatei. Imagemagick kopiert das transparente Diagramm anschließend auf den Wolkenhintergrund und gibt die fertige Grafik aus. Zum Schluß verschiebt das Shellscript die Grafik in den Webspace.

Nebenbei habe ich auch noch einen kleinen Fehler bei der Auswertung der Maximal- / Minimaltemperaturen „entschärft“. Leider kommt es immer mal vor, dass der Wetterdatenempfänger Daten einzelner Sensoren nicht erfasst. Dann stehen für die betreffenden Sensoren falsche Werte (in diesem Fall eine Null) in der Datenbank. Nun kann man z.B. für die Temperatur keine Unterscheidung treffen, ob die Temperatur wirklich 0°C beträgt oder der Wetterdatenempfänger keine Werte erfasst hat. Im Zusammenhang mit der gleichzeitig gesendeten relativen Luftfeuchtigkeit ist es dann aber doch möglich. Denn falls der Wert für die Luftfeuchtigkeit auch Null ist, was in unseren Breiten wohl nie vorkommt, kann man die Daten für den betreffenden Sensor verwerfen.
Nun kann es nicht mehr passieren, dass bei der Minimaltemperatur Mitte Juli 0°C angezeigt werden ;-).

Nachtrag:
Kleine Änderung beim Dateiformat des Diagramms. Die erzeugte .png-Grafik war mit einer Dateigröße von etwa 2MB eindeutig zu groß. Deshalb gibt’s die jetzt im .jpg-Format. Das schont unterwegs die auf 1GB limitierte Datenflatrate fürs Handy ;-).

Wetter-Statistik

Temperaturverlauf vom 14.2.11

So sieht das Ergebnis aus

Heute packte mich mal wieder die Programmierwut und ich habe begonnen, ein kleines Perlscript zu schreiben, das mir den Temperaturverlauf eines Tages (…Woche,Monat,Jahr…) grafisch darstellt.
Dazu frage ich zunächst die Wetterdaten für den entsprechenden Zeitraum in der Datenbank ab und schreibe sie in ein Textfile. Gleichzeitig wird eine Steuerdatei für Gnuplot erzeugt, welches anschließend das erzeugte Textfile mit den Wetterdaten einliest und daraus die Grafik im png-Format berechnet.
Es ist schon erstaunlich, wozu man so eine NSLU bewegen kann, wenn man’s kann ;-).
Als nächstes werde ich das Script so erweitern, dass auch die Temperaturen der anderen Sensoren, bzw. die relative Luftfeuchtigkeit angezeigt wird. Man müsste nur viel mehr Zeit haben… 😉