Change Log¶
0.12.0: 2020/01/09¶
Python 2.7 is no longer officially supported (even if tests pass and most of the library should work).
silx view application:
Added: keep the same axes selection when changing dataset except for the stack view (PR #2701, #2780)
Added a Description column in the browsing tree to display NeXus title or name (PR #2804)
Added support of URL as filename (PR #2750)
Behavior changed: no longer lock HDF5 files by default, can be changed with –hdf5-file-locking option (PR #2861)
silx.gui:
silx.gui.plot:
Added scatter plot regular and irregular grid visualization mode (PR #2810, #2815, #2820, #2824, #2831)
Added baseline argument to PlotWidget addCurve and addHistogram methods (PR #2715)
Added right axis support to PlotWidget marker items (PR #2744)
Added BoundingRect PlotWidget item (PR #2823)
Added more markers to PlotWidget items using symbols (PR #2792)
Improved and fixed PlotWidget and backends rendering and picking to guarantee rendering order of items (PR #2602, #2694, #2726, #2728, #2730, #2731, #2732, #2734, #2746, #2800, #2822, #2829, #2851, #2853)
Improved RegionOfInterest: Added sigItemChanged signal, renamed get|setLabel to get|setName (PR #2684, #2729, #2794, #2803, #2860)
Improved StackView: Allow to save dataset to HDF5 (PR #2813)
silx.gui.plot3d:
Added colormapped isosurface display to ComplexField3D (PR #2675)
Miscellaneous:
Added cividis colormap (PR #2763)
Added silx.gui.widgets.ColormapNameComboBox widget (PR #2814)
Added silx.gui.widgets.LegendIconWidget widget (PR #2783)
Added silx.gui.utils.blockSignals context manager (PR #2697, #2702)
Added silx.gui.utils.qtutils.getQEventName function (PR #2725)
Added silx.gui.colors.asQColor function (PR #2753)
Minor fixes (PR #2662, #2667, #2674, #2719, #2724, #2747, #2757, #2760, #2766, #2789, #2798, #2799, #2805, #2811, #2832, #2834, #2839, #2849, #2852, #2857, #2864, #2867)
silx.opencl:
Added silx.opencl.sparse.CSR with support of different data types (PR #2671)
Improved support of different platforms like PoCL (PR #2669, #2698, #2806)
Moved non-OpenCL related utilities to silx.opencl.utils module (PR #2782)
Fixed silx.opencl.sinofilter.SinoFilter to avoid importing scikit-cuda (PR #2721)
Fixed kernel garbage collection (PR #2708)
Fixed silx.opencl.convolution.Convolution (PR #2781)
silx.math/silx.image:
Added trilinear interpolator: silx.math.interpolate.interp3d (PR #2678)
Added silx.image.utils.gaussian_kernel function (PR #2782)
Improved silx.image.shapes.Polygon argument check (PR #2761)
Fixed and improved silx.math.fft with FFTW backend (PR #2751)
Fixed support of not finite data in fit manager (PR #2868)
silx.io:
Added asarray=True argument to silx.io.dictdump.h5todict function (PR #2692, #2767)
Improved silx.io.utils.DataUrl (PR #2790)
Increased max number of motors in specfile (PR #2817)
Fixed data conversion when reading images with fabio (PR #2735)
Build, documentation and tests:
Added Cython as a build dependency (PR #2795, #2807, #2808)
Added Debian 10 packaging (PR #2670, #2672, #2666, #2686, #2706)
Improved documentation (PR #2673, #2680, #2679, #2772, #2759, #2779, #2801, #2802, #2833, #2857, #2869)
Improved testing tools (PR #2704, #2796, #2818)
Improved bootstrap.py script (PR #2727, #2733)
0.11.0: 2019/07/03¶
Graphical user interface:
Plot:
Add sample code on how to update a plot3d widget from a thread
ScatterPlot: add the possibility to plot as a surface using Delaunay triangulation
ScatterView: add a tool button to change scatter visualization mode (ex. Solid)
(OpenGL backend) Fix memory leak when creating/deleting widgets in a loop
Plot3D:
Add an action to toggle plot3d’s PositionInfoWidget picking.
Add a 3D complex field visualization: Complex3DField (also available from silx view)
Add a PositionInfoWidget and a tool button to toggle the picking mode to SceneWindow
Add the possibility to render the scene with linear fog.
silx.gui.widgets:
Fix ImageFileDialog selection for a cube with shape like 1,y,x.
Miscellaneous:
Requires numpy version >= 1.12
HDF5 creator script
Support of Python 3.4 is dropped. Please upgrade to at least Python 3.5.
This is the last version to officially support Python 2.7.
The source code is Python 3.8 ready.
Improve PySide2 support. PyQt4 and PySide are deprecated.
0.10.0: 2019/02/19¶
Graphical user interface:
Plot:
Add support of foreground color
Fix plot background colors
Add tool to mask ellipse
StatsWidget:
Add support for plot3D widgets
Add a PyMca like widget
Colormap: Phase colormap is now editable
ImageView: Add ColorBarWidget
PrintPreview:
Add API to define ‘comment’ and ‘title’
Fix resizing in PyQt5
Selection: Allow style definition
ColormapDialog: display ‘values’ plot in log if colormap uses log
Synchronize ColorBar with plot background colors
CurvesROIWidget: ROI is now an object.
Plot3D:
SceneWidget: add ColormapMesh item
Add compatibility with the StatsWidget to display statistic on 3D volumes.
Add ScalarFieldView.get|setOuterScale
Fix label update in param tree
Add ColormapMesh item to the SceneWidget
HDF5 tree:
Allow URI drop
Robustness of hdf5 tree with corrupted files
silx.gui.widgets:
Add URL selection table
Input/output:
Support compressed Fabio extensions
Add a function to create external dataset for .vol file
silx view:
Support 2D view for 3D NXData
Add a NXdata for complex images
Add a 3d scalar field view to the NXdata views zoo
Improve shortcuts, view loading
Improve silx view loading, shortcuts and sliders ergonomy
Support default attribute pointing to an NXdata at any group level
silx convert
Allow to use a filter id for compression
Math:
fft: multibackend fft
OpenCL:
Compute statistics on a numpy.ndarray
Backprojection:
Add sinogram filters (SinoFilter)
Input and/or output can be device arrays.
Miscellaneous:
End of PySide support (use PyQt5)
Last version supporting numpy 1.8.0. Next version will drop support for numpy < 1.12
Python 2.7 support will be dropped before end 2019. From version 0.11, a deprecation warning will be issued.
Remove some old deprecated methods/arguments
Set Cython language_level to 3
0.9.0: 2018/10/23¶
Graphical user interface:
silx.gui.widgets:
Adds RangeSlider widget, a slider with 2 thumbs
Adds CurveLegendsWidget widget to display PlotWidget curve legends (as an alternative to LegendSelector widget)
Adds FlowLayout QWidget layout
Plot:
Adds CompareImages widget providing tools to compare 2 images
ScatterView: Adds alpha channel support
MaskToolsWidget: Adds load/save masks from/to HDF5 files
PlotWidget:
Adds getItems method, sigItemAdded and sigItemAboutToBeRemoved signals
Adds more options for active curve highlighting (see get|setActiveCurveStyle method)
Deprecates get|setActiveCurveColor methods
Adds get|setActiveCurveSelectionMode methods to change the behavior of active curve selection
Adds configurable line style and width to line markers
Fixes texture cache size in OpenGL backend
Plot3D:
Adds SceneWidget.pickItems method to retrieve the item and data at a given mouse position
Adds PositionInfoWidget widget to display data value at a given mouse position
silx.gui.utils:
Adds image module for QImage/numpy array conversion functions
Adds testutils helper module for writing Qt tests (previously available internally as silx.gui.test.utils)
Adds silx.gui.qt.inspect module to inspect Qt objects
Math:
Updates median filter with support for Not-a-Number and a ‘constant’ padding mode
silx view:
Fixes file synchronization
Adds a refresh button to synchronize file content
Dependencies:
Deprecates support of PySide Qt4 binding (We intend to drop official support of PySide in silx 0.10.0)
Deprecates support of PyQt4
Adds h5py and fabio as strong dependencies
Miscellaneous:
Adds silx.examples package to ship the example with the library
0.8.0: 2018/07/04¶
Graphical user interface:
Plot:
Adds support of x-axis date/time ticks for time series display (see silx.gui.plot.items.XAxis.setTickMode)
Adds support of interactive authoring of regions of interest (see silx.gui.plot.items.roi and silx.gui.plot.tools.roi)
Adds StatsWidget widget for displaying statistics on data displayed in a PlotWidget
Adds ScatterView widget for displaying scatter plot with tools such as line profile and mask
Overcomes the limitation to float32 precision with the OpenGL backend
Splits plot toolbar is several reusable thematic toolbars
Plot3D: Adds SceneWidget items to display many cubes, cylinders or hexagonal prisms at once
Adds silx.gui.utils package with submitToQtMainThread for asynchronous execution of Qt-related functions
Adds Qt signals to Hdf5TreeView to manage HDF5 file life-cycle
Adds GroupDialog dialog to select a group in a HDF5 file
Improves colormap computation with a Cython/OpenMP implementation
Main API changes:
Colormap is now part of silx.gui.colors
ColormapDialog is now part of silx.gui.dialogs
MaskToolsWidget.getSelectionMask method now returns None if no image is selected
Clean-up FrameBrowser API
Image
Adds an optimized marching squares algorithm to compute many iso contours from the same image
Input/output:
Improves handling of empty Spec scans
Add an API to NXdata parser to get messages about malformed input data
silx.sx
Allows to use silx.sx in script as in Python interpreter
sx.imshow supports custom y-axis orientation using argument origin=upper|lower
Adds sx.enable_gui() to enable silx widgets in IPython notebooks
silx convert
Improves conversion from EDF file series to HDF5
silx view
Adds user preferences to restore colormap, plot backend, y-axis of plot image,…
Adds –fresh option to clean up user preferences at startup
Adds a widget to create custom viewable NXdata by combining different datasets
Supports CTRL+C shortcut in the terminal to close the application
Adds buttons to collapse/expand tree items
NXdata view now uses the ScatterView widget for scatters
Miscellaneous
Drops official support of Debian 7
Drops versions of IPython console widget before the qtconsole package
Fixes EDF file size written by EdfFile module with Python 3
0.7.0: 2018/02/27¶
Input/output:
Priovides silx.io.url.DataUrl to parse supported links identifying group or dataset from files.
silx.io.open now supports h5pyd and silx custom URLs.
silx.io.get_data is provided to allow to reach a numpy array from silx.
OpenCL:
Provides an API to share memory between OpenCL tasks within the same device.
Provides CBF compression and decompression.
Simple processing on images (normalization, histogram).
Sift upgrade using memory sharing.
silx.sx:
Added contour3d function for displaying 3D isosurfaces.
Added points3d function for displaying 2D/3D scatter plots.
Added ginput function for interactive input of points on 1D/2D plots.
Graphic user interface:
Provides a file dialog to pick a dataset or a group from HDF5 files.
Provides a file dialog to pick an image from HDF5 files or multiframes formats.
The colormap dialog can now be used as non-modal.
PlotWidget can save the displayed data as a new NXentry of a HDF5 file.
PlotWidget exports displayed data as spec files using more digits.
Added new OpenGL-based 3D visualization widgets:
Supports 3D scalar field view 2D/3D scatter plots and images.
Provides an object oriented API similar to that of the 1D/2D plot.
Features a tree of parameters to edit visualized item’s properties (e.g., transforms, colormap…)
Provides interactive panning of cut and clip planes.
Updates of ScalarFieldView widget:
Added support for a 3x3 transform matrix (to support non orthogonal axes)
Added support of an alternative interaction when ctrl is pressed (e.g., rotate by default and pan when ctrl/command key is pressed).
Added 2 sliders to control light direction in associated parameter tree view.
silx view:
Uses a single colormap to show any datasets.
The colormap dialog can stay opened while browsing the data.
The application is associated with some file types to be used to load files on Debian.
Provides a square amplitude display mode to visualize complex images.
Browsing an NXentry can display a default NXdata.
Added explanation when an NXdata is not displayable.
NXdata visualization can now show multiple curves (see @auxiliary_signals).
Supports older NXdata specification.
silx convert:
Added handling of file series as a single multiframe
Default behavior changes to avoid to add an extra group at the root, unless explicitly requested (see –add-root-group).
Writer uses now utf-8 text as default (NeXus specification).
EDF files containing MCA data are now interpreted as spectrum.
Miscellaneous:
Added silx.utils.testutils to share useful unittest functions with other projects.
Python 2 on Mac OS X is no longer tested.
Experimental support to PySide2.
If fabio is used, a version >= 0.6 is mandatory.
0.6.0: 2017/10/02¶
OpenCl. Tomography. Implement a filtered back projection.
Add a PrintPreview widget and a PrintPreviewToolButton for PlotWidget.
Plot:
Add a context menu on right click.
Add a ComplexImageView widget.
Merged abstract Plot class with PlotWidget class.
Make colormap an object with signals (sigChanged)
Add a colorbar widget silx.gui.plot.ColorBar.
Make axis an object, allow axis synchronization between plots, allow adding constraints on axes limits.
Refactor plot actions, new sub-package silx.gui.plot.actions.
Add signals on PlotWidget items notifying updates.
Mask. Support loading of TIFF images.
Plot3d:
Rework toolbar and interaction to use only the left mouse button.
Support any colormap.
Hdf5TreeView:
Add an API to select a single tree node item (setSelectedH5Node)
Better support and display of types.
New column for displaying the kind of links.
Broken nodes are now selectable.
StackView. Add a setTitleCallback method.
Median filter. Add new modes (reflect, mirror, shrink) in addition to nearest.
IO:
Rename module spectoh5 to convert. Add support for conversion of fabio formats.
Support NPZ format.
Support opening an URI (silx.io.open(filename::path)).
Group methods .keys, .value and .items now return lists in Python 2 and iterators in Python 3.
Image. Add tomography utils: phantomgenerator to produce Shepp-Logan phantom, function to compute center of rotation (calc_center_corr, calc_center_centroid) and rescale the intensity of an image (rescale_intensity).
Commands:
silx view:
Add command line option –use-opengl-plot.
Add command line option –debug, to print dataset reading errors.
Support opening URI (silx view filename::path).
silx convert. New command line application to convert supported data files to HDF5.
Enable usage of silx.resources for other projects.
The silx license is now fully MIT.
0.5.0: 2017/05/12¶
Adds OpenGL backend to 1D and 2D graphics
Adds Object Oriented plot API with Curve, Histogram, Image, ImageRgba and Scatter items.
Implements generic launcher (
silx view
)NXdataViewer. Module providing NeXus NXdata support
Math/OpenCL. Implementation of median filter.
Plot. Implementation of ColorBar widget.
Plot. Visualization of complex data type.
Plot. Implementation of Scatter Plot Item supporting colormaps and masks.
Plot. StackView now supports axes calibration.
I/O. Supports SPEC files not having #F or #S as first line character.
I/O. Correctly exposes UB matrix when found in file.
ROIs. Simplification of API: setRois, getRois, calculateRois.
ROIs. Correction of calculation bug when the X-axis values were not ordered.
Sift. Moves package from
silx.image
tosilx.opencl
.
0.4.0: 2017/02/01¶
Adds plot3D package (include visualization of 3-dimensional scalar fields)
Adds data viewer (it can handle n-dimensional data)
Adds StackView (ex. Visualization of stack of images)
Adds depth profile calculation (ex. extract profile of a stack of images)
Adds periodic table widget
Adds ArrayTableWidget
Adds pixel intensity histogram action
Adds histogram parameter to addCurve
Refactoring. Create silx.gui.data (include widgets for data)
Refactoring. Rename utils.load as silx.io.open
Changes active curve behavior in Plot. No default active curve is set by default
Fit Action. Add polynomial functions and background customization
PlotWindow. Provide API to access toolbar actions
Handle SPEC, HDF5 and image formats through an unified API
hdf5widget example. Inspect and visualize any datasets
Improves mask tool
Deprecates PlotWindow dock widgets attributes in favor of getter methods
0.3.0: 2016/10/12¶
Adds OpenCL management
Adds isosurface marching cubes
Adds sift algorithm for image alignement
Adds octaveh5 module to insure communication between octave and python using HDF5 file
Adds silx.utils module containing weakref and html-escape
Adds silx.sx for flat import (helper for interactive shell)
Adds HDF5 load API (supporting Spec files) to silx.io.utils module
Adds SpecFile support for multiple MCA headers
Adds HDF5 TreeView
Adds FitManager to silx.math.fit and FitWidget to silx.gui.fit
Adds ThreadPoolPushButton to silx.gui.widgets
Adds getDataRange function to plot widget
Adds loadUi, Slot and Property to qt.py
Adds SVG icons and support
Adds examples for plot actions, HDF5 widget, helper widgets, converter from Spec to HDF5
Adds tutorials for plot actions, spech5, spectoh5, sift and fitmanager
Improves right axis support for plot widget
Improves mask tool
Refactors widgets constructor: first argument is now the parent widget
Changes plot documentation and add missing module to the documentation
0.2.0: 2016/07/12¶
Adds bilinear interpolator and line-profile for images to silx.image
Adds Levenberg-Marquardt least-square fitting algorithm to silx.math.fit
Histogramnd changed to become a class rather than a function, API and return values changed
Adds HistogramndLut, using a lookup table to bin data onto a regular grid for several sets of data sharing the same coordinates
Adds legend widget and bottom toolbar to PlotWindow
Adds a line-profile toolbar to PlotWindow
Adds ImageView widget with side histograms and profile toolbar
Adds IPython console widget, to be started from PlotWindow toolbar
Adds Plot1D widget for curves and Plot2D widget for images
Adds ROI widget for curves in PlotWindow
Adds a mask widget and toolbar to plot (2D)
Renames silx.io.dicttoh5 to silx.io.dictdump
Adds configuration dictionary dumping/loading to/from JSON and INI files in silx.io.configdict
Adds specfile wrapper API compatible with legacy wrapper: silx.io.specfilewrapper
Transposes scan data in specfile module to have detector as first index
Set up nigthly build for sources package, debian packages (http://www.silx.org/pub/debian/) and documentation (http://www.silx.org/doc/)
0.1.0: 2016/04/14¶
Adds project build, documentation and test structure
Adds continuous integration set-up for Travis-CI and Appveyor
Adds Debian packaging support
Adds SPEC file reader, SPEC file conversion to HDF5 in silx.io
Adds histogramnd function in silx.math
Adds 1D, 2D plot widget with a toolbar, refactored from PyMca PlotWindow in silx.gui.plot