[Inhalt] [Zurück] [Weiter] [Thema] [Index]

ZRSetMultiAspekte()


Syntax:

ZRSetMultiAspekte (ZR zr, Array aspekte, Array eintraege)
zr: Eine Reihe
aspekte: Aspektnamen
eintraege: Einträge von Aspekten

Beispiel:

ZRSetMultiAspekte (zr, aspekte, eintraege)

Beschreibung:

Setzt die Aspekte und die Einträge der Aspekte einer Multi-Zeitreihe.

Eine Multi-Zeitreihe besitzt n verschiedene Y-Werte zu jedem Zeitpunkt. n wird im Attribut YNum() festgelegt. Diese Werte sind durchnummeriert von 0 bis n-1. Den Schreibeoperationen SetYLinks() und SetYRechts() und den Leseoperationen YLinks() und YRechts() wird diese Nummer mitgegeben. Es ist also möglich, auf die Angabe von Aspekten zu verzichten.

Eine Zeitreihen-Datenbank macht jedoch aus, dass der Benutzer (also der Azurprogrammierer) mehr über die Daten weiß, als die reinen Realwerte. Über die Aspekte (ZRMultiAspekte()) gelangt man daher an die Attribute, in denen sich die Y-Werte unterscheiden und über die Einträge der Aspekte (ZRMultiEintraege()) an die Werte dieser Attribute, die der Nummer der Y-Werte zugeordnet sind.

Beispiel:

Ein Zeitreihe enthalte Werte zu Abflussmessungen. Zu jedem Zeitpunkt werden also der Wasserstand, der Abfluss und die Fließgeschwindigkeit abgelegt. Die Einheiten dieser drei Parameter lauten cm, l/s und m/s.

Das Array aspekte wird dann so gebildet:

	 aspekte := Array()
	 aspekte[0] := "Parameter"
	 aspekte[1] := "Einheit"
	 

Das Array eintraege ensteht so (die Aspekte sind mit Semikolon getrennt):

	 eintraege := Array()
	 eintraege[0] := "Wasserstand;cm"
	 eintraege[1] := "Abfluss;l/s"
	 eintraege[2] := "Fließgeschwindigkeit;m/s"
	 

Es ist darauf zu achten, dass die Arrays nach Schlüssel sortiert in der gewünschten Reihenfolge auf die durchnummerierten Komponenten passen. Am sichersten ist es daher, wie oben als Schlüssel durchnummerierte Zahlen zu benutzen.

Um aus dieser Multi-Zeitreihe drei Einzel-Zeitreihen zu bilden, geht man so vor:

aspekte := zr.ZRMultiAspekte()
eintraege := zr.ZRMultiEintraege()
qf := zr.Quantenfolge(zr.MaxFocusZR())
rt := zr.Attribute()
FORALL _key IN eintraege
   idx := _key.StrToReal()
   et := eintraege[_key]
   sl := et.StrSplit(";")
   FORALL _key2 IN sl
      e := sl[_key2]
      attr := aspekte[_key2]
      rt.SetText(attr, e)
   ENDFOR
   zri := rt.OpenZR (True)

   qfi := NewQuantenfolge()
   qi := zri.ZRQuant(False)
   FORALL q IN qf
      qi.setXBereich(q.XBereich())
      qi.SetYLinks(q.YLinks(idx))
      qi.SetYRechts(q.YRechts(idx))
      qfi.AppendQuant (qi)
   ENDFOR

   zri.WriteQuantenfolge (qfi)
ENDFOR 
	 



toposoft 28.10.2024