Release Notes#

Changelog entries for the development version are available at https://rosettasciio.readthedocs.io/en/latest/changes.html

0.9.0 (2025-05-29)#

New features#

  • Add support for reading hdf5 files from Dectris Arina camera. (#398)

Enhancements#

  • Set Hamamatsu streak image signal type to TransientSpectrum if LumiSpy is installed. (#386)

  • Remove non-distributed memory mapping implementation in rpl reader. Deprecate mmap_mode in mrc reader since it is not used anymore with the distributed memory mapping implementation. (#404)

Bug Fixes#

  • Allow reading of Hamamatsu .img files with ScalingXScalingFile="Other" (uncalibrated x axis). (#387)

  • Remove optional dependency (blosc) of mrcz because wheels are not available starting from python 3.13. blosc was installed as a convenience. (#392)

  • Fix Distributed loading of .blo files (and other binary files with the key parameter) with chunks that don’t span the signal axis. (#395)

  • Remove non-distributed memory mapping implementation in quantum detector reader because it doesn’t work anymore with recent versions of dask and it is not supposed to. The distributed memory mapping implementation is now always used. Fix setting chunks. (#400)

Improved Documentation#

  • Add list of companies supporting their file formats. (#403)

Maintenance#

  • Fix getting filehandle from tiff file with dask >= 2025.4.0. (#397)

  • Remove distributed keyword from mrc file reader and change default behavior to use the distributed backend. (#402)

0.8.0 (2025-03-28)#

Enhancements#

  • Improve error message when loading spectrum image from EMD Velox file and the sparse library is not installed. (#305)

  • Add export_metadata() utility function for exporting metadata from Bruker file. (#326)

  • Add support for distributed lazy loading in Blockfile reader and remove loading using threaded memory mapping which is discouraged in recent dask releases. (#372)

  • Add support for distributed implementation to the ripple reader. (#376)

Bug Fixes#

  • Raise a warning instead of an error when the beam energy can’t be found in Bruker xrf files. (#326)

  • Migrate HyperSpy markers API to HyperSpy v2 in bruker reader to fix loading files containing markers. (#383)

Improved Documentation#

  • Add section to user guide on memory mapping of binary file, explaining about the distributed and chunks parameters. (#376)

Maintenance#

  • Specfiy python-box!=7.3.1 from dependency requirement as a workaround for cdgriffith/Box#288. (#357)

  • Build and tests linux-arm wheels natively. (#358)

  • Bump dask version requirement to 2022.9.2. (#374)

  • Add T20 rules (flake8-print) to ruff configuration. (#378)

  • Add free-threaded python build. (#379)

  • Fix parsing camera length from the info.txt file when loading MRC files. (#380)

0.7.1 (2025-01-12)#

Maintenance#

  • Pin zarr to version 2 until zarr version 3 is supported. (#351)

0.7 (2024-12-20)#

New features#

  • Add basic support for the Delmic HDF5 format. (#139)

Enhancements#

Bug Fixes#

  • Set signal_type to LumiTransientSpectrum when Hamamatsu .img files are read and LumiSpy is installed. (#209)

  • Fix lazy reading of some tiff files - fix for #316. (#317)

  • Fix scale in white field image in renishaw reader. (#327)

  • Allow reading of Hamamatsu tiff file with ScalingXScalingFile="Other". (#347)

Maintenance#

  • Add explicit support for python 3.13. (#339)

0.6 (2024-07-11)#

Enhancements#

Bug Fixes#

  • Fixes axes for JPG with no exif_tags. Return of axes while loading isn’t emty anymore. (#283)

  • EMD Velox fixes for reading files containing multiple EDS streams:

    • fix reading multiple EDS streams lazily with sum_EDS_detectors=True,

    • fix reading separate EDS stream and individual frames when using sum_EDS_detectors=False and sum_frames=False. (#287)

  • Quantum Detector: Fix signal shape of data acquired in ROI mode. (#289)

Maintenance#

  • Add support for numpy 2 in Renishaw, Semper and Dens reader. (#281)

0.5 (2024-06-15)#

Enhancements#

  • EMD (Velox): Enforce setting identical units for the x and y axes, as convenience to use the scalebar in HyperSpy. (#243)

  • Quantum Detector: Add support for dask distributed scheduler. (#267)

Bug Fixes#

  • EMD (Velox): Fix conversion of offset units which can sometimes mismatch the scale units. (#243)

  • Ripple format: Fix typo and improve error message for unsupported dtype in writer. (#251)

  • EMD (Velox): Fix parsing elements from EDS data from velox emd file v11. (#274)

Maintenance#

  • Use ruff for code formating and linting. (#250)

  • Fix tifffile deprecation. (#262)

  • Add support for python-box 7. (#263)

0.4 (2024-04-02)#

Enhancements#

  • Renishaw wdf:

    • return survey image instead of saving it to the metadata and add marker of the mapping area on the survey image.

    • Add support for reading data with invariant axis, for example when the values of the Z axis doesn’t change.

    • Parse calibration of jpg images saved with Renishaw Wire software. (#227)

  • Add support for reading emd Velox version 11. (#232)

  • Add making test data files section to contributing guide, explain characteristics of “good” test data files. (#233)

  • Quantum Detector reader: use timestamps to get navigation shape when the navigation shape is not available - for example, acquisition with pixel trigger or scan shape not in metadata. (#235)

  • Improve setting output size for an image. (#244)

Bug Fixes#

  • Fix saving hspy file with empty array (signal or metadata) and fix closing hspy file when a error occurs during reading or writing. (#206)

  • Fix saving ragged arrays of vectors from/to a chunked hspy and zspy store. Greatly increases the speed of saving and loading ragged arrays from chunked datasets. (#211)

  • Fix saving ragged array of strings in hspy and zspy format. (#217)

  • Fix setting beam energy for XRF maps in bcf files. (#231)

  • Quantum Detector reader: fix setting chunks. (#235)

Maintenance#

  • Add POOCH_BASE_URL to specify the base url used by pooch to download test data. This fixes the failure of the package_and_test.yml workflow in pull requests where test data are added or updated. (#200)

  • Fix documentation links following release of hyperspy 2.0. (#210)

  • Run test suite on osx arm64 on GitHub CI and speed running test suite using all available CPUs (3 or 4) instead of only 2. (#222)

  • Fix deprecation warnings introduced with numpy 1.25 (“Conversion of an array with ndim > 0 to a scalar is deprecated, …”). (#230)

  • Fix numpy 2.0 removal (np.product and np.string_). (#238)

  • Fix download test data when using pytest --pyargs rsciio -n. (#245)

0.3 (2023-12-12)#

New features#

  • Add rsciio.set_log_level() to set the logging level of RosettaSciIO (#69)

  • Added the memmap_distributed() function for loading a memmap file from multiple processes.

    • Added the arguments distributed and metadata_file to the .mrc file reader for loading metadata save from DirectElectron detectors.

    • Speed up to the .mrc file reader for large .mrc files by removing the need to reshape and transpose the data. (#162)

  • Add support for saving lazy ragged signals to the zspy format. (#193)

Bug Fixes#

  • Fix error when reading CEOS Panta Rhei (PRZ) file with aperture "Out" (#173)

  • Improvement for installation without numba:

    • Fix tvips reader

    • Allow reading and writing EMD NCEM file

    • Fix running test suite without optional dependencies (#182)

  • Fix getting version on debian/ubuntu in system-wide install. Add support for installing from git archive and improve getting development version using setuptools fallback_version (#187)

  • Fix dwell_time reading in QuantumDetectors reader (.mib file). The dwell_time is stored in milliseconds, not microseconds as the previous code assumed. (#189)

Maintenance#

  • Remove usage of deprecated distutils (#152)

  • Fix installing exspy/hyperspy on GitHub CI and test failing without optional dependencies (#186)

  • Unpin pillow now that imageio supports pillow>=10.1.0 (#188)

  • Simplify GitHub CI workflows by using reusable workflow (#190)

0.2 (2023-11-09)#

New features#

Bug Fixes#

  • Fix saving/reading ragged arrays with hspy/zspy plugins (#164)

  • Fixes slow loading of ragged zspy arrays (#168) (#169)

Improved Documentation#

  • Improve docstrings, check API links when building documentation and set GitHub CI to fail when link is broken (#142)

  • Add zenodo doi to documentation (#149)

  • Update intersphinx mapping links of matplotlib/numpy. (#150)

Enhancements#

  • Add option to show progress bar when saving lazy signals to hspy/zspy files (#170)

  • Make numba and h5py optional dependencies to support RosettaSciIO on pyodide and PyPy (#180)

Maintenance#

  • Remove deprecated record_by attribute in hspy/zspy, (#143)

  • Add sidpy dependency and pin it to <0.12.1 as a workaround to fix pyusid import (#155)

  • Update hspy/zspy plugins to new markers API introduced in HyperSpy 2.0 (#164)

  • Pin pillow<10.1.0 until imageio supports newer pillow version - see imageio/imageio#1044 (#175)

  • Update the test suite and the CI workflows to work with and without exspy installed (#176)

  • Add badges that became available after first release (#177)

0.1 (2023-06-06)#

New features#

  • Add support for reading the .xml-format from Horiba Jobin Yvon’s LabSpec software. (#25)

  • Add support for reading the .tvf-format from TriVista. (#27)

  • Add support for reading the .wdf-format from Renishaw’s WIRE software. (#55)

  • Added subclassing of .sur files in CL signal type and updated metadata parsing (#98)

  • Add optional kwarg to tiff reader multipage_as_list which when set to True uses pages interface and returns list of signal for every page with full metadata. (#104)

  • Add file reader and writer for PRZ files generated by CEOS PantaRhei (HyperSpy #2896)

Bug Fixes#

  • Ensure that the .msa plugin handles SIGNALTYPE values according to the official format specification. (#39)

  • Fix error when reading Velox file containing FFT with an odd number of pixels (#49)

  • Fix error when reading JEOL .pts file with un-ordered frame list or when length of frame_start_index is smaller than the sweep count (#68)

  • Fix exporting scalebar with reciprocal units containing space (#90)

  • Fix array indexing bug when loading a sur file format containing spectra series. (#98)

  • For more robust xml to dict conversion, convert_xml_to_dict is replaced by XmlToDict (introduced by PR #111). (#101)

  • Fix bugs with reading non-FEI and Velox mrc files, improve documentation of mrc and mrcz file format. Closes #71, #91, #93, #96, #130. (#131)

Improved Documentation#

  • Consolidate docstrings and documentation for all plugins (see also #47, #59, #64, #72) (#76)

  • Remove persistent search field in left sidebar since this makes finding the sidebar on narrow screens difficult. Set maximal major version of Sphinx to 5. (#84)

Deprecations#

  • Remove deprecated record_by attribute from file readers where remaining (#102)

Enhancements#

  • Recognise both byte and string object for NXdata tag in NeXus reader (#112)

API changes#

  • Move, enhance and share xml to dict/list translation and other tools (new api for devs) from Bruker._api to utils: utils.date_time_tools.msfiletime_to_unix function to convert the uint64 MSFILETIME to datetime.datetime object. utils.tools.sanitize_msxml_float function to sanitize some MSXML generated xml where comma is used as float decimal separator. utils.tools.XmlToDict Xml to dict/list translator class with rich customization options as kwargs, and main method for translation dictionarize (#111)

Maintenance#

  • Initiate GitHub actions for tests and documentation. (#1)

  • Initiate towncrier changelog and create templates for PRs and issues. (#3)

  • Add github CI workflow to check links, build docs and push to the gh-pages branch. Fix links and add EDAX reference file specification (#4)

  • Add azure pipelines CI to run test suite using conda-forge packages. Add pytest and coverage configuration in pyproject.toml (#6)

  • Fix minimum install, add corresponding tests build and tidy up leftover code (#13)

  • Fixes and code consistency improvements based on analysis provided by lgtm.org (#23)

  • Added github action for code scanning using the codeQL engine. (#26)

  • Following the deprecation cycle announced in HyperSpy, the following keywords and attributes have been removed:

  • Unify the format_name scheme of IO plugins using name instead and add name_aliases (list) for backwards compatibility. (#35)

  • Add drone CI to test on arm64/aarch64 platform (#42)

  • Unify naming of folders/submodules to match documented format name (#81)

  • Add black as a development dependency. Add pre-commit configuration file with black code style check, which when installed will require changes to pass a style check before commiting. (#86)

  • Add support for python-box 7 (#100)

  • Migrate to API v3 of imageio.v3 (#106)

  • Add explicit support for python 3.11 and drop support for python 3.6, 3.7 (#109)

  • Remove test data from packaging and download them when necessary (#123)

  • Define packaging in pyproject.toml and keep setup.py to handle compilation of C extension (#125)

  • Add release GitHub workflow to automate release process and add corresponding documentation in releasing_guide.md (#126)

  • Add pre-commit hook to update test data registry and pre-commit.ci to run from pull request (#129)

  • Tidy up rsciio namespace: privatise docstrings, move conftest.py and exceptions to tests and utils folder, respectively (#132)

Initiation (2022-07-23)#

  • RosettaSciIO was split out of the HyperSpy repository on July 23, 2022. The IO-plugins and related functions so far developed in HyperSpy were moved to this new repository.