Prty::Timeseries::Synchronizer - Rasterung/Synchronisation von Zeitreihen
Prty::Hash
Instantiiere Objekt, vereinbare Zeitraster und Werte
my $tsy = Prty::Timeseries::Synchronizer->new(600, qw/Temperature Windspeed/, -geoCoordinates=>1, # $latitude,$longitude bei add() -offset=>300, );
Füge Temperatur-Daten hinzu
for my $row (Temperature->select($db,@where)) { $tsy->add($row->time,$row->latitude,$row->longitude, Temperature=>$row->value, ); }
Füge Windgeschwindigkeits-Daten hinzu
for my $row (WindSpeed->select($db,@where)) { $tsy->add($row->time,$row->latitude,$row->longitude, Windspeed=>$row->value, ); }
Generiere Tabelle mit Daten
my ($titleA,$rowA) = $tsy->rows( Temperature=>[roundTo=>2,meanValue=>1,count=>1,stdDeviation=>1], WindSpeed=>[roundTo=>2,meanValue=>1,count=>1,stdDeviation=>1], -noValue=>'NULL', );
Die resultierende Tabelle besitzt folgende Kolumnen:
0 Time (Rasterpunkt) 1 Latitude (Breite des Geo-Mittelpunkts) 2 Longitude (Länge des Geo-Mittelpunkts) 3 Temperature (Mittelwert) 4 Temperature_Count (Anzahl Werte) 5 Temperature_StdDev (Standardabweichung) 6 WindSpeed (Mittelwert) 7 WindSpeed_Count (Anzahl Werte) 8 WindSpeed_StdDev (Standardabweichung)
Die Klasse richtet eine oder mehrere Zeitreihen auf ein gemeinsames Zeitraster mit der Intervallbreite $interval aus. Die Intervallbreite wird in Sekunden angegeben.
$interval = 600;
legt das Zeitraster auf 0, 10, 20, 30, 40, 50 Minuten.
$interval = 600, -offset=>300
legt das Zeitraster auf 5, 15, 25, 35, 45, 55 Minuten.
$tsy = $class->new($interval,@param,@opt);
Die Messerwerte haben zustzlich zur Zeit eine Ortskoordinate. Wenn gesetzt, erwartet die Methode "add"() zusätzlich die Ortsangaben $latitude und $longitude.
Ignoriere alle Daten, die vor Zeitpunkt $t (Unixzeit) liegen.
Ignoriere alle Daten, die nach Zeitpunkt $t (Unixzeit) liegen.
Versetze das Zeitraster um einem Offset von $s Sekunden. Beispiel: Ein Offset von 300 bei einer Intervallbreite von 600 Sekunden legt die Rasterpunkte auf 5, 15, 25, 35, 45, 55 Minuten.
Betrachte nur Daten, die innerhalb von $s Sekunden um einen Rasterpunkt liegen. Ignoriere Daten, die außerhalb liegen.
Instantiiere Synchronizer-Objekt für die Parameter @param mit einem Zeitraster von $interval Sekunden und liefere eine Referenz auf dieses Objekt zurück.
Die Liste @param vereinbart die Parameternamen, die auch bei add() und rows() angegeben werden.
$tsy->add($time,$param=>$value,...); $tsy->add($time,$latitude,$longitude,$param=>$value,...);
Füge Wert $value des Parameters $param zur Zeit $time (Unixtime) und (optional) dem Ort ($latitude, $longitude) hinzu. Die Methode liefert keinen Wert zurück. Es können mehrere Parameter/Wert-Paare für dieselbe Zeit und demselben Ort hinzugefügt werden.
$tsy->addParameter($param);
Füge den zusätzlichen Parameter $param zum Objekt hinzu. Die Methode liefert keinen Wert zurück.
@arr | $arr = $tsy->parameters;
Liefere die Liste der Parameterbezeichner. Im Skalarkontext liefere eine Referenz auf die Liste.
[$titleA,$rowA] = $tsy->rows( $param=>[$paramOpt=>$val,...], ..., @opt, );
Zeichenkette für "Wert nicht vorhanden".
Format der Zeitkolumne.
Die erste Kolumne enthält die Zeit. Wenn bei Konstruktor die Option -geoCoordinates gesetzt wurde, folgen geografische Breite und Lnge. Danach folgen die angegebenen Parameter mit ihren Kolumnen.
Parameter-Optionen
Generiere Kolumne mit Mittelwert über den Werten im Intervall.
Generiere Kolumne mit Standardabweichung über den Werten im Intervall.
Generiere Kolumne mit kleinstem Wert im Intervall.
Generiere Kolumne mit größtem Wert im Intervall.
Runde die folgenden Kolumnenwerte auf $n Nachkommastellen. Undef bedeutet keine Rundung, alle Stellen werden wiedergegeben.
Generiere Kolumne mit Anzahl der Werte im Intervall.
Generiere Kolumne mit dem zeitlich am dichtesten am Rasterpunkt gelegenen Wert.
Generiere Kolumne mit dem Abstand in Sekunden, den der zeitlich am dichtesten am Rasterpunkt gelegenen Wert hat.
1.127
Frank Seitz, http://fseitz.de/
Copyright (C) 2019 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Prty, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Prty
CPAN shell
perl -MCPAN -e shell install Prty
For more information on module installation, please visit the detailed CPAN module installation guide.