Skip to content

HDF5 browser: multidimensional views and legacy NeXus scans (tests and docs) - #444

Merged
PierreRaybaut merged 3 commits into
developfrom
feature/hdf5-nd-views
Oct 27, 2026
Merged

PierreRaybaut merged 3 commits into
developfrom
feature/hdf5-nd-views

Conversation

@PierreRaybaut

Copy link
Copy Markdown
Contributor

DataLab side of the import of multidimensional data, legacy NeXus scans and compressed detector data. The features are implemented in SigimaX: DataLab-Platform/SigimaX#23 (to merge first).

Changes

  • Application test nexus_views_app_test.py:
    • a scan written with the legacy NeXus conventions (as recent SOLEIL scans) is imported with its axes: a counter versus the scanned motor, and detector spectra as an image with the motor along Y;
    • the frames of an image stack, enabled in the HDF5 browser, are imported with their position;
    • their origin (view, positions, entry title) survives a workspace round trip.
  • HDF5 browser page (doc/features/common/h5browser.rst) and its French translation: legacy NeXus scans, auxiliary signals, default measurement, compressed data, view selector.
  • Release notes 1.4.0, NeXus and HDF5 browser sections: the line saying that datasets of 3 dimensions or more "are not directly importable and have no graphical slice selector" is replaced.

Notes

  • No change in DataLab's code: frames are expanded by the browser's get_nodes() (SigimaX), so the import loop of h5io is unchanged. import_all keeps ignoring multidimensional datasets whose view is not enabled.
  • Standalone application: DataLab.spec is unchanged. The hdf5plugin hook of pyinstaller-hooks-contrib (pinned PyInstaller 6.16) collects the HDF5 filters, and a frozen program reads bitshuffle/LZ4 data.
  • Tests run: HDF5 features and the tests importing HDF5 files (84 passed), nexus_views_app_test.py; Ruff and Pylint clean.

A scan written with the legacy NeXus conventions is imported with its axes,
counter and detectors, the frames of an image stack enabled in the HDF5
browser are imported with their position, and their origin survives a
workspace round trip.

Assisted-by: Claude Opus 5.5
SigimaX is installed with --no-deps so that pip does not replace the
editable Sigima clone, but its own dependencies were then never installed:
the test jobs failed as soon as SigimaX required hdf5plugin.

The development, release and latest jobs now also read the dependencies
of ../SigimaX/pyproject.toml, still excluding the packages installed from
local clones.

Assisted-by: Claude Opus 5.5
@PierreRaybaut
PierreRaybaut marked this pull request as ready for review October 27, 2026 11:57
@PierreRaybaut
PierreRaybaut merged commit 1c8d287 into develop Oct 27, 2026
6 checks passed
@PierreRaybaut
PierreRaybaut deleted the feature/hdf5-nd-views branch October 28, 2026 14:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant