Uni-Logo

Pyphant

Ein Python-Framework zur Modellierung von Datenanalyse-Prozessen

 
 

Pyphant stellt dem Benutzer eine interaktive Umgebung zur Verfügung, in der komplexe Informationsverarbeitungsprozesse auf übersichtliche Weise modelliert werden können. Hierbei wird der Ansatz verfolgt, dass komplexe Algorithmen der wissenschaftlichen Informationsverarbeitung auf nicht-triviale Verarbeitungsschritte zurückgeführt werden können, die mittels eines Datenflussmodells zu einem komplexen Informationsverarbeitungsprozess zusammengeführt werden können. Ein solcher Algorithmus kann vom Benutzer mittels einer graphischen Benutzerschnittstelle aus vorgefertigten Verarbeitungsmodulen als gerichteter, verzweigter Graph zusammengestellt werden. Während dieses Entwicklungsprozesses können alle Zwischenergebnisse visualisiert werden. Pyphant gewährleistet, dass der Benutzer jederzeit die Übersicht über den gesamten Datenfluss behält und dabei gezielt einzelne Ergebnisse abfragen und hinterfragen kann. Für den Lernenden ermöglicht dieser Ansatz einen unkomplizierten Zugang zu umfangreichen Datenverarbeitungsabläufen; dem Wissenschaftler stellt es ein vielseitiges Werkzeug zur Modifikation und Implementierung von Datenanalysealgorithmen zur Verfügung.


Aufbau

Pyphant besteht aus drei Schichten. Diese umfassen die eigentliche Kernfunktionalität (Core), die Schnittstellen zur Dateneingabe und -ausgabe sowie die Visualisierungsschnittstelle. Letztere basiert auf der matplotlib-Bibliothek und kann per Visualizer-PlugIns auf Basis der bekannten Matlab Syntax zur Datenvisualisierung erweitert werden. Der Pyphant-Kern umfasst alle Basisklassen für die Modellierung von Datenflüssen: Jede modulare Informationsverarbeitungseinheit (Worker) nimmt Eingabedaten über einen oder mehrere Empfangskanäle (Sockets) entgegen und stellt die zwischengespeicherten Verarbeitungsergebnisse über Stecker (Plugs) zur Verfügung. Die zur Verfügung stehenden Worker werden bei Programmstart dynamisch aus den vorhandenen Toolboxen geladen und stehen dem Benutzer auf der graphischen Benutzeroberfläche als Drag-And-Drop Elemente zur Verfügung. Das gesamte Datenflussmodell wird von einem Verarbeitungsrezept (Recipe) verwaltet. Die Interoperabilität der einzelnen Worker wird über eine gemeinsame Schnittstelle - dem DataContainer - gewährleistet. Zur Zeit werden DataContainer für diskretisierte Felder (Matrix/Array) und für Tabellen (Vektor/Array) zur Verfügung gestellt. Die Normierung der gespeicherten Daten werden als PhysicalQuantities-Objekte bereits beim Einlesen der Rohdaten erfasst und bei der Datenverarbeitung in die entsprechenden abgeleiteten Größen überführt, so dass bei der späteren Ergebnisvisualisierung die Diagrammachsen automatisch mit den korrekten Einheiten beschriftet werden können.

 

Während Pyphant das Datenflussmodell zur Verfügung stellt, werden die eigentlichen Datenverarbeitungsroutinen über Toolboxen zur Verfügung gestellt, die über einen Plug-In-Mechanismus zur Laufzeit geladen werden.

 

 

Veröffentlichungen

 

Das Pyphant-Framework und ein Beispielrezept zur Bestimmung der Längenskala polymerer Conetzwerke auf Basis von Rasterkraftmikroskopie-Aufnahmen wurden 2007 in einer Ausgabe der Python Papers diskutiert. Dieser Artikel basiert auf einem Beitrag zur Europython 2006 Konferenz, der von dem Organisationskomitee der Europython2006-Konferenz als Highlight eingestuft wurde.


Arbeiten mit Pyphant

 

Bruns, N. Bannwarth, W., Tiller, J. C. (2008). Amphiphilic conetworks as activating carriers for the enhancement of enzymatic CO2. Biotechnology and Bioengineering, 101(1), p. 19-26

 

Hanko, N. (2006). Entwicklung eines neuen optotechnischen Gassensors zur Bestimmung von SO2, eines vorteilhaften Messsystems für die Gasanalytik und einer vielseitigen Matrix für die einfache Herstellung chemischer und biochemischer Sensoren. Doktorarbeit, Universität Freiburg


Verfügbare Versionen


Pyphant kann über sourceforge.net als Download bezogen werden. Pyphant 1.0b3 steht ebenfalls als macports Paket zur Verfügung.
Die neueste Entwicklerversion sowie ein öffentlicher Issue-Tracker stehen auf GitHub zur Verfügung.

Dateien
Benutzerspezifische Werkzeuge