LabVIEWForum.de
TDMS Datenpunkte reduzieren - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: TDMS Datenpunkte reduzieren (/Thread-TDMS-Datenpunkte-reduzieren)



TDMS Datenpunkte reduzieren - PPS - Gestern 07:58

Hi,

sicherlich sind bereits einige auf die Herausforderung gestoßen, dass man zu beginn mit vielen Datenpunkte abtastetet und wenn man sich die Daten dann anschaut feststellt das es wesentlich weniger auch gerreicht hätte....

Hab hier eine 4Gb Datei liegen, wo wir über viele Stunden mit 400Hz abgetastet haben, weil wir nicht wußten was passieren würde, nun haben wir festgestellt, dass wohl auch 100Hz genügen.

Wie kann ich die TDMS-Datei von der Dateigrüße reduzieren, da gibt es sicherlich schon eine nette Funktion in Labview....


RE: TDMS Datenpunkte reduzieren - GerdW - Gestern 09:07

Hallo PPS,

Zitat:Wie kann ich die TDMS-Datei von der Dateigrüße reduzieren, da gibt es sicherlich schon eine nette Funktion in Labview....
Wenn du nur die Dateigröße reduzieren willst: einfach SetFileSize nehmen…

Wenn du dagegen deine Daten dezimieren willst:
1. TDMS-Datei öffnen
2. Daten blockweise einlesen
3. Daten dezimieren
4. dezimierte Daten blockweise in eine neue Datei schreiben
5. zurück zu 1, bis die Datei komplett bearbeitet wurde

Zu Punkt 3: mir fallen da Funktionen wie Mittelwert, Median, Dezimieren ein…


RE: TDMS Datenpunkte reduzieren - rolfk - Gestern 09:15

(Gestern 09:07 )GerdW schrieb:  Hallo PPS,

Zitat:Wie kann ich die TDMS-Datei von der Dateigrüße reduzieren, da gibt es sicherlich schon eine nette Funktion in Labview....
Wenn du nur die Dateigröße reduzieren willst: einfach SetFileSize nehmen…

Autsch! 2hands


RE: TDMS Datenpunkte reduzieren - PPS - Gestern 09:34

Hi, hab nun eine Funktion Names Resample Waveform gefunden, diese scheint zunächst hilfreich zu sein.
Zudem die DBL gegen SGL ausgetauscht.
So dass bei der Hälfte der Signal, die Datei um Faktor 4 schonmal kleiner wurde.
Und die Date unterteilt, wie GerdW meinte (DANKE).

@GerdW gute Idee mit Mittelwert und Median, brauchen allerdings wirklich den Verlauf relativ genau.

Sonst noch jemand Ideen?

Kann man evtl. bevor man die ganzen Daten aus der TDMS ließt bereits schon feststellen wieviele Daten pro Kanal drin sind?
(Sodass man es durch Arraygröße ermitteln etc. gleich in gleichgroße Teile unterteilen kann?)


RE: TDMS Datenpunkte reduzieren - Kiesch - Gestern 10:35

Prinzipiell könntest du in bestimmten Zeitintervallen auch automatisch deine tdms Datei einlesen und mit den zip VIs aus den OpenG Tools zippen. Das kann schnell mal 90-99% Dateigröße (auf der Platte) sparen.

Gruß Kiesch


RE: TDMS Datenpunkte reduzieren - GerdW - Gestern 10:46

Hallo PPS,

Zitat:brauchen allerdings wirklich den Verlauf relativ genau.
Du willst von 400S/s auf 100S/s dezimieren, also ein von 4 Samples behalten…
Ich kenne deine Messdaten nicht, aber reicht der einfache Mittelwert (pro 4 Samples) dann nicht aus?


RE: TDMS Datenpunkte reduzieren - PPS - Gestern 12:57

(Gestern 10:46 )GerdW schrieb:  Hallo PPS,

Zitat:brauchen allerdings wirklich den Verlauf relativ genau.
Du willst von 400S/s auf 100S/s dezimieren, also ein von 4 Samples behalten…
Ich kenne deine Messdaten nicht, aber reicht der einfache Mittelwert (pro 4 Samples) dann nicht aus?

Sind Spannungsabfälle an einer kleinen Batterie, welche bei gewissen Ereignissen angesehen wird (Licht anschalten etc.), insbesonders der Verlauf.
Da noch nicht ganz klar ist was pasiert haben wir erstmal schnell abgetastet.
Am coolsten wäre es natürlich wenn es was geben würde, wo er den Verlauf best möglich aufgezeigt werden kann und lediglich die "überschüssigen Punkte raus nimmt" z.b: Licht ist aus (wo nichts an der Spannung passiert)-ist aber nur ein Traum Big Grin

Fakt ist, dass wir an bestimmten Stellen die Aufzeichnungsrate runter setzen können. In welcher Größenordnung es ist, ist auch noch nicht ganz klar. Dacht zunächst das 1/4 der Datenpunkte reichen würde an manchen Stellen brauchen wir allerdings immernoch die 1/2....

Der Wechsel von DBL (wohl Standardgemäß hinterlegt) auf SGL hat die Dateigröße halbiert ohne negative Einflüsse.

Evtl. gibts ja noch paar einfache Ideen, ohne wirklichen Einflüsse auf Signalverlauf?


RE: TDMS Datenpunkte reduzieren - TpunktN - Gestern 15:35

(Gestern 12:57 )PPS schrieb:  Am coolsten wäre es natürlich wenn es was geben würde, wo er den Verlauf best möglich aufgezeigt werden kann und lediglich die "überschüssigen Punkte raus nimmt" z.b: Licht ist aus (wo nichts an der Spannung passiert)-ist aber nur ein Traum Big Grin
Programmiere es halt Big Grin Du hast die freie Wahl zu programmieren was du willst Wink

Zitat:Fakt ist, dass wir an bestimmten Stellen die Aufzeichnungsrate runter setzen können. In welcher Größenordnung es ist, ist auch noch nicht ganz klar. Dacht zunächst das 1/4 der Datenpunkte reichen würde an manchen Stellen brauchen wir allerdings immernoch die 1/2....

Hast du denn Events die passieren mit aufgezeichnet? Dann teil jedes Event in eine eigene Datei, diese kannst du dann von den Daten besser reduzieren, da du ja je nach Event eine andere Auflösung brauchst.

Auch könnte ich mir vorstellen ähnliche Werte in einem Zeitraum einfach rauszuschmeißen, 5 sekunden lang 1V +-0,1 mV baucht man nicht mit 400 Hz speichern (oder was auch immer unrelevant genau ist).

(Hat TDMS einen festen Signalabstand? Kenne mich mit dem Format nicht aus.)

Grüße Timo


RE: TDMS Datenpunkte reduzieren - GerdW - Gestern 15:54

Hallo zusammen,

Zitat:Der Wechsel von DBL (wohl Standardgemäß hinterlegt) auf SGL hat die Dateigröße halbiert ohne negative Einflüsse.
Evtl. gibts ja noch paar einfache Ideen, ohne wirklichen Einflüsse auf Signalverlauf?
Welche Auflösung brauchst du auf der Y-Achse?
Evtl. kannst du ja auch auf U16- oder gar U8-Werte skalieren, dann kannst du die Datenmenge noch einmal halbieren/vierteln. Musst dann nur als Property 2 Werte zu jedem Channel ablegen, mit Scale/Offset für das Umrechnen von Integer zurück auf Float. (So wie analoge Messwerte üblicherweise bei Modbus oder CAN gehandhabt werden…)

Zitat:Hat TDMS einen festen Signalabstand? Kenne mich mit dem Format nicht aus.
TDMS "mag" Waveforms, d.h. Signale mit fester Samplerate.
Du kannst aber natürlich "normale" Arrays abspeichern, hier also z.B. ein Kanal mit den Werten der Zeitachse (dann nicht mehr äquidistant) und ein Kanal mit den zugehörigen Messwerten. Erfordert aber Rechenaufwand beim Speichern (Erstellen der Datenarrays) und auch beim Einlesen (alles als XY-Plots behandeln).
Oder du nutzt aus, das TDMS Messdaten auch auf verschiedene Weise abspeichern kann: wenige große Blöcke mit Messdaten oder viele kleinere Blöcke. Führt natürlich auch irgendwo zu Rechenaufwand…