Skip to main content
`Ctrl`+`K`

# Release Notes

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

## 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

- Direct Electron MRC:

  - add support for newer version of DE server,

  - add support foe discovering metadata file (`*_info.txt`) based on the naming scheme. (#311)

- Add support for tiff file in `get_file_handle()`. (#317)

### 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

- DigitalSurf surfaces:

  - add support for saving file - see `file_writer()`

  - add the `parse_metadata()` function to parse metadata from `sur` file

  - add series of RGB images / surfaces support. (#280)

### 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

- Add support for reading the `.img`-format from Hamamatsu. (#87)

- Add support for reading the `.mib`-format from Quantum Detector Merlin camera. (#174)

### 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:

  - Bruker composite file (BCF): The `'spectrum'` option for the `select_type` parameter was removed. Use ‘spectrum_image’ instead.

  - Electron Microscopy Dataset (EMD) NCEM: Using the keyword `'dataset_name'` was removed, use `'dataset_path'` instead.

  - NeXus data format: The `dataset_keys`, `dataset_paths` and `metadata_keys` keywords were removed. Use `dataset_key`, `dataset_path` and `metadata_key` instead. (#30)

- 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.