Skip to content

Latest commit

 

History

History
1496 lines (1193 loc) · 65.9 KB

CHANGES.rst

File metadata and controls

1496 lines (1193 loc) · 65.9 KB

Changelog

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

.. towncrier-draft-entries:: |release| [UNRELEASED]

Hyperspy 1.6.4 (2021-07-08)

Bug Fixes

  • Fix parsing EELS aperture label with unexpected value, for example 'Imaging' instead of '5 mm' (#2772)
  • Lazy datasets can now be saved out as blockfiles (blo) (#2774)
  • ComplexSignals can now be rebinned without error (#2789)
  • Method estimate_parameters in Polynomial component now supports order greater than 10 (#2790)
  • Update minimal requirement of dependency importlib_metadata from >= 1.6.0 to >= 3.6 (#2793)

Enhancements

  • When saving a dataset with a dtype other than uint8 to a blockfile (blo) it is now possible to provide the argument intensity_scaling to map the intensity values to the reduced range (#2774)

Maintenance

  • Fix image comparison failure with numpy 1.21.0 (#2774)

Hyperspy 1.6.3 (2021-06-10)

Bug Fixes

Enhancements

  • Use importlib_metadata instead of pkg_resources for extensions registration to speed up the import process and making it possible to install extensions and use them without restarting the python session (#2709)
  • Don't import hyperspy extensions when registering extensions (#2711)
  • Improve docstrings of various fitting methods (#2724)
  • Improve speed of :py:meth:`~._signals.signal1d.Signal1D.shift1D` (#2750)
  • Add support for recent EMPAD file; scanning size wasn't parsed. (#2757)

Maintenance

  • Add drone CI to test arm64 platform (#2713)
  • Fix latex doc build on github actions (#2714)
  • Use towncrier to generate changelog automatically (#2717)
  • Fix test suite to support dask 2021.4.1 (#2722)
  • Generate changelog when building doc to keep the changelog of the development doc up to date on https://hyperspy.readthedocs.io/en/latest (#2758)
  • Use mamba and conda-forge channel on azure pipeline (#2759)

v1.6.2

This is a maintenance release that adds support for python 3.9 and includes numerous bug fixes and enhancements. See the issue tracker for details.

Bug Fixes

  • Fix disconnect event when closing navigator only plot (fixes #996), (#2631)
  • Fix incorrect chunksize when saving EMD NCEM file and specifying chunks (#2629)
  • Fix :py:meth:`~._signals.signal2d.Signal2D.find_peaks` GUIs call with laplacian/difference of gaussian methods (#2622 and #2647)
  • Fix various bugs with CircleWidget and Line2DWidget (#2625)
  • Fix setting signal range of model with negative axis scales (#2656)
  • Fix and improve mask handling in lazy decomposition; Close #2605 (#2657)
  • Plot scalebar when the axis scales have different sign, fixes #2557 (#2657)
  • Fix :py:meth:`~._signals.signal1d.Signal1D.align1D` returning zeros shifts (#2675)
  • Fix finding dataset path for EMD NCEM file containing more than one dataset in a group (#2673)
  • Fix squeeze function for multiple zero-dimensional entries, improved docstring, added to user guide. (#2676)
  • Fix error in Cliff-Lorimer quantification using absorption correction (#2681)
  • Fix navigation_mask bug in decomposition when provided as numpy array (#2679)
  • Fix closing image contrast tool and setting vmin/vmax values (#2684)
  • Fix range widget with matplotlib 3.4 (#2684)
  • Fix bug in :py:func:`~.interactive.interactive` with function returning None. Improve user guide example. (#2686)
  • Fix broken events when changing signal type #2683
  • Fix setting offset in rebin: the offset was changed in the wrong axis (#2690)
  • Fix reading XRF bruker file, close #2689 (#2694)

Enhancements

  • Widgets plotting improvement and add pick_tolerance to plot preferences (#2615)
  • Pass keyword argument to the image IO plugins (#2627)
  • Improve error message when file not found (#2597)
  • Add update instructions to user guide (#2621)
  • Improve plotting navigator of lazy signals, add navigator setter to lazy signals (#2631)
  • Use 'dask_auto' when rechunk=True in :py:meth:`~._signals.lazy.LazySignal.change_dtype` for lazy signal (#2645)
  • Use dask chunking when saving lazy signal instead of rechunking and leave the user to decide what is the suitable chunking (#2629)
  • Added lazy reading support for FFT and DPC datasets in FEI emd datasets (#2651).
  • Improve error message when initialising SpanROI with left >= right (#2604)
  • Allow running the test suite without the pytest-mpl plugin (#2624)
  • Add Releasing guide (#2595)
  • Add support for python 3.9, fix deprecation warning with matplotlib 3.4.0 and bump minimum requirement to numpy 1.17.1 and dask 2.1.0. (#2663)
  • Use native endianess in numba jitted functions. (#2678)
  • Add option not to snap ROI when calling the :py:meth:`~.roi.BaseInteractiveROI.interactive` method of a ROI (#2686)
  • Make :py:class:`~.misc.utils.DictionaryTreeBrowser` lazy by default - see #368 (#2623)
  • Speed up setting CI on azure pipeline (#2694)
  • Improve performance issue with the map method of lazy signal (#2617)
  • Add option to copy/load original metadata in hs.stack and hs.load to avoid large original_metadata which can slowdown processing. Close #1398, #2045, #2536 and #1568. (#2691)

Maintenance

  • Fix warnings when building documentation (#2596)
  • Drop support for numpy<1.16, in line with NEP 29 and fix protochip reader for numpy 1.20 (#2616)
  • Run test suite against upstream dependencies (numpy, scipy, scikit-learn and scikit-image) (#2616)
  • Update external links in the loading data section of the user guide (#2627)
  • Fix various future and deprecation warnings from numpy and scikit-learn (#2646)
  • Fix iterpath VisibleDeprecationWarning when using :py:meth:`~.models.model1d.Model1D.fit_component` (#2654)
  • Add integration test suite documentation in the developer guide. (#2663)
  • Fix SkewNormal component compatibility with sympy 1.8 (#2701)

v1.6.1

This is a maintenance release that adds compatibility with h5py 3.0 and includes numerous bug fixes and enhancements. See the issue tracker for details.

v1.6

NEW

Enhancements

API changes

  • The fitter keyword has been renamed to optimizer.
  • The values that the optimizer keyword take have been renamed for consistency with scipy:
    • "fmin" -> "Nelder-Mead",
    • "fmin_cg" -> "CG",
    • "fmin_ncg" -> "Newton-CG",
    • "fmin_bfgs" -> "BFGS",
    • "fmin_l_bfgs_b" -> "L-BFGS-B",
    • "fmin_tnc" -> "TNC",
    • "fmin_powell" -> "Powell",
    • "mpfit" -> "lm" (in combination with "bounded=True"),
    • "leastsq" -> "lm",
  • Passing integer arguments to parallel to select the number of workers is now deprecated. Use parallel=True, max_workers={value} instead.
  • The method keyword has been renamed to loss_function.
  • The loss_function value "ml" has been renamed to "ML-poisson".
  • The grad keyword no longer takes boolean values. It takes the following values instead: "fd", "analytical", callable or None.
  • The ext_bounding keyword has been deprecated and will be removed. Use bounded=True instead.
  • The min_function keyword argument has been deprecated and will be removed. Use loss_function instead.,
  • The min_function_grad keyword arguments has been deprecated and will be removed. Use grad instead.
  • The iterpath default will change from 'flyback' to 'serpentine' in HyperSpy version 2.0.

v1.5.2

This is a maintenance release that adds compatibility with Numpy 1.17 and Dask 2.3.0 and fixes a bug in the Bruker reader. See the issue tracker for details.

v1.5.1

This is a maintenance release that fixes some regressions introduced in v1.5. Follow the following links for details on all the bugs fixed.

v1.5

NEW

Enhancements

For developers

  • Drop support for python 3.5
  • New extension mechanism that enables external packages to register HyperSpy objects. See :ref:`writing_extensions-label` for details.

v1.4.2

This is a maintenance release. Among many other fixes and enhancements, this release fixes compatibility issues with Matplotlib v 3.1. Follow the following links for details on all the bugs fixed and enhancements.

v1.4.1

This is a maintenance release. Follow the following links for details on all the bugs fixed and enhancements.

This release fixes compatibility issues with Python 3.7.

v1.4

This is a minor release. Follow the following links for details on all the bugs fixed, enhancements and new features.

NEW

Enhancements

v1.3.2

This is a maintenance release. Follow the following links for details on all the bugs fixed and enhancements.

v1.3.1

This is a maintenance release. Follow the following links for details on all the bugs fixed and enhancements.

Starting with this version, the HyperSpy WinPython Bundle distribution is no longer released in sync with HyperSpy. For HyperSpy WinPython Bundle releases see https://github.com/hyperspy/hyperspy-bundle

v1.3

This is a minor release. Follow the following links for details on all the bugs fixed, feature and documentation enhancements, and new features.

NEW

Enhancements

API changes

For developers

  • In addition to adding ipywidgets GUI elements, the traitsui GUI elements have been splitted into a separate package. See the new hyperspy_gui_traitsui package.
  • The new :py:mod:`~.ui_registry` enables easy connection of external GUI elements to HyperSpy. This is the mechanism used to split the traitsui and ipywidgets GUI elements.

v1.2

This is a minor release. Follow the following links for details on all the bugs fixed, enhancements and new features.

NEW

Enhancements

For developers

v1.1.2

This is a maintenance release. Follow the following links for details on all the bugs fixed and enhancements.

v1.1.1

This is a maintenance release. Follow the following link for details on all the bugs fixed.

Enhancements

  • Prettier X-ray lines labels.
  • New metadata added to the HyperSpy metadata specifications: magnification, frame_number, camera_length, authors, doi, notes and quantity. See :ref:`metadata_structure` for details.
  • The y-axis label (for 1D signals) and colorbar label (for 2D signals) are now taken from the new metadata.Signal.quantity.
  • The time and date metadata are now stored in the ISO 8601 format.
  • All metadata in the HyperSpy metadata specification is now read from all supported file formats when available.

v1.1

This is a minor release. Follow the following links for details on all the bugs fixed.

NEW

Enhancements

v1.0.1

This is a maintenance release. Follow the following links for details on all the bugs fixed.

v1.0

This is a major release. Here we only list the highlist. A detailed list of changes is available in github.

NEW

Model

EDS

IO

Enhancements

Documentation

API changes

v0.8.5

This is a maintenance release. Follow the following links for details on all the bugs fixed, feature and documentation enhancements.

It also includes a new feature and introduces an important API change that will be fully enforced in Hyperspy 1.0.

New feature

API changes

The new :py:class:`~.signal.BaseSignal`, :py:class:`~._signals.signal1d.Signal1D` and :py:class:`~._signals.signal2d.Signal2D` deprecate :py:class:`~.signal.Signal`, :py:class:`~._signals.signal1D.Signal1D` and :py:class:`~._signals.image.Signal2D` respectively. Also as_signal1D, as_signal2D, to_signal1D and to_signal2D deprecate as_signal1D, as_signal2D, to_spectrum and to_image. See #963 and #943 for details.

v0.8.4

This release adds support for Python 3 and drops support for Python 2. In all other respects it is identical to v0.8.3.

v0.8.3

This is a maintenance release that includes fixes for multiple bugs, some enhancements, new features and API changes. This is set to be the last HyperSpy release for Python 2. The release (HyperSpy 0.8.4) will support only Python 3.

Importantly, the way to start HyperSpy changes (again) in this release. Please read carefully :ref:`importing_hyperspy-label` for details.

The broadcasting rules have also changed. See :ref:`signal.operations` for details.

Follow the following links for details on all the bugs fixed, documentation enhancements, enhancements, new features and API changes

v0.8.2

This is a maintenance release that fixes an issue with the Python installers. Those who have successfully installed v0.8.1 do not need to upgrade.

v0.8.1

This is a maintenance release. Follow the following links for details on all the bugs fixed, feature and documentation enhancements.

Importantly, the way to start HyperSpy changes in this release. Read :ref:`importing_hyperspy-label` for details.

It also includes some new features and introduces important API changes that will be fully enforced in Hyperspy 1.0.

New features

API changes

v0.8

New features

Core

IO

  • HDF5 file format now supports saving lists, tuples, binary strings and signals in metadata.

Plotting

EDS

API changes

v0.7.3

This is a maintenance release. A list of fixed issues is available in the 0.7.3 milestone in the github repository.

v0.7.2

This is a maintenance release. A list of fixed issues is available in the 0.7.2 milestone in the github repository.

v0.7.1

This is a maintenance release. A list of fixed issues is available in the 0.7.1 milestone in the github repository.

New features

v0.7

New features

Core

IO

  • Improved support for FEI's emi and ser files.
  • Improved support for Gatan's dm3 files.
  • Add support for reading Gatan's dm4 files.

Plotting

Curve fitting

Machine learning

Dielectric function

EELS

EDS

API changes

  • hyperspy.misc has been reorganized. Most of the functions in misc.utils has been rellocated to specialized modules. misc.utils is no longer imported in hyperspy.hspy. A new hyperspy.utils module is imported instead.
  • Objects that have been renamed
    • hspy.elements -> utils.material.elements.
    • Signal.navigation_indexer -> inav.
    • Signal.signal_indexer -> isig.
    • Signal.mapped_parameters -> Signal.metadata.
    • Signal.original_parameters -> Signal.original_metadata.
  • The metadata has been reorganized. See :ref:`metadata_structure`.
  • The following signal methods now operate out-of-place:

v0.6

New features

API changes

  • The following functions has been renamed or removed:

    • components.EELSCLEdge

      • knots_factor -> fine_structure_smoothing
      • edge_position -> onset_energy
      • energy_shift removed
    • components.Voigt.origin -> centre

    • signals.Signal1D

      • find_peaks_1D -> Signal.find_peaks1D_ohaver
      • align_1D -> Signal.align1D
      • shift_1D -> Signal.shift1D
      • interpolate_1D -> Signal.interpolate1D
    • signals.Signal2D.estimate_2D_translation -> Signal.estimate_shift2D

    • Signal

      • split_in -> split
      • crop_in_units -> crop
      • crop_in_pixels -> crop
  • Change syntax to create Signal objects. Instead of a dictionary Signal.__init__ takes keywords e.g with a new syntax . >>> s = signals.Signal1D(np.arange(10)) instead of >>> s = signals.Signal1D({'data' : np.arange(10)})

v0.5.1

New features

  • New Signal method get_current_signal proposed by magnunor.
  • New Signal save method keyword extension to easily change the saving format while keeping the same file name.
  • New EELSSpectrum methods: estimate_elastic_scattering_intensity, fourier_ratio_deconvolution, richardson_lucy_deconvolution, power_law_extrapolation.
  • New Signal1D method: hanning_taper.

Major bugs fixed

  • The print_current_values Model method was raising errors when fine structure was enabled or when only_free = False.
  • The load function signal_type keyword was not passed to the readers.
  • The spikes removal tool was unable to find the next spikes when the spike was detected close to the limits of the spectrum.
  • load was raising an UnicodeError when the title contained non-ASCII characters.
  • In Windows HyperSpy Here was opening in the current folder, not in the selected folder.
  • The fine structure coefficients were overwritten with their std when charging values from the model.
  • Storing the parameters in the maps and all the related functionality was broken for 1D spectrum.
  • Remove_background was broken for 1D spectrum.

API changes

  • EELSSpectrum.find_low_loss_centre was renamed to estimate_zero_loss_peak_centre.
  • EELSSpectrum.calculate_FWHM was renamed to estimate_FWHM.

v0.5

New features

  • The documentation was thoroughly revised, courtesy of M. Walls.
  • New user interface to remove spikes from EELS spectra.
  • New align2D signals.Signal2D method to align image stacks.
  • When loading image files, the data are now automatically converted to grayscale when all the color channels are equal.
  • Add the possibility to load a stack memory mapped (similar to ImageJ virtual stack).
  • Improved hyperspy starter script that now includes the possibility to start HyperSpy in the new IPython notebook.
  • Add "HyperSpy notebook here" to the Windows context menu.
  • The information displayed in the plots produced by Signal.plot have been enhanced.
  • Added Egerton's sigmak3 and sigmal3 GOS calculations (translated from matlab by I. Iyengar) to the EELS core loss component.
  • A browsable dictionary containing the chemical elements and their onset energies is now available in the user namespace under the variable name elements.
  • The ripple file format now supports storing the beam energy, the collection and the convergence angle.

Major bugs fixed

  • The EELS core loss component had a bug in the calculation of the relativistic gamma that produced a gamma that was always approximately zero. As a consequence the GOS calculation was wrong, especially for high beam energies.
  • Loading msa files was broken when running on Python 2.7.2 and newer.
  • Saving images to rpl format was broken.
  • Performing BSS on data decomposed with poissonian noise normalization was failing when some columns or rows of the unfolded data were zero, what occurs often in EDX data for example.
  • Importing some versions of scikits learn was broken
  • The progress bar was not working properly in the new IPython notebook.
  • The constrast of the image was not automatically updated.

API changes

  • spatial_mask was renamed to navigation_mask.
  • Signal1D and Signal2D are not loaded into the user namespace by default. The signals module is loaded instead.
  • Change the default BSS algorithm to sklearn fastica, that is now distributed with HyperSpy and used in case that sklearn is not installed e.g. when using EPDFree.
  • _slicing_axes was renamed to signal_axes.
  • _non_slicing_axes to navigation_axes.
  • All the Model *_in_pixels methods were renamed to to _*_in_pixel.
  • EELSCLEdge.fs_state was renamed to fine_structure_active.
  • EELSCLEdge.fslist was renamed to fine_structure_coeff.
  • EELSCLEdge.fs_emax was renamed to fine_structure_width.
  • EELSCLEdge.freedelta was renamed to free_energy_shift.
  • EELSCLEdge.delta was renamed to energy_shift.
  • A value of True in a mask now means that the item is masked all over HyperSpy.

v0.4.1

New features

  • Added TIFF 16, 32 and 64 bits support by using (and distributing) Christoph Gohlke's tifffile library.
  • Improved UTF8 support.
  • Reduce the number of required libraries by making mdp and hdf5 not mandatory.
  • Improve the information returned by __repr__ of several objects.
  • DictionaryBrowser now has an export method, i.e. mapped parameters and original_parameters can be exported.
  • New _id_name attribute for Components and Parameters. Improvements in their __repr__ methods.
  • Component.name can now be overwriten by the user.
  • New Signal.__str__ method.
  • Include HyperSpy in The Python Package Index.

Bugs fixed

  • Non-ascii characters breaking IO and print features fixed.
  • Loading of multiple files at once using wildcards fixed.
  • Remove broken hyperspy-gui script.
  • Remove unmantained and broken 2D peak finding and analysis features.

Syntax changes

  • In EELS automatic background feature creates a PowerLaw component, adds it to the model an add it to a variable in the user namespace. The variable has been renamed from bg to background.
  • pes_gaussian Component renamed to pes_core_line_shape.

v0.4

New features

  • Add a slider to the filter ui.
  • Add auto_replot to sum.
  • Add butterworth filter.
  • Added centring and auto_transpose to the svd_pca algorithm.
  • Keep the mva_results information when changing the signal type.
  • Added sparse_pca and mini_batch_sparse_pca to decomposition algorithms.
  • Added TV to the smoothing algorithms available in BSS.
  • Added whitening to the mdp ICA preprocessing.
  • Add explained_variance_ratio.
  • Improvements in saving/loading mva data.
  • Add option to perform ICA on the scores.
  • Add orthomax FA algorithm.
  • Add plot methods to Component and Parameter.
  • Add plot_results to Model.
  • Add possibility to export the decomposition and bss results to a folder.
  • Add Signal method change_dtype.
  • Add the possibility to pass extra parameters to the ICA algorithm.
  • Add the possibility to reproject the data after a decomposition.
  • Add warning when decomposing a non-float signal.
  • adds a method to get the PCs as a Signal1D object and adds smoothing to the ICA preprocessing.
  • Add the possibility to select the energy range in which to perform spike removal operations.
  • the smoothings guis now offer differentiation and line color option. Smoothing now does not require a gui.
  • Fix reverse_ic which was not reversing the scores and improve the autoreversing method.
  • Avoid cropping when is not needed.
  • Changed criteria to reverse the ICs.
  • Changed nonans default to False for plotting.
  • Change the whitening algorithm to a svd based one and add sklearn fastica algorithm.
  • Clean the ummixing info after a new decomposition.
  • Increase the chances that similar independent components will have the same indexes.
  • Make savitzky-golay smoothing work without raising figures.
  • Make plot_decomposition* plot only the number of factors/scores determined by output_dimension.
  • make the Parameter __repr__ method print its name.
  • New contrast adjustment tool.
  • New export method for Model, Component and Parameter.
  • New Model method: print_current_values.
  • New signal, spectrum_simulation.
  • New smoothing algorithm: total variance denoising.
  • Plotting the components in the same or separate windows is now configurable in the preferences.
  • Plotting the spikes is now optional.
  • Return an error message when the decomposition algorithm is not recognised.
  • Store the masks in mva_results.
  • The free parameters are now automically updated on chaning the free attribute.

Bugs fixed

  • Added missing keywords to plot_pca_factors and plot_ica_factors.
  • renamed incorrectly named exportPca and exportIca functions.
  • an error was raised when calling generate_data_from_model.
  • a signal with containing nans was failing to plot.
  • attempting to use any decomposition plotting method after loading with mva_results.load was raising an error.
  • a typo was causing in error in pca when normalize_variance = True.
  • a typo was raising an error when cropping the decomposition dimension.
  • commit 5ff3798105d6 made decomposition and other methods raise an error.
  • BUG-FIXED: the decomposition centering index was wrong.
  • ensure_directory was failing for the current directory.
  • model data forced to be 3D unnecessarily.
  • non declared variable was raising an error.
  • plot naming for peak char factor plots were messed up.
  • plot_RGB was broken.
  • plot_scores_2D was using the transpose of the shape to reshape the scores.
  • remove background was raising an error when the navigation dimension was 0.
  • saving the scores was sometimes transposing the shape.
  • selecting indexes while using the learning export functions was raising an error.
  • the calibrate ui was calculating wrongly the calibration the first time that Apply was pressed.
  • the offset estimation was summing instead of averaging.
  • the plot_explained_variance_ratio was actually plotting the cumulative, renamed.
  • the signal mask in decomposition and ica was not being raveled.
  • the slice attribute was not correctly set at init in some scenarios.
  • the smoothing and calibrabrion UIs were freezing when the plots where closed before closing the UI window.
  • to_spectrum was transposing the navigation dimension.
  • variance2one was operating in the wrong axis.
  • when closing the plots of a model, the UI object was not being destroyed.
  • when plotting an image the title was not displayed.
  • when the axis size was changed (e.g. after cropping) the set_signal_dimension method was not being called.
  • when using transform the data was being centered and the resulting scores were wrong.

Syntax changes

  • in decomposition V rename to explained_variance.
  • In FixedPattern, default interpolation changed to linear.
  • Line and parabole components deleted + improvements in the docstrings.
  • pca_V = variance.
  • mva_result renamed to learning_results.
  • pca renamed to decomposition.
  • pca_v and mva_results.v renamed to scores pc renamed to factors . pca_build_SI renamed to get_pca_model ica_build_SI renamed to get_ica_model.
  • plot_explained_variance renamed to plot_explained_variance_ratio.
  • principal_components_analysis renamed to decomposition.
  • rename eels_simulation to eels_spectrum_simulation.
  • Rename the output parameter of svd_pca and add scores.
  • Replace plot_lev by plot_explained_variance_ratio.
  • Scores renamed to loadings.
  • slice_bool renamed to navigate to make its function more explicit.
  • smoothing renamed to pretreatment and butter added.
  • variance2one renamed to normalize_variance.
  • w renamed to unmixing matrix and fixes a bug when loading a mva_result in which output_dimension = None.
  • ubshells are again availabe in the interactive session.
  • Several changes to the interface.
  • The documentation was updated to reflex the last changes.
  • The microscopes.csv file was updated so it no longer contains the Orsay VG parameters.