Release notes#

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.

0.9.2#

Fixed#

  • Send the Data Portal workflow type metadata with the ICAT field name Workflow_type.

  • Validate generated Data Portal metadata keys against the installed ICAT dataset definitions in tests.

0.9.1#

Added#

Changed#

  • Slice and volume gallery preview file names now omit the dataset prefix and keep only the reconstruction descriptor, for example absorption_xy_00008.png.

  • Limit pydantic to versions below 2.14 to avoid Redis OM warning noise.

Deprecated#

Removed#

Fixed#

  • Filter metadata keys against the ICAT dataset parameter schema before sending Data Portal uploads.

Security#

0.9.0#

Added#

  • New task TomoBasicToNXtomo to build a NXtomo file directly from explicit inputs and detector dataset references, without relying on nxtomomill to read a Bliss HDF5 file.

Changed#

  • Added nxtomo as a runtime dependency for direct NXtomo generation.

  • Require nxtomomill>=2.0.9.

  • Align direct NXtomo generation with the new nxtomomill geometry handling based on detector data_axes.

  • The test extra now installs ewoks[dask], and the reconstruction workflow tests cover both core and dask execution engines.

  • Read the Docs builds now target Ubuntu 24.04.

Deprecated#

Removed#

Fixed#

Security#

0.8.0#

Added#

  • New task ReconstructVolume to reconstruct partial or full volume with nabu.

  • New task ConvertVolumeTo16Bit to convert a volume to 16Bit into ‘hdf5’, ‘tiff’, ‘edf’ or ‘jp2’ data formats.

  • New task BuildVolumeGallery to save a gallery of slices from the output volumes.

  • New tasks LinkSlices and LinkVolumes to create SLICES and VOLUMES with soft links according to esrf-pathlib structure.

Changed#

  • Small refactor of _save_to_gallery method.

  • Images in the projection gallery are now normalized over beam intensity.

Deprecated#

Removed#

  • Removed obsolete tests after adding the conversion task to the full volume reconstruction workflow.

Fixed#

  • Take into account the case where slice_index is filled in the nabu config file for volume reconstruction.

  • Default to XRCT iCAT definition in case the published dataset is not phased retrieved.

  • Normalization problem with bounds calculated on the first image on gif gallery image.

Security#

0.7.0#

Added#

  • New ReconstructVolume task to reconstruct partial or full volume with nabu.

Fixed#

  • Fixed iCAT mapping for TOMO metadata.

  • Bug that was keeping the reconstructor object in the GPU memory.

0.6.0#

Added#

  • BuildProjectionsGallery now writes a 200x200, 32-color projections GIF sampled every 10 degrees.

Changed#

  • Inputs and outputs are now provided following a Pydantic model.

  • Project documentation has been vastly upgraded.

  • The input _darks_flats_dir in task ReduceDarkFlat is now changed to the profit of reference_dir_to_soft_link.

Fixed#

  • Fixed a bug that was constraining the projection gallery images to be a square of 200 pixels.

0.5.5#

Changed#

  • LICENSE.md is now LICENSE.

  • ewokstomo needs setuptools>=77

Fixed#

  • The BuildGallery task was consuming reconstructed_slice_path that changed in the ReconstructSlice task (one folder level was removed).

0.5.4#

Added#

  • The project logo was added to doc/_static.

  • The DataPortalUpload task, pushes now workflow_type that can be slices or projections.

Changed#

  • BuildGallery tasks binning input has been changed to image_size which default as 1000.

  • BuildGallery output image format is now jpg by default with quality 95.

  • The slice number is now part of the slices file name with the pattern: {collection}_{dataset}_{tomo_contrast}_xy_{slice_number}.{data_type}.

Fixed#

  • All typing issues were resolved.

  • The metadata sent to the Data Portal by the DataPortalUpload are now the result of the ProcessConfig of Nabu.

0.5.3#

Added#

  • Option in H5ToNx task to allow for mechanical flips handling.

0.5.2#

Added#

  • Allow skipping dark/flat reduction when reduced darks/flats are already available.

  • A new output of the slice_reconstruction task: nabu_dict.

  • A new task BuildDataPortalMetadata that consumes the nabu_dict and transform into an icat metadata dict.

Changed#

  • BuildGallery tasks produce 2 images, one full resolution and one low resolution to adapt to the new display in the data portal.

0.5.1#

Changed#

  • Rework of the test data folder structure to ease the future testing the working directory structure.

  • Data structure follows esrf-pathlib tomo_v1 structure (except for dark and flat fields).

Fixed#

  • OnlineReduceDarkFlat problem with can’t stack array of different shapes.

0.5.0#

Added#

  • FluoToNx task that converts (PyMCA-fitted) XRF-CT data into NXtomo format.

  • Added a task OnlineReconstructSlice to reconstruct a slice while a Bliss scan is running.

Fixed#

  • Fixed overwrite feature in ReduceDarkFlat.

  • Some warnings in CI for build_doc.

0.4.1#

Changed#

  • Renamed ReduceDarksFlatsTask to OnlineReduceDarkFlat.

  • Renamed test files and methods to match the tasks structure.

Fixed#

  • Fixed bounds for gallery tasks to be less aggressive.

0.4.0#

Added#

  • Added BuildSlicesGallery to compute and save slices in gallery for the data portal uploading.

  • Added tests for EnergyCalculation task.

Changed#

  • DataPortalUpload has now an optional dry_run input.

  • DataPortalUpload now uses fully esrf-pathlib to gather the payload.

Removed#

  • Removed BuildGallery which was deprecated since 0.2.6.

Fixed#

  • Removed reconstructed_slice_array because of serialization problems.

0.3.4#

Fixed#

  • Energy calculation tasks: xoppylib no longer requires scipy<1.14.

  • Title now links to documentation main page.

  • Put back original backend for reconstruction.

0.3.3#

Added#

  • Full reconstruction workflow test without the data portal upload.

Changed#

  • H5ToNx task now overwrites a previously created .nx file by default.

  • Temporary backend = numpy while Nabu releases a fix.

0.3.2#

Fixed#

  • Relax tomoscan upper bound to comply with latest Nabu version.

0.3.1#

Changed#

  • SpectrumStats: compute weighted energy as a flux-weighted sum.

0.3.0#

Added#

  • New workflow and tasks for Energy Calculation for BM and Wigglers.

  • Ewoks tasks ComputeBMSpectrum and ComputeWigglerSpectrum (xoppy-backed), returning sorted energy_eV, flux, spectral_power, cumulated_power; BM validates TYPE_CALC=0 and VER_DIV∈{0,2}.

  • xraylib-based material optics core: NIST aliasing + element/compound parsing, μ/ρ computation, and automatic density fallback (elements/NIST/parsed formulas).

  • ApplyAttenuators task to stack ordered attenuators (material, thickness_mm, density_g_cm3), outputting transmission, attenuated_spectral_power, and attenuated_flux.

  • SpectrumStats task computing mean_energy_eV, nearest mean_idx, and total_power.

0.2.6#

Added#

  • CI: Python 3.13 is now tested.

Changed#

  • Minimum supported Python is now 3.10.

  • DataPortalUpload: support cases where the folder to upload is one level downstream.

  • Documentation: improve README.md.

Deprecated#

  • BuildGallery in favor of BuildProjectionsGallery.

0.2.5#

Fixed#

  • ReconstructSlice: correct Nabu API call.

0.2.4#

Added#

  • New ReconstructSlice task to save an HDF5 with a single slice. Parameters via config_dict. The result is returned as a NumPy array along with the slice index.

Changed#

  • H5ToNx: input renamed—output_dirnx_path.

  • H5ToNx now uses the nxtomomill API to convert Bliss HDF5 to NXtomo.

Removed#

  • H5ToNx: do not generate the master file (_0000.nx).

0.2.3#

Added#

  • BuildGallery: new optional inputs output_binning, output_format, overwrite.

Changed#

  • BuildGallery: change gallery file names to 5 digits, rounded to the closest integer.

0.2.1#

Fixed#

  • Minor issue in the data portal upload task.

0.2.0#

Added#

  • Tasks to reduce flats and darks, create the gallery, and upload to the data portal.

0.1.0#

  • Initial release.