PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 1/2 OT: Tool für Datenreduktion (-> schnelleres plotten mit pgfplots)



borose
04-06-2010, 10:47
Hallo,

Ich habe von einem Datenlogger pro Datenkurve 50000 Datenpunkte. Für die Auswertung an sich, ist diese Fülle ganz hilfreich, für das Zeichnen ergeben sich aber ziemliche Leistungsprobleme. Es dauert zu lange.

Gibt es ein Tool, welches die Daten ("intelligent") Reduziert?

OriginPro 8.1 (http://www.additive-net.de/software/origin/neuin81/index.shtml#10) kann dies:

http://www.additive-net.de/software/origin/neuin81/bilder/reduce_data_by_sub-group_statistics_of_x_values81.png

Allerdings habe ich nur die normale Origin Version. Matlab habe ich ebenfalls nicht zur verfügung.

Gibt es ein Tool welches dies kann?

In Excel habe ich mir Programm geschrieben, welches die Datenpunkte linear interpoliert. Allerdings mit fester Anzahl der zu interpolierenden Datenpunkte, so dass sich bei großen Anstiegen relativ große Fehler ergeben.

Über Hinweise wäre ich sehr dankbar.

bobmalaria
04-06-2010, 10:53
hi,

ein tool das das berechnen kann ist mir leider nicht bekannt. eventuell hilft es dir aber die externalize funktion von tikz/pgfplots zu nutzen.

damit wird der code einmal kompiliert und das ergebnis wird als pdf-bild gespeichert. in allen folgenden kompilierungsvorgängen wird dann das bild eingebunden.

gruss

borose
04-06-2010, 11:39
Hi!

Der gedanke mit externalize ist mir auch schon gekommen. Allerdings werden die PDF-Files mit den vielen Datenpunkten auch sehr schnell sehr groß, weshalb ich die Datenreduktion bevorzugen würde.

Weiterhin komme ich an die grenzen von TeX.

Tex capacity exceeded, trotz Sperichererhöhung von

main_memory=90000000
save_size=80000

per "initexmf --edit-config-file=pdflatex" (CMD von Windows)

wenn ich die Werte weiter erhöhe, z.b. auf:

main_memory=900000000
save_size=80000

läuft LaTeX gar nicht mehr durch. Kann man die Speicherlimits nicht weiter erhöhen?

bischi
04-06-2010, 12:59
Mit Matlab/Octave/wasauchimmer halt nur jeden 10-ten Punkt oder so nehmen... Da du Matlab nicht hast, kannst du Octave nehmen (Open Source Matlab Klon).

MfG Bischi

PS: bspw: Data = Data(1:10:end);

bobmalaria
04-06-2010, 13:09
hi,

datenreduktion geht natürlich auch mit excel. z.b. jeden 10. punkt löschen oder sowas. man kann auch sicher coden, dass für den fall das sich zwei werte stark unterscheiden ein kleineres intervall gewählt wird. damit lassen sich dann vielleicht fehler vermeiden.

leider kenne ich auch keine automatismus.

gruss

voss
04-06-2010, 13:09
Ich habe von einem Datenlogger pro Datenkurve 50000 Datenpunkte. Für die Auswertung an sich, ist diese Fülle ganz hilfreich, für das Zeichnen ergeben sich aber ziemliche Leistungsprobleme. Es dauert zu lange.

Gibt es ein Tool, welches die Daten ("intelligent") Reduziert?


mit PSTricks kannst du angeben, wieviel Daten er zwischendurch
auslassen soll. Beispielsweise nur jeden 50. nehmen.

Herbert

bobmalaria
04-06-2010, 13:18
hi,

das geht mit pgfplots inzwischen auch.

/pgfplots/each nth point={integer}
A style which appends an x filter which discards all but each nth input coordinate.

voss
04-06-2010, 13:45
das geht mit pgfplots inzwischen auch.

/pgfplots/each nth point={integer}
A style which appends an x filter which discards all but each nth input coordinate.

na dann viel Spaß mit 50.000 Werten ... die auf TeX-Ebene einzulesen
sind ...

Herbert

borose
04-06-2010, 14:22
Danke für die vielen Antworten :)

Datenwerte einfach weglassen/löschen ist natürlich möglich. Dies umzusetzen ist nicht schwer. Aber ich werfe nur äußerst ungern Daten weg. :) In Excel habe ich wie gesagt schon eine Datenkomprimierung durch Mittelwertbildung innerhalb frei wählbarer Bereiche realisiert (VBA). Ist zwar nicht sehr sauber programmiert, aber es funktioniert und es geht erstaunlicherweise auch mit 50000 Zeilen a 10 Spalten an Werten erstaunlich schnell (ca. 5s mit E2180) . Aber an Stellen mit großen Anstiegen (z.B. bei Peaks) wird mir die Amplitude etwas abgesägt ... Darum meinte ich ja auch "intelligente" Datenreduktion.

Kann Octave das? Immerhin habe ich da eine datasmoothing Bibliothek entdeckt.

bischi
04-06-2010, 14:50
Darum meinte ich ja auch "intelligente" Datenreduktion.

Woher soll bitte eine Software wissen, welche Features für dich wichtig sind und welche nicht? Manche Leute möchten die Peaks sehen, manche Leute die generelle Tendenz,...

MfG Bischi

voss
04-06-2010, 15:42
Datenwerte einfach weglassen/löschen ist natürlich möglich. Dies umzusetzen ist nicht schwer. Aber ich werfe nur äußerst ungern Daten weg. :) In Excel habe ich wie gesagt schon eine Datenkomprimierung durch Mittelwertbildung innerhalb frei wählbarer Bereiche realisiert (VBA). Ist zwar nicht sehr sauber programmiert, aber es funktioniert und es geht erstaunlicherweise auch mit 50000 Zeilen a 10 Spalten an Werten erstaunlich schnell (ca. 5s mit E2180) . Aber an Stellen mit großen Anstiegen (z.B. bei Peaks) wird mir die Amplitude etwas abgesägt ... Darum meinte ich ja auch "intelligente" Datenreduktion.


auch das könnte man mit PSTricks realisieren, dass man beispielsweise
jeweils n Werte durch ihren Mittelwert ersetzt.

Herbert