PyDVT A Python package for data displaying
E N D
Presentation Transcript
PyDVTA Python package for data displaying Jorg Klora Gilles Berruyer Emmanuel Papillon Nicolas Pascal Alexandre Gobbo
What’s PyDVT? • Package containing Python base classes for data visualization applications.
Objective • Easy remake of existing ESRF graphical tools in Python. • Easy creation of simple graphic applications in beamlines (on-line acquisition) • Standarize graphical application development • Attempt to share model with Scisoft (off-line analysis).
Requirements • Tk or Qt? GUI toolkit independent. • Generic data abstraction layer. • Independent and extensible modules. • Performance. • Multi-Platform. • Easy of use. • Simple and complex cases.
VIEW SELECTION … SELECTION EDF FILE DATA MULTIPLE SELECTION DATA RECT SELECTION SPEC SHARED MEMORY DATA Info LINE SELECTION SPEC FILE DATA PAGE DATA SELECTION Info JPG FILE DATA Array * 1 … DATA VIEW 1 * TOOLS RELATION * FILTER BINDING OBJECTS * * * COLORMAP EDITOR LINE GRAPH INHERITANCE HLINE IMAGE EXTENDED VIEWS GUI BINDING` COLORMAP VLINE CONTOUR QT Binding FUNCTION AUXILIARY DIALOGS RECT MESH IMPORTATION FIT TK Binding … … …
Tk import Tkinter from SPSData import * from ImageView import * root = Tkinter.Tk () data=SPSData (RefreshInterval=100) view = ImageView (root) view.SetSource ( ColormapFilter (None, RectSelection(data))) data.SetSource (sys.argv[1]) data.LoadSource (sys.argv[2]) view.Show () root.mainloop () Qt import qt from SPSData import * from ImageView import * root = qt.Qapplication (sys.argv) data=SPSData (RefreshInterval=100) view = ImageView (None) view.SetSource ( ColormapFilter (None, RectSelection(data))) data.SetSource (sys.argv[1]) data.LoadSource (sys.argv[2]) view.Show () root.setMainWidget (View) root.exec_loop () Tkinter x Pyqt Simple Example
VIEW SELECTION VIEW SPECIFIC NUMPY FILTER VIEW * NUMPY ARRAY * * 1 1 * GRAPH LINE HLINE IMAGE GUI BINDING` VLINE HISTO QT Binding RECT 3D VIEW TK Binding … …
Tk import Tkinter from ImageView import * from Numeric import * root = Tkinter.Tk () view = ImageView (root) arr = Numeric.ones ((500,500)) view.SetData(Image(arr)) view.Show () root.mainloop () Qt import qt from ImageView import * from Numeric import * root = qt.Qapplication (sys.argv) view = ImageView (None) arr = Numeric.ones ((500,500)) view.SetData(Image(arr)) view.Show () root.setMainWidget (View) root.exec_loop () Even Simpler Example (NumPy)
More Information... www.esrf.fr/computing/bliss/python/PyDVT