LabVIEWForum.de
XY-plot Datenreduzierung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Grafik & Sound (/Forum-Grafik-Sound)
+---- Thema: XY-plot Datenreduzierung (/Thread-XY-plot-Datenreduzierung)



XY-plot Datenreduzierung - RMR - 21.07.2016 14:01

Hallo Forengemeinde,

mir fällt für folgendes Problem keine wirklich sexy Lösung ein.

Während eines Versuchslaufes sollen Wertepaare bestehend aus Kraft / Weg dagestellt werden.
Dies habe ich über ein XY-Graph (siehe sc-shot) realisiert.
Das Problem besteht darin, dass die Versuche auch mal recht lange, Tage, Wochen, dauern könnten.
Somit wir mein Array immer größer und der XY-Graph pollt den Spaß auch noch.
Wohin das auf Dauer führt ist klar.

Ich habe die Anzal der Wertepaare schon massiv reduziert, indem ich nur bei der Überschreitung gewisser
Grenzen ein Paar anhänge. (siehe sc shot subVI).

Der Traum wäre natürlich nur den einen neuen Punkt zu refreshen.

Kann mir jemand die Augen öffnen? Angel_not

Danke & VG, Ralf aka RMR


RE: XY-plot Datenreduzierung - jg - 21.07.2016 14:17

Da gibt es IMHO keine Lösung für - außer mit einem Ringpuffer zu arbeiten und irgendwann zu alte Daten nicht mehr anzuzeigen.

Gruß, Jens


RE: XY-plot Datenreduzierung - RMR - 21.07.2016 15:07

Hallo Jens,

erstmal Danke für deine Antwort. Das wollte ich ja nun gar nicht hören. Big Grin
Die ersten Werte des Versuches möche ich schon weiterhin darstellen, sonst kommen da komische Fragen.
Somit fällt eine lossy queue leider weg.

Aktuell habe ich nun eine Funktion hinterlegt, die mit ansteigender Größe des MW-Arrays die Rasterung immer gröber
werden lässt. Nicht schön, aber sicher auch wirkungsvoll.

Evtl doch noch jemand einen "Geistesblitz"?

Keep on, Ralf aka RMR


RE: XY-plot Datenreduzierung - jg - 21.07.2016 15:14

- Immer, wenn der Ringpuffer voll ist, per InvokeNode ein Bild des XY-Graph erstellen und abspeichern.
- Daten in einer DB speichern und nur auf Anfrage darstellen.
- Es gibt eine etwas ältere LLB bei ni.com: gigalabview, mit der konnte man relativ gut große Datensätze für eine XY-Darstellung reduzieren. Das funktioniert natürlich nur, solange dein gesamter Datensatz in den Speicher passt. Da ist die Frage, wieviele Kraft/Weg-Paare da bei deinen wochenlangen Versuchen so zusammenkommen. Das musst du mit dir selber ausmachen.

Gruß, Jens


RE: XY-plot Datenreduzierung - GerdW - 21.07.2016 15:36

Noch mehr Ideen:

- Anstatt einfach nur neue Werte ins Array zu packen, wenn sich der Wert ändert, könnte man die Werte auch "klassifizieren": immer wenn man z.B. 1000 Punkte im Array hat, fasst man dicht beieinander liegende Punkte (Punktwolken) zu jeweils einem Mittelwerts-Punkt zusammen…
- Wenn die Punkte mehr oder weniger auf einer Linie liegen: Linie durch Interpolation bestimmen und zeichnen und nur wenige Ausreißer-Punkte zusätzlich zeichnen.
- Möglichst kleine Punkte im Graph malen (Pointstyle).


RE: XY-plot Datenreduzierung - jg - 21.07.2016 15:54

(21.07.2016 15:36 )GerdW schrieb:  - Anstatt einfach nur neue Werte ins Array zu packen, wenn sich der Wert ändert, könnte man die Werte auch "klassifizieren": immer wenn man z.B. 1000 Punkte im Array hat, fasst man dicht beieinander liegende Punkte (Punktwolken) zu jeweils einem Mittelwerts-Punkt zusammen…
- Wenn die Punkte mehr oder weniger auf einer Linie liegen: Linie durch Interpolation bestimmen und zeichnen und nur wenige Ausreißer-Punkte zusätzlich zeichnen.
Sowas in der Art erledigt das gigalabview...

Noch ne Idee: Autoskalierung nach Möglichkeit deaktiveren, das kostet Rechenzeit.

Gruß, Jens


RE: XY-plot Datenreduzierung - RMR - 21.07.2016 15:54

(21.07.2016 15:36 )GerdW schrieb:  - Anstatt einfach nur neue Werte ins Array zu packen, wenn sich der Wert ändert, könnte man die Werte auch "klassifizieren": immer wenn man z.B. 1000 Punkte im Array hat, fasst man dicht beieinander liegende Punkte (Punktwolken) zu jeweils einem Mittelwerts-Punkt zusammen…
- Wenn die Punkte mehr oder weniger auf einer Linie liegen: Linie durch Interpolation bestimmen und zeichnen und nur wenige Ausreißer-Punkte zusätzlich zeichnen.

Ok, klingt gut. Behalte ich sicher im Hinterkopf.

Zitat:- Möglichst kleine Punkte im Graph malen (Pointstyle).
Hier musss ich mir mal überlegen ob ich nur Punkte zeichne oder die Verbindungslinien wirklich brauche. Das muss die Zukunft zeigen.
Aber daran hatte ich jetzt echt nicht gedacht, klar das braucht CPU. Smile

Danke & VG, Ralf


RE: XY-plot Datenreduzierung - Achim - 21.07.2016 16:01

Der Klassiker...

Das willst du sicher nicht hören...aber die Leute müssen einfach mal kapieren, das "unendlich" keine vernünftige Option ist! Alles hat ein Ende...nur die Wurst hat zwei! Deine SW soll ja theoretisch zeitlich unbegrenzt funktionieren...das muss doch auch der dümmste einsehen, dass man das nicht darstellen kann.

Was interessiert denn, was vor x Wochen passiert ist? Wenn schon was "interessantes" auftaucht...dann kann man dafür z.B. Grenzen setzen und wenn diese verletzt werden, speichert man den betreffenden Datenausschnitt inkl. ein Stück vorher/nachher separat ab, und kann ihn dann auch mal in Ruhe analysieren. Das kann man ja im laufenden Graph sowieso nicht machen!

Oder man kann Trendlinien generieren, oder Mittelwert/Abweichung/Varianz anzeigen.


RE: XY-plot Datenreduzierung - RMR - 22.07.2016 06:12

Guten Morgen. Smile

(21.07.2016 16:01 )Achim schrieb:  Das willst du sicher nicht hören...aber die Leute müssen einfach mal kapieren, das "unendlich" keine vernünftige Option ist! ......................das muss doch auch der dümmste einsehen, dass man das nicht darstellen kann.
Doch mag ich schon hören. Den "Dümmsten" gebe ich das aber so besser nicht weiter. Big Grin
Zitat:Was interessiert denn, was vor x Wochen passiert ist? Wenn schon was "interessantes" auftaucht...dann kann man dafür z.B. Grenzen setzen und wenn diese verletzt werden, speichert man den betreffenden Datenausschnitt inkl. ein Stück vorher/nachher separat ab, und kann ihn dann auch mal in Ruhe analysieren. Das kann man ja im laufenden Graph sowieso nicht machen!
Das Problem an der Sache ist, dass der Plot gewisse Ähnlichkeiten mit den Bildchen aus den Lehrbüchern haben muss, deswegen kann ich historische Daten nicht einfach vernachlässigen.
Die Daten nach gesetzten Regeln wegzuschreiben ist nicht das Problem, das mache ich schon so.

Die "Vergröberungsfunktion" mit steigender Arraygröße scheint zumindest recht deutlich Daten zu reduzieren. Wohin hier die Reise geht werden erst die nächsten Tage zeigen.

Ich werde auf jeden Fall noch die Tipps von HIER einarbeiten.
Sollen Versuche laufen die "extrem" lange dauern, muss eben auf die XY-Plots verzichtet werden.

Es bleibt spannend.. Smile

Keep on & Danke, Ralf