summaryrefslogtreecommitdiff
path: root/CHANGELOG.rst
blob: 0b353a15ce664ad5449a697a463bd9799714ccdb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
Change Log
==========

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`` to ``silx.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