What’s new


  • Fixed an issue where a broken plug-in would crash Iris. Instead, broken plug-in will not be loaded.


  • Added the DiffractionDataset.time_series_selection method, which allows to create time-series integrated across an arbitrary momentum-space selection mask. This allows to create time-series from shapes that are not rectangular, at the expense of performance.
  • Added a few methods to create selection masks: DiffractionDataset.selection_rect, DiffractionDataset.selection_disk, and DiffractionDataset.selection_ring.
  • Added the ability to show/hide dataset control bar;
  • Added the ability to export time-series data in CSV format;
  • Fixed an issue where calculations of time-series, relative to pre-time-zero, would raise an error.
  • Symmetrization dialog is no longer in “beta”.


  • Official support for Linux.
  • Plug-ins installed via the GUI can now be used right away. No restarts required.
  • Added the iris.plugins.load_plugin function to load plug-ins without installing them. Useful for testing.
  • Plug-ins can now have the display_name property which will be displayed in the GUI. This is optional and backwards-compatible.
  • Siwick Research Group-specific plugins were removed. They can be found here: https://github.com/Siwick-Research-Group/iris-ued-plugins
  • Switched to Azure Pipelines for continuous integration builds;
  • Added cursor information (position and image value) for processed data view;
  • Fixed an issue where very large relative differences in datasets would crash the GUI displays;
  • Fixed an issue where time-series fit would not display properly in fractional change mode;


  • Added logging support for the GUI component. Logs can be reached via the help menu
  • Added an update check. You can see whether an update is available via the help menu, as well as via the status bar.
  • Added the ability to view time-series dynamics in absolute units AND relative change.
  • Pinned dependency to scikit-ued, to prevent upgrade to scikit-ued 2.0 unless appropriate.
  • Pinned dependency to npstreams, to prevent upgrade to npstreams 2.0 unless appropriate.


  • Fixed an issue where the QDarkStyle internal imports were absolute.


  • Fixed an issue where data reduction would freeze when using more than one CPU;
  • Removed the auto-update mechanism. Update checks will run in the background only;
  • Fixed an issue where the in-progress indicator would freeze;
  • Moved tests outside of source repository;
  • Updated GUI stylesheet to QDarkStyle 2.6.6;


  • Added explicit support for Python 3.7;
  • Usability tweaks, for example more visible mask controls;
  • Added the ability to create standalone executables via PyInstaller;
  • Added the ability to create Windows installers;

  • Due to new forced image orientation, objects on screens were not properly registered (e.g. diffraction center finder).


  • Added the ability to fit exponentials to time-series;
  • Added region-of-interest text bounds for easier time-series exploration
  • Enforced PyQtGraph to use row-major image orientation
  • Datasets are now opened in read-only mode unless absolutely necessary. This should make it safer to handler multiple instances of iris at the same time.


  • Better plug-in handling and command-line interface.


The major change in this version is the ability to guess raw dataset formats using the iris.open_raw function. This allows the possibility to start the GUI and open a dataset at the same time.


The package now only has dependencies that can be installed through conda


This is a minor bug-fix release that also includes user interface niceties (e.g. link to online documentation) and user experience niceties (e.g. confirmation message if you forget pixel masks).


This new version includes a completely rewritten library and GUI front-end. Earlier datasets will need to be re-processed. New features:

  • Faster performance thanks to better data layout in HDF5;
  • Plug-in architecture for various raw data formats;
  • Faster performance thanks to npstreams package;
  • Easier to extend GUI skeleton;
  • Online documentation accessible from the GUI;
  • Continuous integration.