Freies Format für Messadatenspeicherung

Gast #3083813
Lesenswert?

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)...
Gast #3083825
Lesenswert?

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.
Gast #3083827
Lesenswert?

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.
Gast #3084241
Lesenswert?

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.
#3084464
Lesenswert?

+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.
#3084529
Lesenswert?

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.
Gast #3084732
Lesenswert?

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
Gast #3085377
Lesenswert?

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.
Persönliche Seite #3085394
Lesenswert?

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.
Gast #3085726
Lesenswert?

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.
#3085738
Lesenswert?

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.
Gast #3085809
Lesenswert?

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.
#3085820
Lesenswert?

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?
#3085834
Lesenswert?

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/

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren