Skip to main content
Skip table of contents

Zeitreihen mit und ohne Intervall

Was sind spontane Zeitreihen

Spontane, oft auch asynchrone oder azyklische Zeitreihen genannt, sind Zeitreihen mit variablem Zeitabstand zwischen zwei Werten.

Spontane vs. Zyklische Zeitreihen

Die nachfolgende Darstellung zeigt die Unterschiede einer spontanen Zeitreihe im Vergleich zu zyklischen Zeitreihen. 


Spontane ZeitreiheZyklische Zeitreihe
Zeitachse

Die Zeitachse ist variabel, die Zeitspanne zwischen zwei Einträgen kann frei - unterschiedlich lang gewählt werden.

Die Zeitachse folgt einem fixen Raster, die Zeitspanne zwischen zwei Einträgen ist somit immer gleich lang.

Gültigkeit der Werte

Ein Wert gilt immer bis zum nächsten Wert auf der Zeitachse. Der letzte Wert auf der Zeitachse gilt bis UniversalTime.Max (also unendlich).

Beispiel: spontane Leistungszeitreihe

#ZeitstempelGültigkeitWert
101.01.2020 00:00bis #210
201.01.2020 02:00bis #330
301.01.2020 03:00bis #435
401.01.2020 05:00bis unendlich100

Ein Wert gilt immer bis zum Ende des der Zeitreihe zugewiesenen Intervalls.

Beispiel: zyklische Leistungszeitreihe, die die spontane Zeitreihe im Beispiel links nachbildet. (Der letzte Wert müsste für einen langen Zeitraum fortgeschrieben werden.)

ZeitstempelGültigkeitWert
01.01.2020 00:0001.01.2020 01:0010
01.01.2020 01:0001.01.2020 02:0010
01.01.2020 02:0001.01.2020 03:0030
01.01.2020 03:0001.01.2020 04:0035
01.01.2020 04:0001.01.2020 05:0035
01.01.2020 05:0001.01.2020 06:00100
01.01.2020 06:0001.01.2020 07:00100
......100
RasterungEine spontane Zeitreihe kann in beliebigem Raster abgefragt werden.Eine zyklische Zeitreihe kann in beliebigem Raster abgefragt werden.
Speicherbedarf und KomprimierbarkeitSpontane Zeitreihen benötigen aufgrund ihrer Eigenschaften weniger Speicherplatz als zyklische Zeitreihen, können aber aufgrund der selben Eigenschaften nicht sinnvoll in gleichlange Zeitblöcke komprimiert werden. Siehe auch Komprimierte Zeitreihen.Zyklische Zeitreihen benötigen mehr Speicherplatz im Vergleich zu spontanen Zeitreihen, können aber in gleichlangen Zeitblöcke komprimiert werden. Siehe auch Komprimierte Zeitreihen.


Wann sollten spontane Zeitreihen verwendet werden?

Je nach fachlichem Hintergrund, Datenmenge, Performanceanforderungen und Abstand zwischen zwei Wertänderungen sind spontane Zeitreihen oder zyklische Zeitreihen besser geeignet.

Wann spontane Zeitreihe

  • Werte müssen sowohl beim Speichern als auch bei der Abfrage azyklisch bleiben und über Rastergrenzen hinaus gelten.
  • Hinsichtlich Komprimierbarkeit: Anzahl der Werte im Vergleich zu einer Zeitreihe mit fixem Wertzyklus ist gering genug, dass von einer komprimierten Zeitreihe keine Performancegewinne zu erzielen sind. Das wäre dann der Fall, wenn ein Komprimierungsblock (zum Beispiel 1 Tag bei Stundenraster) größer wäre, als alle Daten einer spontanen Zeitreihe im selben Zeitraum.

Wann keine spontane Zeitreihe

  • Wenn kein fachlicher Hintergrund besteht UND
  • Hinsichtlich Komprimierbarkeit: komprimiert bessere Performance erzielt werden kann.

Verhalten von spontanen Zeitreihen

Spontane Zeitreihen können ohne Intervall ("NoInterval") oder mit einem bestimmten Intervall (wie "Hour", "Day" etc.) definiert werden. Spontane Zeitreihen ohne Intervall verhalten sich tatsächlich spontan (wie oben beschrieben), wohingegen sich spontane Zeitreihen mit Intervall analog zu zyklischen Zeitreihen verhalten.

D.h. bei spontanen Zeitreihen ohne Intervall gilt jeder Wert immer bis zur nächsten Wertänderung. Bei spontanen Zeitreihen mit Intervall gilt jeder übermittelte Wert bis zum Ende des jeweiligen Intervalls oder bis zur nächsten Wertänderung (je nachdem was vorher zutrifft).

Mit vs. ohne Intervall

Die folgenden WebTSM Services API Request Beispiele sollen die Unterschiede verdeutlichen.

Zeitreihendefinitionen

Es werden zwei Zeitreihen angelegt. Eine mit und eine ohne Intervall:

NameTypeInterval.ValueInterval.MultiplierUnit
Spontaneous_NoIntervalSpontaneousNo1kWh
Spontaneous_Interval_1hSpontaneousHour1kWh

WebTSM Services API Beispiel

XML
POST {{baseUrl}}\repositories\ZAMS\timeseriescollections\definition
[
    {
        "ID": -1,
        "Name": "Spontaneous_NoInterval",
        "Type": 3,
        "Interval": {
            "Value": 0,
            "Multiplier": 1
        },
        "Unit": "kWh"
    },
    {
        "ID": -1,
        "Name": "Spontaneous_Interval_1h",
        "Type": 3,
        "Interval": {
            "Value": 3,
            "Multiplier": 1
        },
        "Unit": "kWh"
    }
]

Daten ohne Intervall ("NoInterval")

Als erstes schauen wir an wie sich Daten ohne Intervall verhalten, wenn sie zu einer Zeitreihe ohne, bzw. mit Intervall gespeichert werden.

Speichern

Wir speichern folgende Daten, wobei zwischen den Werten eine Lücke von einem Tag besteht:

ZeitstempelWert
2019-12-31T23:00:00Z22,8
2020-01-01T23:00:00Z23,9

WebTSM Services API Beispiel

XML
POST {{baseUrl}}/repositories/ZAMS/timeseriescollections/data
[
	{
		"Name": "Spontaneous_NoInterval",
		"Data":
		{
		    "Interval": {
		        "Value": 0,
		        "Multiplier": 1
		    },
		    "Unit": "kWh",
		    "Data": [
		        {
		            "From": "2019-12-31T23:00:00Z",
		            "Value": 22.8,
		            "Flag": 9
		        },
		        {
		            "From": "2020-01-01T23:00:00Z",
		            "Value": 23.6,
		            "Flag": 9
		        }
		    ]
		}
	},
	{
		"Name": "Spontaneous_Interval_1h",
		"Data":
		{
		    "Interval": {
		        "Value": 0,
		        "Multiplier": 1
		    },
		    "Unit": "kWh",
		    "Data": [
		        {
		            "From": "2019-12-31T23:00:00Z",
		            "Value": 22.8,
		            "Flag": 9
		        },
		        {
		            "From": "2020-01-01T23:00:00Z",
		            "Value": 23.6,
		            "Flag": 9
		        }
		    ]
		}
	}
]
Response

In der Response sehen wir, dass spontane Daten ohne Intervall nicht an einer Zeitreihe mit definiertem Intervall gespeichert werden konnten. Grund dafür ist, dass das System stets versucht übermittelte Daten auf das Intervall der Zielzeitreihe zu konvertieren. Bei Daten ohne Intervall würde das zu einer Division durch Unendlich führen, weil der letzte übermittelte Datenpunkt bis zur Unendlichkeit gilt.

ZeitstempelSpontaneous_NoIntervalSpontaneous_Interval_1h
Request Status201400
BeschreibungGespeichertKann keine Daten ohne Intervall auf eine Zeitreihe mit Intervall speichern.

WebTSM Services API Response

XML
[
    {
        "ID": 13131,
        "Name": "Spontaneous_NoInterval",
        "Status": 201,
        "Message": "Time series data successfully saved.",
        "Details": null
    },
    {
        "ID": null,
        "Name": "Spontaneous_Interval_1h",
        "Status": 400,
        "Message": "Requested data items exceed configured 'GetDataInTargetInterval'. Try partitioning your time period into multiple requests or choose a larger interval.",
        "Details": null
    }
]
Daten-Abruf

Eine Kontrolle der Werte zeigt folgendes Ergebnis:

ZeitstempelSpontaneous_NoIntervalSpontaneous_Interval_1h
2019-12-31T23:00:00Z22,80
2020-01-01T23:00:00Z23,9- (Zeitstempel existiert nicht)

WebTSM Services API Beispiel

XML
GET {{baseUrl}}/repositories/ZAMS/timeseriescollections/data?name=Spontaneous_NoInterval&name=Spontaneous_Interval_1h&from=2019-12-31T23:00:00Z&to=2020-01-02T23:00:00Z
[
    {
        "ID": 13131,
        "Name": "Spontaneous_NoInterval",
        "Status": 200,
        "Message": null,
        "Details": null,
        "Data": {
            "Interval": {
                "Value": 0,
                "Multiplier": 1
            },
            "Unit": "KWh",
            "Data": [
                {
                    "From": "2019-12-31T23:00:00Z",
                    "Value": 22.8,
                    "Flag": 9
                },
                {
                    "From": "2020-01-01T23:00:00Z",
                    "Value": 23.6,
                    "Flag": 9
                }
            ]
        }
    },
    {
        "ID": 13130,
        "Name": "Spontaneous_Interval_1h",
        "Status": 200,
        "Message": null,
        "Details": null,
        "Data": {
            "Interval": {
                "Value": 0,
                "Multiplier": 1
            },
            "Unit": "KWh",
            "Data": [
                {
                    "From": "2019-12-31T23:00:00Z",
                    "Value": 0.0,
                    "Flag": 19
                }
            ]
        }
    }
]

Daten mit Intervall ("Hour")

Ein Versuch dieselben Daten mit einem Abstand von einem Tag - diesmal mit dem Intervall Stunde - zu übermitteln soll den Unterschied zu Daten ohne Intervall hervorheben.

Speichern

Es werden dieselben Zeitstempel mit denselben Werten genommen:

ZeitstempelWert
2019-12-31T23:00:00Z22,8
2020-01-01T23:00:00Z23,9

Anmerkung: die Daten sind zwar im Stundenraster, es wurden aber einige Zeitstempel ausgelassen, diese werden mit 0 automatisch angenommen.

Vollständig ausgerollt würden die Daten so aussehen:

ZeitstempelWert
2019-12-31T23:00:00Z22,8
2020-01-01T00:00:00Z0
2020-01-01T01:00:00Z0
...0
2020-01-01T23:00:00Z23,9
2020-01-02T00:00:00Z0

WebTSM Services API Beispiel

XML
POST {{baseUrl}}/repositories/ZAMS/timeseriescollections/data
[
	{
		"Name": "Spontaneous_NoInterval",
		"Data":
		{
		    "Interval": {
		        "Value": 3,
		        "Multiplier": 1
		    },
		    "Unit": "kWh",
		    "Data": [
		        {
		            "From": "2019-12-31T23:00:00Z",
		            "Value": 22.8,
		            "Flag": 9
		        },
		        {
		            "From": "2020-01-01T23:00:00Z",
		            "Value": 23.6,
		            "Flag": 9
		        }
		    ]
		}
	},
	{
		"Name": "Spontaneous_Interval_1h",
		"Data":
		{
		    "Interval": {
		        "Value": 3,
		        "Multiplier": 1
		    },
		    "Unit": "kWh",
		    "Data": [
		        {
		            "From": "2019-12-31T23:00:00Z",
		            "Value": 22.8,
		            "Flag": 9
		        },
		        {
		            "From": "2020-01-01T23:00:00Z",
		            "Value": 23.6,
		            "Flag": 9
		        }
		    ]
		}
	}
]
Response

Daten mit Intervall können sowohl auf Zeitreihen ohne Intervall als auch auf Zeitreihen mit Intervall gespeichert werden:

ZeitstempelSpontaneous_NoIntervalSpontaneous_Interval_1h
Request Status201201
BeschreibungGespeichertGespeichert

WebTSM Services API Response

XML
[
    {
        "ID": 13132,
        "Name": "Spontaneous_NoInterval",
        "Status": 201,
        "Message": "Time series data successfully saved.",
        "Details": null
    },
    {
        "ID": 13133,
        "Name": "Spontaneous_Interval_1h",
        "Status": 201,
        "Message": "Time series data successfully saved.",
        "Details": null
    }
]
Daten-Abruf

Kontrolle:

ZeitstempelSpontaneous_NoIntervalSpontaneous_Interval_1h
2019-12-31T23:00:00Z22,822,8
2020-01-01T00:00:00Z00
2020-01-01T23:00:00Z23,923,9
2020-01-02T00:00:00Z00

WebTSM Services API Beispiel

XML
{{baseUrl}}/repositories/ZAMS/timeseriescollections/data?name=Spontaneous_NoInterval&name=Spontaneous_Interval_1h&from=2019-12-31T23:00:00Z&to=2020-01-02T23:00:00Z
[
    {
        "ID": 13132,
        "Name": "Spontaneous_NoInterval",
        "Status": 200,
        "Message": null,
        "Details": null,
        "Data": {
            "Interval": {
                "Value": 0,
                "Multiplier": 1
            },
            "Unit": "KWh",
            "Data": [
                {
                    "From": "2019-12-31T23:00:00Z",
                    "Value": 22.8,
                    "Flag": 9
                },
                {
                    "From": "2020-01-01T00:00:00Z",
                    "Value": 0.0,
                    "Flag": 19
                },
                {
                    "From": "2020-01-01T23:00:00Z",
                    "Value": 23.6,
                    "Flag": 9
                },
                {
                    "From": "2020-01-02T00:00:00Z",
                    "Value": 0.0,
                    "Flag": 19
                }
            ]
        }
    },
    {
        "ID": 13133,
        "Name": "Spontaneous_Interval_1h",
        "Status": 200,
        "Message": null,
        "Details": null,
        "Data": {
            "Interval": {
                "Value": 0,
                "Multiplier": 1
            },
            "Unit": "KWh",
            "Data": [
                {
                    "From": "2019-12-31T23:00:00Z",
                    "Value": 22.8,
                    "Flag": 9
                },
                {
                    "From": "2020-01-01T00:00:00Z",
                    "Value": 0.0,
                    "Flag": 19
                },
                {
                    "From": "2020-01-01T23:00:00Z",
                    "Value": 23.6,
                    "Flag": 9
                },
                {
                    "From": "2020-01-02T00:00:00Z",
                    "Value": 0.0,
                    "Flag": 19
                }
            ]
        }
    }
]

Daten ohne und mit Intervall an eine Spontane Zeitreihe ohne Intervall im Vergleich

Zusammengefasst folgende Nebeneinanderstellung zeigt den Unterschied zwischen Daten ohne und mit Intervall:

Ohne IntervallMit Intervall

Der jeweilige Wert gilt bis zur nächsten Änderung

ZeitstempelWert
2019-12-31T23:00:00Z22,8
2020-01-01T23:00:00Z23,9

Der jeweilige Wert gilt bis zum Ende des Intervalls

ZeitstempelWert
2019-12-31T23:00:00Z22,8
2020-01-01T00:00:00Z0
2020-01-01T23:00:00Z23,9
2020-01-02T00:00:00Z0

Wir empfehlen folgendes Video unter Video Tutorials:

  • Types of Time Series
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.