Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
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....
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…
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?)
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
Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
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?
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
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?
(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
Programmiere es halt Du hast die freie Wahl zu programmieren was du willst
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
Justieren ist dem Gerät sagen was es anzeigen soll, kalibrieren ist die Kontrolle dieser Anzeige. Eichen ist ein längerer Prüfprozess und darf nur das Eichamt!
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…
@Timo: Die Events passieren jede Sekunde lediglich nach ca. 45min wird der Batterie für 2 min mal zeit gelessen sich zu erholen.
@GerdW vielen dank dass du die U8 nochmal in den Raum gestellt hast, hatte ich zunächst probiert allerdings wurde es immer auf nicht Nachkommastellen-Zahlen umgewandelt, aber nun habe ich die Einstellung in den Eigenschaften gefunden
(Y-Achse von ca. 4 bis 0 V)
Noch eine Idee, wie man die Anzahl der Datenpunkte pro Kanal aus der TDMS relativ schnell rausbekommt, ohne alle Werte zunächst mal einlesen zu müssen (mittels TDMS Read)? Dauert schon eine ganze weile bei 4Gb :-)
So können wir die bereits existierenden Daten in kleinere Dateien splitten....
Ps.Ja, wird bereits bei den neuen Daten in Blocken abgespeichert, so dass keine 4Gb Dateien entstehen