Hallo, kennt jemand eine, am liebsten lesbares, Dateiformat für die Speicherung von Messdaten mehrerer analoger/binärer Kanäle? Am liebsten eines, für das es ein freies Darstellungstool gibt. Notfalls würde ich das aber auch selbst implementieren. Nur das Dateiformat möchte ich eben nicht neu erfinden, denn über sowas haben sich bestimmt schon viele Leute Gedanken gemacht. Allerdings sollte es auch nicht zu aufgebläht sein. Gefunden habe ich bisher das LabVIEW Measurement File (.lvm)...
Matlab Files sind auch gut, da gibts Libs zum Erstellen und Lesen. Aber so komplett frei ist wohl nur CSV, XML usw.
Was ist den der unterschied zwischen Messdaten die analog und binär gespeichert sind? Sobald es irgendwie auf dem Chip ist sind alle Werte binär sprich Digital Enfach und schnell: CSV Comma-separated values
1 | Winkel,Temperatur,Ausgangsregister,Zeichenkette |
2 | 3.1415,-15,0x23,'Mein Pferd ist eine Lasagne' |
3 | 0,15,0xFA,'Mein Pferd ist ein Schimmel!' |
Darstellbar mit so ziemlich allem was "Dateiimport" und "Graph zeichnen" kann, bei hexadezimalen Zahlen eventuell in dezimaler Schreibweise umwandeln XML: Extensible Markup Language
1 | <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
2 | <messreihe>
|
3 | <titel>Messdaten vom 13.03.13</titel> |
4 | <eintrag>
|
5 | <winkel>3,1415</winkel> |
6 | <temperatur>-15</temperatur> |
7 | <ausgangsregister>0x23</ausgangsregister> |
8 | <zeichenkette>Mein Pferd ist eine Lasagne</zeichenkette> |
9 | </eintrag>
|
10 | <eintrag>
|
11 | ..... |
12 | </eintrag>
|
13 | ..... |
14 | </messreihe>
|
Können auch viele Programme, musst schauen wie die das haben wollen, vorteil ist das es viele Programme gibt die auch in einer Art SQL Messdaten sortieren abfragen filtern etc können.
Naja, das mit dem freien Viewer ist nur ein nice-to-have. Ich hab eh Spaß daran sowas selbst zu coden. Wichtig wäre mir aber eben ein verbreitetes offenes Dateiformat, das ich nicht selbst definieren muss und ggf. auch mit anderen(auch kommerziellen) Tools öffnen kann.
Christian R. schrieb: > Matlab Files sind auch gut, da gibts Libs zum Erstellen und Lesen. Aber > so komplett frei ist wohl nur CSV, XML usw. Ja bei Matlab muss man aber sagen das es Lesbar sein soll sonst klatscht der einem nur Binärdaten hin ;)
Busbauer schrieb: > Darstellbar mit so ziemlich allem was "Dateiimport" und "Graph zeichnen" > kann, Zum Beispiel? Von Excel mal abgesehen. Busbauer schrieb: > Was ist den der unterschied zwischen Messdaten die analog und binär > gespeichert sind? Ich meinte in diesem Fall mit Binär Statuswerte, also welche mit 1-Bit Information.
Schau dir mal http://www.logview.info/vBulletin/ an, ist eigentlich zur Akkulade-/ Entladeprotokollierung entwickelt worden, kann aber durch sein offenen Format leicht an viele Zwecke angepaßt werden. Gruß Bussard
pks schrieb: > Zum Beispiel? Von Excel mal abgesehen. OpenOffice Calc (free Matlab (kostet "etwas") Scilab (free) GNUplot (free) sicherlich noch 1000 andere Programme
pks schrieb: > Hallo, > > kennt jemand eine, am liebsten lesbares, Dateiformat für die Speicherung > von Messdaten mehrerer analoger/binärer Kanäle? Am liebsten eines, für > das es ein freies Darstellungstool gibt. .csv Das können fast alle lesen und schreiben. Ob nun Linux Windows oder ... Die Dateien sind per Texteditor lesbar und einen Header mit Feldbezeichnungen können die meisten Tools auch verarbeiten. Falls es auch um die Übertragung geht. Da kann man logview für nehmen. Gesicherte oder ungesicherte Übertragung und direkte grafischer Online Darstellung. Das Protokoll nennt sich openformat (s. post weiter oben). Das kann auch als csv speichern.
+1 zum csv-Format. Was noch nicht explizit gesagt wurde: In der ersten Spalte speichert man üblicherweise den Zeitstempel, in den folgenden Spalten je einen Messwert zu diesem Zeitpunkt. Datensatz schreiben geht in C einfach mit fprintf(), lesen und verarbeiten wie schon gesagt mit so ziemlich allen Programmen.
CSV. XML ist ein Scheiß für sowas (hust wie für das meiste hust) weil man einfach fünfzig mal so viel Speicherplatz braucht. Den CSV-Kram kann eigentlich jedes Programm lesen, und ist auch gut von Hand anzuschauen. Gnuplot kann das auch in null komma nix plotten, zum Beispiel.
csv und xml sind allenfalls "Container" für Messdaten, aber keine Dateiformate für Messdaten. Dazu bedarf es schon einer Vorschrift, wie, z.B. in welcher Reihenfolge die Messdaten stehen und welcher physikalischer Einheit sie entsprechen. Sowie Zusatzinformationen. Die Konvention, z.B. die erste Spalte als Zeitreihe und die ersten beiden Zeilen als Bezeichner und phys. Einheit zu benutzen, hat nichts mit dem csv-Format zu tun. gk
Naja das kannst du mit XML schon lösten indem du Atribute vergibst oder coole Templates. Aber das ist doch für 99% aller Anwendungen zu viel.
Vielleicht passt es, vielleicht nicht: Oetikers RRDtool.
Busbauer schrieb: > Naja das kannst du mit XML schon lösten Natürlich kannst Du das, dann hast Du aber Dein eigenes Dateiformat kreiert, mit dem Container XML. Und das wollte der TO erstmal nicht, sondern hat gefragt, ob es einen freien Standard gibt. Mir fällt da höchstens ASAM ein. http://www.asam.net/ gk
Danke erstmal für die Antworten. Ich habs jetzt mal Probeweise als simples CSV geschrieben und mit SciLab geplottet. Allerdings bin ich mit dem Flow nicht besonders zufrieden und SciLab ist im Handling irgendwie schleppend langsam. Für tatsächliche Messdaten fände ich das noch ok, allerdings möchte ich auch Daten aus SW-Simulationen darstellen, wo ich zig Durchläufe mache und es schön wäre das Ergebnis direkt zu sehen. Ich werd mir wohl eine kleine Bibliothek implementieren, die Datensätze speichert und neben eine Export/Import-Funktion für verschiedene Formate auch eine eigene Plotfunktion bietet.
Sehr viele Messgeräte speihern ihre Daten in Formaten, die eigentlich CSV sind. Öfters sind die Dateiendungen einfach anders, aber wenn man die dann mit einem Texteditor öffnet, sieht man dann eine geordnete Struktur, wie man es eben als CSV kennt. Häufiger habe ich auch den Tabulator als Trennzeichen gesehen. Unser Massenspektrometer beispielsweise speichert .msdat Dateien, die aber reinen ASCII-Text enthalten. Ebenso ein EEG-Gerät, welches als .bis speichert, da muss man sich eben für beispielsweise Matlab oder Origin einen kleinen Importfilter schreiben und dann kommt man schnell an die Daten ran. Du solltest dir für ein eigenes Format auch überlegen, ob du als Dezimaltrennzeichen das Komma oder den Punkt verwendest.
Warum hat noch keiner das .vcd-Format (Value Change Dump) genannt? Kann man sehr schnell selbst programmieren, ansonsten gibts ne Menge Code-Beispiele. Kritisch wird's allerdings, wenn riesige Datenmengen anfallen. Da gibts diverse komprimierte Formate. Siehe GTKwave-Dokumentation. Läuft auch alles unter Windows.
Gnuplot mittels Skripte ist, sofern man es mal kann, schnell und einfach. Gnuplot macht aber erst so richtig Spaß unter Linux mit der Shell. Ansonsten kannst du dir auch mal http://kst-plot.kde.org/ für die Visualisierung anschauen. Zur Speicherung genügt ein Textdokument mit einem Eindeutigen Trennzeichen für die Spalten, Zeilen durch neue Zeile. JEDES Visualisierungsprogramm unterstützt dies und so ein Textdokument enthält alle Information die du messen kannst. Ein proprietäres Dateiformat kommt erst durch die Visualisierungsoftware zustande, in dem dann die Daten aufbereitet werden und Formatierung etc. gespeichert werden. (in Gnuplot in Form eines Skripts, bei anderen Programmen eben ein spezielles Dateiformat) Für reine Messwerte ist ein CSV aber das einzige Format das du nehmen solltest. Einarbeiten musst du dich aber in jedes Visualisierungs-Programm, da jedes ein bisschen anders bedient wird. Auf Anhieb von alleine klappt das nicht. Desto umfangreicher die Software, desto länger die Einarbeitungsphase und desto unwahrscheinlich, dass es kostenlos ist. Also kommt es stark auch drauf an wie komplex deine Messwerte sind und wie komplex deine Diagramme später sein sollen.
Gnuplot ist zwar eine gute Idee, aber für alignierte zeitgenaue Mehrkanaldarstellung von ganz unterschiedlichen Messdaten (analog, digital, States, etc.) nur bedingt zu gebrauchen. Wird auch wie angeklungen fürchterlich langsam, wenn man z.B. in Mehrkanalmesswerten im Bereich von 20'000 Samples und mehr herumzoomen will. Das Problem hat GTKwave weniger, allerdings gibt es beim VCD-Format irgendwann overflows.
Wo sind die Fragen... Wie viele Daten und in welcher Zeit? Wie muss auf die Daten zugegriffen werden können (optimiert für wahlfreien Zugriff vs. optimiert für sequentiellen etc.)? Was davon muss in welcher Zeit wieder dargestellt/umgewandelt werden? Welche und wie viele Zusatzinformationen werden/sollen mitgespeichert werden?
Gregor B. schrieb: > Eine Möglichkeit wäre HDF5 > > http://www.hdfgroup.org/ Eventuell kommt auch eine ältere Version (3.6 o.ä) von NetCDF [1] in Frage. Da ist der Aufwand dann etwas geringer. Es gibt gute Dokumentation und viele unterstützte Programmiersprachen. Ab Version 4 wird auch das o.g. HDF5 Datenformat unterstützt! [1] http://www.unidata.ucar.edu/software/netcdf/
Was das Plotten angeht hab ich mir jetzt selbst was mit Qt/Qwt gebastelt, da bin ich auch mit der Performance zufrieden :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.