Changelog#

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

In addition, prefix emojis give the scope of the change:

  • ๐Ÿ–ผ๏ธ Graphical user interface (Orange widgets)

  • ๐Ÿ”ง Ewoks tasks

  • ๐Ÿ“š Documentation

Unreleased#

Added#

  • ๐Ÿ”ง Sparse File Task: Added Sparse File for lima segmentation added, to integrate with blissoda.

1.2.0 2026-05-07#

Added#

  • ๐Ÿ–ผ๏ธ Intensity Filter: Added Elbow Plot to the Intensity Control box

  • ๐Ÿ”ง Subtract Peaks: Added Subtract Peaks task to do poly phase make map

  • ๐Ÿ–ผ๏ธ Indexer OWs: Added process group name for all index based OW

  • ๐Ÿ–ผ๏ธ Subtract Indexed Peaks: Added Subtract Peaks OWWidget that perform subtraction of peaks used in make map grains from geometry transformation peaks

  • ๐Ÿ–ผ๏ธ Two Phase Workflow: Added two phase sample workflow using grid indexer and deterministic indexing

Changed#

  • ๐Ÿ–ผ๏ธ Geometry Transformation Lattice Filtering: Plot with custom axes was moved to a separate tab

  • ๐Ÿ“š Nested models of task inputs in the Tasks page are now displayed.

  • ๐Ÿ–ผ๏ธ Fit Geometry: Rework buttons that trigger fitting

  • ๐Ÿ–ผ๏ธ Segmenter Frame: ESRF Experiment PROCESSED_DATA folder used for the default analyze folder.

1.1.0#

Added#

  • ๐Ÿ–ผ๏ธ Added Orange widget for Index Grains

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Detector name and omega motor name are now editable

  • ๐Ÿ–ผ๏ธ Indexer Filter: Indexer Ring Log information visible in GUI LOG message

  • ๐Ÿ”ง Lima Segmenter: Fix memory error when performing parallel computation with lima_segmenter algorithm

  • ๐Ÿ–ผ๏ธ 3DXRD workflow with deterministic indexer algorithm

  • ๐Ÿ”ง Tasks now save inputs in the output group under task_inputs

Fixed#

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Fixed positions of displayed peaks when segmenting with the Lima segmenter

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Fixed Num pixels in spot parameter not being used when segmenting a single frame with the Lima segmenter

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Fixed values not restored after changing algorithm

  • ๐Ÿ–ผ๏ธ Geometry Correction: Fixed visual bug when loading a lattice file before running the task

  • ๐Ÿ–ผ๏ธ Geometry Transformation: Fixed the validating the input url, Geometry Parameter before execution

  • ๐Ÿ–ผ๏ธ Detector Correction: Improve error message when no spline file is provided

  • ๐Ÿ–ผ๏ธ Refine Grain Mapping: Fixed disappearing histogram when changing bins in Grain Stats panel

Changed#

  • ๐Ÿ–ผ๏ธ Grid Indexing: Progress logs are now displayed separately

1.0.0 - 2026-01-30#

The lowest supported version of this release is Python 3.10.

Added#

  • New command-line utility ewoks3dxrd-grain-vis to visualize grains generated by the MakeMapGrain task.

  • ๐Ÿ”ง Fit Geometry: New task to produce calibration parameters

  • ๐Ÿ”ง MakeGrainMap: Now saves the peaks associated with the generated grain in the output NeXus file

  • ๐Ÿ”ง๐Ÿ–ผ๏ธ FilterByIntensity: New task input thermal_factor

  • ๐Ÿ–ผ๏ธ All widgets: output URL is now saved so that the output plot are automatically generated when opening a workflow that was already run.

  • ๐Ÿ–ผ๏ธ Added Orange widget for Fit Geometry

  • ๐Ÿ–ผ๏ธ Added Orange widget Generate Image from raw data to generate an EDF from HDF5 data

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Added a button to go back to the frame with the highest intensity (Auto)

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Added new segmentation algorithm lima_segmenter. The algorithm can now be selected from the new algorithm lima_segmenter or the previous algorithm gaussian_peak_search.

  • ๐Ÿ–ผ๏ธ Detector Correction: Added labels to text fields

  • ๐Ÿ–ผ๏ธ Grid Indexing: Added possibility to plot lattice rings on the incoming peaks plot

  • ๐Ÿ–ผ๏ธ Geometry Transformation, Lattice Filtering, Index Filtering, Grid Indexing: Added labels to rings in the plot

  • ๐Ÿ–ผ๏ธ Geometry Transformation, Lattice Filtering: Added the possiblity to change plot axes in the output peaks plot

  • ๐Ÿ–ผ๏ธ Refine Grain Mapping: Added plot of grain statistics in a new tab Grains Stats

  • ๐Ÿ–ผ๏ธ Grid Indexing, Refine Grain Mapping: Added possibility to cancel the processing

  • ๐Ÿ–ผ๏ธ Grid Indexing, Refine Grain Mapping: Grain plot now updates in real-time while the processing is ongoing

  • ๐Ÿ“š Added tutorial on Calibration that explains how to generate a geometry file (.par)

Changed#

  • ๐Ÿ–ผ๏ธ Intensity Filtering: Changed color of the peaks for better contrast

  • ๐Ÿ–ผ๏ธ Detector Correction, Grid Indexing, Index Filtering, Intensity Filtering, Lattice Filtering: input peaks are now automatically plotted if the input URL is valid

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Extended the range of algorithm parameters

  • ๐Ÿ–ผ๏ธ Lattice Filtering: Extended the range of reciprocal distance parameters and lattice dimensions

  • ๐Ÿ–ผ๏ธ Grid Indexing: Extended the range of tolerance parameters and sample/beam dimensions

  • ๐Ÿ–ผ๏ธ In all widgets accepting an input URL, the URL can now be edited by selecting it through a file browser.

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Frame Omega Auto button renamed to โ€˜resetโ€™.

Fixed ๐Ÿ›#

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Fixed an error raised when editing the segmentation parameters with no valid master file

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Fixed an error raised when running the segmentation for the whole scan with no valid master file

  • ๐Ÿ–ผ๏ธ Index Filtering: Now properly show an error pop-up if no ring was selected

  • ๐Ÿ–ผ๏ธ Index Filtering: Fixed an issue where ring indices were not properly applied

  • ๐Ÿ–ผ๏ธ Index Filtering: User inputs are now properly restored even if the processing was not launched

  • ๐Ÿ–ผ๏ธ Index Filtering: Reciprocal distance tolerance is now properly taken into account

  • ๐Ÿ–ผ๏ธ Refine Grain Mapping: Now properly handles the fact that no grain is found

  • ๐Ÿ–ผ๏ธ Grid Indexing, Refine Grain Mapping: Fixed axis orientations in the 3D plot

  • ๐Ÿ–ผ๏ธ Grid Indexing: Fixed relationship between sample/beam dimensions and grid limits: the grid limit is now half the corresponding dimension

  • Fixed error when typing manually the path to the master file in various widgets

Removed#

  • Removed support for Python 3.8 and 3.9. The new lowest supported version is Python 3.10.

0.4.0 - 2025-08-04#

Added โœจ#

  • ๐Ÿ–ผ๏ธ Added widgets for Grid Indexing, Index Filter, Intensity Filter, Lattice Filter and Refine Grain Mapping.

  • ๐Ÿ–ผ๏ธ Lattice rings can be plotted by providing a lattice file (.par or .cif) in Geometry Transformation

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Peaks color can be changed

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Scan segmentation peaks are now colored according to omega motor value

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Errors when segmenting frames now show in a pop-up window

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Data value under the mouse is now displayed under the plot

  • ๐Ÿ”ง GridIndexer and MakeMapGrain tasks now store name and intensity_info of grains in the produced NeXus file

  • ๐Ÿ”ง FilterByIndexer: New inputs wavelength, ds_tol and lattice_file

  • ๐Ÿ”ง GeometryTransformation: New input wavelength

  • ๐Ÿ”ง IndexGrains: New inputs wavelength and lattice_file

  • ๐Ÿ”ง MakeMapGrain: New input lattice_file

  • ๐Ÿ”ง GridIndexGrains: New optional input sample_config. If not supplied, the config will be retrieved from the segmentation results. Provide this input if the results are unreachable for some reason.

Changed#

  • ๐Ÿ–ผ๏ธ๐Ÿ“š Updated 3DXRD tutorial workflow to include filtering, indexing and grain mapping. The documentation was updated as well.

  • ๐Ÿ–ผ๏ธ Changed the aspect of the following widgets: Lattice Filter, Geometry Transformation

  • ๐Ÿ–ผ๏ธ Error pop-ups now show the full traceback instead of only the encountered error

  • ๐Ÿ”ง SegmentScan: folder_config input was changed. The dict should now have the following keys: master_file, omega_folder and scan_number

  • ๐Ÿ”งFilterByIndexer: New inputs wavelength, ds_tol and lattice_file

  • ๐Ÿ”ง GridIndexGrains: Translations are now shuffled. The new input seed can be used to fix the seed for reproducible shuffling.

Fixed ๐Ÿ›#

  • ๐Ÿ–ผ๏ธ Fix widgets inputs not saved on execution

  • ๐Ÿ–ผ๏ธ Widget inputs are now properly restored when opening a saved workflow

  • ๐Ÿ–ผ๏ธ Fix widget controls not disabled when computation is ongoing

  • ๐Ÿ–ผ๏ธ Hide internal inputs when linking Orange widgets

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Zoom is no longer reset when segmenting a new frame

  • ๐Ÿ–ผ๏ธ Peaks Segmentation: Monitor with negative values is ignored when segmenting

  • ๐Ÿ–ผ๏ธ Detector Correction: Remove hard-coded spline value

  • ๐Ÿ”ง GridIndexGrains: Fix crash when grains with no intensity were saved

0.3.0 - 2025-06-24#

Added#

  • ๐Ÿ–ผ๏ธ Added Orange widgets for Peaks Segmentation, Detector Correction and Geometry Transformation.

  • ๐Ÿ–ผ๏ธ Added example 3DXRD workflow in Orange.

  • ๐Ÿ“š Improved documentation with a new Tutorial section and improved Tasks page.

0.2.0 - 2025-04-30#

Changed#

  • ๐Ÿ”ง 3DXRD workflow is now saving data in NeXus. Tasks now expect HDF5 data URLs (e.g. file.h5::/path/in/file) instead of file paths as inputs and return data URLs as outputs.

  • ๐Ÿ”ง As a consequence, many task input/output names changed. Check the task documentation for the new APIs.

0.1.0 - 2025-03-18#

  • First version of 3dxrd workflow.