Seite 1 von 1

2D Visualisierung von Messdaten

Verfasst: Sonntag 23. Oktober 2005, 13:24
von ilja
Hallo!

Ich suche nach einer Möglichkeit Messdaten, zB. ein medizinisches EKG-Signal zu visualisieren (Oszilloskop-artig) und frage mich ob Python für so eine Aufgabe geeignet ist und anderen Sprachen dementsprechend bevorzugt werden soll.

Die Daten liegen zunächst als reine Abtastwerte in einer Datei vor und sollen aber später auf jeden Fall in Echtzeit empfangen/gelesen und visualisiert werden, zB von der USB-Schnittstelle oder einem (Software-) Signalgenerator (vielleicht auch in Python programmiert).
Ich hatte vorher mit Gnuplot in Kombination mit Python gearbeitet, was unheimlich schnell zu programmieren ging. In Punkto Echtzeitfähigkeit ist das aber nicht mehr ausreichend.

Das ganze ist ein Projekt einer Veranstaltung "Medizinische Messtechnik und Signalverarbeitung" im Informatikstudiengang.

Any ideas, comments, suggestions, questions?

Thanx

Ilja

Verfasst: Sonntag 23. Oktober 2005, 14:16
von Leonidas
Was Gnuplot kann, kann Matplot schon la.. ähm.. besser!

Alternativ könntest du eine Art Oszilloskop mit Pygame basteln. Es klingt zwar so als wäre es nur für Spiele geeignet, jedoch kann man Pygame vielfältig einsetzen. Jedoch erfordert Pygame (und SDL allgemein, da Pygame ein SDL Binding ist) ein wenig Einarbeitungszeit.

Verfasst: Montag 24. Oktober 2005, 09:51
von jochim
Hi,
sieh dir mal Matplotlib an:http://matplotlib.sourceforge.net/ Der Hauptentwickler des Programmes ist Neurologe und nutzt es zur Darstellung von EEG's und ähnlichem. Zudem ist es leicht zu handhaben und bietet duch seine Backends viele Ausgabemöglichkeiten, zudem unter einer Open Source Lizenz, also kostenfrei.

MfG
Jochim

Verfasst: Dienstag 25. Oktober 2005, 20:41
von ilja
Danke für Antworten :-)

An Pygame hatten wir auch gedacht, auch wenn das vielleicht etwas überdimentionsiert ist.

Und zu Matplot: ist das das Äquivalent zu Gnuplot? Also generiert man hier statische Grafiken? Oder kann man eine 2D-Wellenform / ein Signal quasi in Echtzeit über den Bildschirm wandern lassen?

Werd mal beides ausprobieren.

Thanx again

Verfasst: Mittwoch 26. Oktober 2005, 19:13
von CM
matplotlib ist toll und kann beides - aber mit Einschränkungen bei der interaktiven Verwendung. Ich benutzte es gerade in einer wxPython-Applikation und die ist höllisch langsam - aber darauf kommt es mir hierbei nicht an (es ist Faulheit, die mich vom Wechsel abhält ;-) ). matplotlib mit gtk soll auch wesentlich schneller sein (darüber werde ich ggf. nachdenken mal zu wechseln).

Also, wenn Du wirklich Geschwindigkeit brauchst, ist matplotlib vielleicht keine so gute Alternative - aber für Deine Applikation vielleicht schon. Ich möchte Dir den Rat geben John Hunter (erst hatte ich hier seine Mailadresse gepostet, aber das ist wohl eine schlechte Idee - probiere besser erst mal die Mailingliste: matplotlib-users@lists.sourceforge.net) direkt zu kontaktieren - schließlich ist er der Autor von Matplotlib und arbeitet damit in genau Deinem Feld. Herz, was willst Du mehr? ;-)

gnuplot & python sind auch eine gute Kombination, aber es schadet in meinen Augen dann nicht gnuplot schon zu kennen, damit der Start nicht so schwer wird. Außerdem - nur meinen Meinung! - sind die Plots nicht so schön.

Gruß,
Christian

edit: 1 x: Austausch der Mailadressen

Verfasst: Donnerstag 27. Oktober 2005, 20:59
von ilja
Vielen Dank für deine Hinweise! Bin mal gespannt auf die matplotlib, denn Gnuplot kenn ich ja schon, und finde das eigentlich auch schon sehr toll.
Auch interessant, dass der Autor von Matplotlib aus der Medizinecke kommt.

Ein Kommilitone von mir recherschiert diesbezüglich auch und ist aber auf Qt / PyQt gestossen... Kennst du dich damit auch aus?

Verfasst: Donnerstag 27. Oktober 2005, 21:10
von Leonidas
ilja hat geschrieben:Ein Kommilitone von mir recherschiert diesbezüglich auch und ist aber auf Qt / PyQt gestossen... Kennst du dich damit auch aus?
Qt ist ein GUI-Toolkit, wie wxWidgets und GTK+ es auch sind und PyQt ist ein Python-Binding dafür. Wie willst du damit Messadten visualisieren? Punkte auf die Fenster zeichnen? Klar, das ist natürlich möglich, aber das kannst du in wxPython und PyGTK ja auch. Ich habe schon einiges Gute über Qt/PyQt gehört, jedoch arbeitet PyQt noch nicht mit dem neuesten Qt4 zusammen und ich finde es auch nicht so ganz toll, dass die Sachen von zwei Firmen (Trolltech bei Qt und RiverBank bei PyQt) entwickelt werden, statt von Communitys, wobei das auch Vorteile hat.