Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2009  »  07  »  Datenmaler  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

Normen von 2 bis 98

Ziel des Verfahrens ist es, beide Messkurven an einem gemeinsamen Zeitpunkt zu starten und sowohl die Zeitwerte in x-Richtung als auch die Messwerte in y-Richtung auf den Integerbereich zwischen 0 und 100 zu normieren, denn der Chart-Service erwartet die Daten so.

Das Skript führt die Zeitrechnung mit Hilfe des CPAN-Moduls »DateTime« durch und legt den Zeitpunkt der ersten (zufällig gewählten) Messreihe als Anfang der gemeinsamen Zeitachse in »$day_start« fest. In der Variablen »$time_current« speichert es den Zeitpunkt des aktuell bearbeiteten Messpunkts ab. In »$day_current« hingegen liegt das Tagesdatum der letzten Messung.

Stellt das Skript fest, dass zwischen zwei Messdaten ein ja nicht explizit angegebener Tagessprung liegt (zum Beispiel wenn es nach einer Messung um 23:00 Uhr eine um 8:00 Uhr gibt), addieren die Zeilen 44 und 45 einen Datumstag zu den Zählern.

Die Anzahl der Minuten seit der letzten Messung bestimmt die Zeile 50. Sie speichert diesen Wert in der Variablen »$x« (für x-Achsen-Werte) ab, von wo er in Zeile 53 zusammen mit dem Namen der Messreihe und dem aktuellen Ladezustands-Messwert in das Ergebnis-Array »@results« wandert.

Die Zeilen 55 bis 62 halten die bis zu diesem Zeitpunkt höchsten x- und y-Werte fest und legen sie in den Hash-Einträgen »$max->{x}« und »$max->{y}« ab. Diese Werte dienen später in der For-Schleife ab Zeile 68 dazu, alle x/y-Werte auf den Bereich zwischen 0 und 100 zu normieren.

Zusätzlich spart die Variable »$margin« am rechten und linken Rand noch einen Bereich der Breite 2 aus, letztlich normiert »data-normalize« also x/y-Werte auf den Bereich zwischen 2 und 98. Der Grund hierfür ist später im Diagramm zu sehen: Es sieht einfach schöner aus, wenn die Kurven nicht ganz an die horizontalen und vertikalen Achsen heranreichen. Das Ergebnis schickt »print« in Zeile 70 nach Stdout, und die Ausgabe sieht so aus, wie es Abbildung 5 zeigt.


Abbildung 5: Die zwei Messreihen mit unterschiedlichen Zeitachsen rechnet das Skript »data-normalize« auf eine gemeinsame virtuelle Zeitachse um.

Auf der Suche nach einem passenden Diagrammformat findet sich auf [4] der Typ "lxy", der für jede gezeichnete Linie je einen Satz x- und y-Koordinaten entgegennimmt. Er unterscheidet sich damit fundamental von anderen Formaten, die annehmen, dass Messpunkte für alle dargestellten Datensätze an den gleichen x-Werten vorliegen. Zeile 19 in Listing 2 legt deshalb »XY« für die Option »type« im Konstruktoraufruf für ein neues Objekt vom Typ Google::Chart fest.

Format XY

Listing 2 liest nun in Zeile 8 zunächst die Ausgabe des Skripts »data-normalize« ein und sortiert sie nach x- und y-Werten getrennt in eine Datenstruktur »$data« um. Am Ende der »while«-Schleife in Zeile 15 liegen demnach in »$data->{"0.5gb"}->{x}« alle normierten Zeitstempel für die Konfiguration mit 512 MByte, während in »$data->{"0.5gb"}->{y}« ein Array aller zugehörigen Batteriestände liegt. Damit ist es einfach, dem Parameter »data« des Google::Chart-Objekts in Zeile 21 eine Referenz auf einen Array von x/y-Datensätzen so zu übergeben, wie der Charttyp XY dies wünscht.

Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Runter kommen sie alle Spielerische Fallschirmflug-Simulation mit Perl
Farbenspiel Ein Perl-Skript als Retuscheur
E-Mail-Baldrian Antispam-Appliances und -Services im Test
Weg vom alten Eisen IMAP-Migration mit Imapmigrate, Imapsync und Offlineimap
Listenreich Mailinglisten-Software Sympa 6
Nebenläufig Concurrent Programming mit Clojure
Whitepaper
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele

Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.

Download PDF (Registrierung erforderlich)
The Role of Open Source in Data Integration

Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.

Download PDF (Registrierung erforderlich)
Kommentare (0)