[SciPy-User] [ANN] guiqwt v2.0.3

Pierre.RAYBAUT@C... Pierre.RAYBAUT@C...
Mon Sep 6 07:01:45 CDT 2010


Hi Stéfan,

That's an interesting question indeed (I'm sending this message to the scipy-user mailing list too, as I told you in private).

Actually it was a hard choice to make. The Enthought Tool Suite has wonderful similar features thanks to Traits and Chaco but -especially at the time I made this decision- this is a too big package with too much dependencies, not as much documentation as needed (this has changed since then I think) and far too much updates and API compatibility breaks. In other words, after a careful analysis in 2008, ETS was not mature enough for our applications. We needed (and we still do) to rely on stable libraries for which major API changes do not occur too frequently. From a certain point of view, perhaps ETS is too ambitious with respect to the number of developers behind it, hence its lack of stability.

So the idea was to develop a library much more simple and low-level than Traits and Chaco (less ambitious). The result is two tiny libraries with powerful features (tiny = easy to maintain = durability) and a low number of dependencies.

Note that `guiqwt` has exclusive features like an image display engine (written in C++) which is very efficient (CPU + memory): real-time affine transforms (translation, rotation, resize, etc.) of possibly very large images on an average computer configuration *without* making any copy of the displayed array in memory.

Cheers,
Pierre

> -----Message d'origine-----
> De : sjvdwalt@gmail.com [mailto:sjvdwalt@gmail.com] De la part de Stéfan
> van der Walt
> Envoyé : samedi 4 septembre 2010 11:58
> À : RAYBAUT Pierre 602007
> Objet : Re: [SciPy-User] [ANN] guiqwt v2.0.3
> 
> Hi Pierre
> 
> Wow, this is a massive amount of work!  Out of curiosity, why did you
> choose not leverage Traits and Chaco?  Thank you for taking the
> trouble to open source your work; the scientific community is indebted
> (already for Python(x,y) that, e.g., our university uses, but also for
> this).
> 
> Kind regards
> Stéfan
> 
> On Fri, Sep 3, 2010 at 6:03 PM,  <Pierre.RAYBAUT@cea.fr> wrote:
> > Hi all,
> >
> > I am pleased to announce that `guiqwt` v2.0.3 has been released. This
> library was initially written to help me to develop signal/image
> processing software for internal use only, but after a long process I've
> just been able to share this work with the scientific Python community.
> >
> > Based on PyQwt (plot widgets for PyQt4 graphical user interfaces) and on
> scientific modules NumPy and SciPy, guiqwt is a Python library for
> efficient 2-D data plotting (curves, 1-D and 2-D histograms, images) and
> signal/image processing application development.
> >
> > As you certainly know, the most popular Python module for data plotting
> is currently matplotlib, an open-source library providing a lot of plot
> types and an API (the pylab interface) which is very close to MATLAB's
> plotting interface.
> >
> > guiqwt plotting features are quite limited in terms of plot types
> compared to matplotlib. However the currently implemented plot types are
> much more efficient. For example, the guiqwt image showing function
> (imshow) do not make any copy of the displayed data, hence allowing to
> show images much larger than with its matplotlib's counterpart. In other
> terms, when showing a 30-MB image (16-bits unsigned integers for example)
> with guiqwt, no additional memory is wasted to display the image (except
> for the offscreen image of course which depends on the window size)
> whereas matplotlib takes more than 600-MB of additional memory (the
> original array is duplicated four times using 64-bits float data types).
> >
> > guiqwt also provides the following features:
> >
> >    guiqwt.pyplot: equivalent to matplotlib's pyplot module (pylab)
> >
> >    supported plot items:
> >
> >        * curves, error bar curves and 1-D histograms
> >        * images (RGB images are not supported), images with non-linear
> x/y scales, images with specified pixel size (e.g. loaded from DICOM
> files), 2-D histograms, pseudo-color images (pcolor)
> >        * labels, curve plot legends
> >        * shapes: polygon, polylines, rectangle, circle, ellipse and
> segment
> >        * annotated shapes (shapes with labels showing position and
> dimensions): rectangle with center position and size, circle with center
> position and diameter, ellipse with center position and diameters (these
> items are very useful to measure things directly on displayed images)
> >
> >    curves, images and shapes:
> >
> >        * multiple object selection for moving objects or editing their
> properties through automatically generated dialog boxes (guidata)
> >        * item list panel: move objects from foreground to background,
> show/hide objects, remove objects, ...
> >        * customizable aspect ratio
> >        * a lot of ready-to-use tools: plot canvas export to image file,
> image snapshot, image rectangular filter, etc.
> >
> >    curves:
> >
> >        * interval selection tools with labels showing results of
> computing on selected area
> >        * curve fitting tool with automatic fit, manual fit with sliders,
> ...
> >
> >    images:
> >
> >        * contrast adjustment panel: select the LUT by moving a range
> selection object on the image levels histogram, eliminate outliers, ...
> >        * X-axis and Y-axis cross-sections: support for multiple images,
> average cross-section tool on a rectangular area, ...
> >        * apply any affine transform to displayed images in real-time
> (rotation, magnification, translation, horizontal/vertical flip, ...)
> >
> >    application development helpers:
> >
> >        * ready-to-use curve and image plot widgets and dialog boxes
> >        * load/save graphical objects (curves, images, shapes)
> >        * a lot of test scripts which demonstrate guiqwt features
> >
> >
> > guiqwt has been successfully tested on GNU/Linux and Windows platforms.
> >
> > Python package index page:
> > http://pypi.python.org/pypi/guiqwt/
> >
> > Documentation, screenshots:
> > http://packages.python.org/guiqwt/
> >
> > Downloads (source + Python(x,y) plugin):
> > http://sourceforge.net/projects/guiqwt/
> >
> > Cheers,
> > Pierre
> >
> > ---
> >
> > Dr. Pierre Raybaut
> > CEA - Commissariat à l'Energie Atomique et aux Energies Alternatives
> > _______________________________________________
> > SciPy-User mailing list
> > SciPy-User@scipy.org
> > http://mail.scipy.org/mailman/listinfo/scipy-user
> >


More information about the SciPy-User mailing list