NAME
Quiq::Timeseries::Synchronizer - Rasterung/Synchronisation von Zeitreihen
BASE CLASS
SYNOPSIS
Instantiiere Objekt, vereinbare Zeitraster und Werte
my
$tsy
= Quiq::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)
DESCRIPTION
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.
METHODS
Konstruktor
new() - Konstruktor/Destruktor
Synopsis
$tsy
=
$class
->new(
$interval
,
@param
,
@opt
);
Options
- -geoCoordinates => $bool (Default: 0)
-
Die Messerwerte haben zusätzlich zur Zeit eine Ortskoordinate. Wenn gesetzt, erwartet die Methode add() zusätzlich die Ortsangaben $latitude und $longitude.
- -minTime => $t (Default: undef)
-
Ignoriere alle Daten, die vor Zeitpunkt $t (Unixzeit) liegen.
- -maxTime => $t (Default: undef)
-
Ignoriere alle Daten, die nach Zeitpunkt $t (Unixzeit) liegen.
- -offset => $s (Default: 0)
-
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.
- -window => $s (Default: undef)
-
Betrachte nur Daten, die innerhalb von $s Sekunden um einen Rasterpunkt liegen. Ignoriere Daten, die außerhalb liegen.
Description
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.
Methoden
add() - Füge Parameterwerte hinzu
Synopsis
$tsy
->add(
$time
,
$param
=>
$value
,...);
$tsy
->add(
$time
,
$latitude
,
$longitude
,
$param
=>
$value
,...);
Description
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.
addParameter() - Füge Parameter hinzu
Synopsis
$tsy
->addParameter(
$param
);
Description
Füge den zusätzlichen Parameter $param zum Objekt hinzu. Die Methode liefert keinen Wert zurück.
parameters() - Liefere Liste der Parameterbezeichner
Synopsis
@arr
|
$arr
=
$tsy
->parameters;
Description
Liefere die Liste der Parameterbezeichner. Im Skalarkontext liefere eine Referenz auf die Liste.
rows() - Liefere Tabelle mit Zeitraster-Daten
Synopsis
[
$titleA
,
$rowA
] =
$tsy
->rows(
$param
=> [
$paramOpt
=>
$val
,...],
...,
@opt
,
);
Options
- -noValue => $str (Default: '')
-
Zeichenkette für "Wert nicht vorhanden".
- -timeFormat => $fmt (Default: 'yyyymmddhhmmss')
-
Format der Zeitkolumne.
Description
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
- meanValue => $bool
-
Generiere Kolumne mit Mittelwert über den Werten im Intervall.
- stdDeviation => $bool
-
Generiere Kolumne mit Standardabweichung über den Werten im Intervall.
- min => $bool
-
Generiere Kolumne mit kleinstem Wert im Intervall.
- max => $bool
-
Generiere Kolumne mit größtem Wert im Intervall.
- roundTo => $n
-
Runde die folgenden Kolumnenwerte auf $n Nachkommastellen. Undef bedeutet keine Rundung, alle Stellen werden wiedergegeben.
- count => $bool
-
Generiere Kolumne mit Anzahl der Werte im Intervall.
- closestValue => $bool
-
Generiere Kolumne mit dem zeitlich am dichtesten am Rasterpunkt gelegenen Wert.
- closestTime => $bool
-
Generiere Kolumne mit dem Abstand in Sekunden, den der zeitlich am dichtesten am Rasterpunkt gelegenen Wert hat.
VERSION
1.225
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2025 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.