What’s new¶
Current Version¶
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 Brucker 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¶
New method
hyperspy.component.Component.print_current_values()
. See the User Guide for details.New
hyperspy._components.skew_normal.SkewNormal
component.New
hyperspy.signal.BaseSignal.apply_apodization()
method andapodization
keyword forhyperspy.signal.BaseSignal.fft()
. See FFT and iFFT for details.Estimation of number of significant components by the elbow method. See Scree plots.
Enhancements¶
The contrast adjustment tool has been hugely improved. Test it by pressing the
h
key on any image.The Developer Guide has been extended, enhanced and divided into chapters.
Signals with signal dimension equal to 0 and navigation dimension 1 or 2 are automatically transposed when using
hyperspy.drawing.utils.plot_images()
orhyperspy.drawing.utils.plot_spectra()
respectively. This is specially relevant when plotting the result of EDS quantification. See Energy-Dispersive X-ray Spectrometry (EDS) for examples.The following components have been rewritten using
hyperspy._components.expression.Expression
, boosting their speeds among other benefits. Multiple issues have been fixed on the way.hyperspy._components.volume_plasmon_drude.VolumePlasmonDrude
The
hyperspy._components.polynomial_deprecated.Polynomial
component will be deprecated in HyperSpy 2.0 in favour of the newhyperspy._components.polynomial.Polynomial
component, that is based onhyperspy._components.expression.Expression
and has an improved API. To start using the new component pass thelegacy=False
keyword to the thehyperspy._components.polynomial_deprecated.Polynomial
component constructor.
For developers¶
Drop support for python 3.5
New extension mechanism that enables external packages to register HyperSpy objects. See Writing packages that extend HyperSpy for details.
Changelog¶
Previous Versions¶
We only cover here the main highlights, for a detailed list of all the changes see the commits in the GITHUB milestones.
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¶
Support for three new file formats:
Reading FEI’s Velox EMD file format based on the HDF5 open standard. See EMD (Velox).
Reading Bruker’s SPX format. See SPX format.
Reading and writing the mrcz open format. See MRCZ.
New
artificial_data
module which contains functions for generating artificial data, for use in things like docstrings or for people to test HyperSpy functionalities. See Loading example data and data from online databases.New
fft()
andifft()
signal methods. See FFT and iFFT.New
statistics()
method to compute useful hologram parameters. See Getting hologram statistics.Automatic axes units conversion and better units handling using pint. See Using quantity and converting units.
New
Line2DROI
angle()
method. See Region Of Interest (ROI) for details.
Enhancements¶
plot_images()
improvements (see Plotting several images for details):The
cmap
option ofplot_images()
supports iterable types, allowing the user to specify different colormaps for the different images that are plotted by providing a list or other generator.Clicking on an individual image updates it.
New customizable keyboard shortcuts to navigate multi-dimensional datasets. See Data visualization.
The
remove_background()
method now operates much faster in multi-dimensional datasets and adds the options to interatively plot the remainder of the operation and to set the removed background to zero. See Background removal for details.The
plot()
method now takes anorm
keyword that can be “linear”, “log”, “auto” or a matplotlib norm. See Customising image plot for details. Moreover, there are three new extra keyword arguments,fft_shift
andpower_spectrum
, that are useful when plotting fourier transforms. See FFT and iFFT.The
align2D()
andestimate_shift2D()
can operate with sub-pixel accuracy using skimage’s upsampled matrix-multiplication DFT. See Two dimensional signal registration (alignment).
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¶
rebin()
supports upscaling and rebinning to arbitrary sizes through linear interpolation. See Rebinning. It also runs faster if numba is installed.signal_extent
andnavigation_extent
properties to easily get the extent of each space.New IPywidgets Graphical User Interface (GUI) elements for the Jupyter Notebook. See the new hyperspy_gui_ipywidgets package. It is not installed by default, see Installing HyperSpy for details.
All the Region Of Interest (ROI) now have a
gui()
method to display a GUI if at least one of HyperSpy’s GUI packgages are installed.
Enhancements¶
Creating many markers is now much faster.
New “Stage” metadata node. See Metadata structure for details.
The Brucker file reader now supports the new version of the format. See Bruker composite file.
HyperSpy is now compatible with all matplotlib backends, including the nbagg which is particularly convenient for interactive data analysis in the Jupyter Notebook in combination with the new hyperspy_gui_ipywidgets package. See Starting Python in Windows.
The
vmin
andvmax
arguments of theplot_images()
function now accept lists to enable setting these parameters for each plot individually.The
plot_decomposition_results()
andplot_bss_results()
methods now makes a better guess of the number of navigators (if any) required to visualise the components. (Previously they were always plotting four figures by default.)All functions that take a signal range can now take a
SpanROI
.The following ROIs can now be used for indexing or slicing (see here for details):
API changes¶
Permanent markers (if any) are now displayed when plotting by default.
HyperSpy no longer depends on traitsui (fixing many installation issues) and ipywidgets as the GUI elements based on these packages have now been splitted into separate packages and are not installed by default.
The following methods now raise a
ValueError
when not providing the number of components ifoutput_dimension
was not specified when performing a decomposition. (Previously they would plot as many figures as available components, usually resulting in memory saturation):The default extension when saving to HDF5 following HyperSpy’s specification is now
hspy
instead ofhdf5
. See HSpy - HyperSpy’s HDF5 Specification.The following methods are deprecated and will be removed in HyperSpy 2.0
All
notebook_interaction()
method. Use the equivalentgui()
method instead.integrate_in_range()
. Useintegrate1D()
instead.
The following items have been removed from preferences:
General.default_export_format
General.lazy
Model.default_fitter
Machine_learning.multiple_files
Machine_learning.same_window
Plot.default_style_to_compare_spectra
Plot.plot_on_load
Plot.pylab_inline
EELS.fine_structure_width
EELS.fine_structure_active
EELS.fine_structure_smoothing
EELS.synchronize_cl_with_ll
EELS.preedge_safe_window_width
EELS.min_distance_between_edges_for_fine_structure
New
Preferences.GUIs
section to enable/disable the installed GUI toolkits.
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
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¶
Lazy loading and evaluation. See Working with big data.
Parallel
map()
and all the functions that use it internally (a good fraction of HyperSpy’s functionaly). See Iterating external functions with the map method.Electron Holography reconstruction.
Support for reading EDAX TEAM SPD and SPC files.
New signal methods
indexmin()
andvaluemin()
.
Enhancements¶
Easier creation of
Expression
components using substitutions. See the User Guide for details.Expression
takes two dimensional functions that can automatically include a rotation parameter. See the User Guide for details.Better support for EMD files.
The scree plot got a beauty treatment and some extra features. See Scree plots.
map()
can now take functions that return differently-shaped arrays or arbitrary objects, see Iterating external functions with the map method.Add support for stacking multi-signal files. See load-multiple-label.
Markers can now be saved to hdf5 and creating many markers is easier and faster. See Markers.
Add option to save to HDF5 file using the “.hspy” extension instead of “.hdf5”. See hdf5-format. This will be the default extension in HyperSpy 1.3.
For developers¶
Most of HyperSpy plotting features are now covered by unittests. See Plot testing.
unittests migrated from nose to pytest. See tests-label.
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
andquantity
. See 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
anddate
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.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¶
Robust PCA (RPCA) and online RPCA algorithms.
Numpy ufuncs can now operate on HyperSpy’s signals.
ComplexSignal and specialised subclasses to operate on complex data.
Events logging.
Query and fetch spectra from The EELS Database.
Model¶
EDS¶
X-ray absorption coefficient database.
IO¶
Support for reading certain files without loading them to memory.
Bruker’s composite file (bcf) reading support.
Electron Microscopy Datasets (EMD) read and write support.
SEMPER unf read and write support.
DENS heat log read support.
NanoMegas blockfile read and write support.
Enhancements¶
More useful
AxesManager
repr string with html repr for Jupyter Notebook.Better progress bar (tqdm).
Add support for writing/reading scale and unit to tif files to be read with ImageJ or DigitalMicrograph.
Documentation¶
The following sections of the User Guide were revised and largely overwritten:
API changes¶
Split components into components1D and components2D.
Remove record_by from metadata.
Remove simulation classes.
The
Signal1D
,Signal2D
andBaseSignal
classes deprecated the old Spectrum Image and Signal classes.
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¶
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 Starting Python in Windows for details.
The broadcasting rules have also changed. See 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 Starting Python in Windows for details.
It also includes some new features and introduces important API changes that will be fully enforced in Hyperspy 1.0.
New features¶
Support for IPython 3.0.
%hyperspy
IPython magic to easily and transparently import HyperSpy, matplotlib and numpy when using IPython.Expression
model component to easily create analytical function components. More details here.unfolded()
context manager.derivative()
method.syntax to access the components in the model that includes pretty printing of the components.
API changes¶
hspy
is now deprecated in favour of the newapi
. The new API renames and/or move several modules as folows:hspy.components
->api.model.components
hspy.utils
->api
hspy.utils.markers
api.plot.markers
hspy.utils.example_signals
->api.datasets.example_signals
In HyperSpy 0.8.1 the full content of
hspy
is still imported in the user namespace, but this can now be disabled inhs.preferences.General.import_hspy
. In Hyperspy 1.0 it will be disabled by default and thehspy
module will be fully removed in HyperSpy 0.10. We encourage all users to migrate to the new syntax. For more details see Starting Python in Windows.Indexing the
Signal
class is now deprecated. We encourage all users to useisig
andinav
instead for indexing.create_model()
is now deprecated in favour of the new equivalentcreate_model()
Signal
method.unfold_if_multidim()
is deprecated.
v0.8¶
New features¶
Core¶
spikes_removal_tool()
displays derivative max value when used with GUI.Progress-bar can now be suppressed by passing
show_progressbar
argument to all functions that generate it.
IO¶
HDF5 file format now supports saving lists, tuples, binary strings and signals in metadata (see hdf5-format )
Plotting¶
New class,
MarkerBase
, to plot markers withhspy.utils.plot.markers
module. See Markers.New method to plot images with the
plot_images()
function inhspy.utils.plot.plot_images
. See Plotting several images.Improved
plot()
method to customize the image. See Customising image plot.
EDS¶
New method for quantifying EDS TEM spectra using Cliff-Lorimer method,
quantification()
. See EDS Quantification.New method to estimate for background subtraction,
estimate_background_windows()
. See Background subtraction.New method to estimate the windows of integration,
estimate_integration_windows()
.New specific
plot()
method, with markers to indicate the X-ray lines, the window of integration or/and the windows for background subtraction. See Plotting X-ray lines.New examples of signal in the
hspy.utils.example_signals
module.New method to mask the vaccum,
vacuum_mask()
and a specificdecomposition()
method that incoroporate the vacuum mask
API changes¶
Component
andParameter
now inherittraits.api.HasTraits
that enabletraitsui
to modify these objects.attrsetter()
is added, behaving as the default pythonsetattr()
with nested attributes.- Several widget functions were made internal and/or renamed:
add_patch_to
->_add_patch_to
set_patch
->_set_patch
onmove
->_onmousemove
update_patch_position
->_update_patch_position
update_patch_size
->_update_patch_size
add_axes
->set_mpl_ax
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¶
Add suspend/resume model plot updating. See Visualizing the model.
v0.7¶
New features¶
Core¶
New syntax to index the
AxesManager
.New Signal methods to transform between Signal subclasses. More information here.
set_signal_type()
set_signal_origin()
as_signal2D()
as_signal1D()
The string representation of the Signal class now prints the shape of the data and includes a separator between the navigation and the signal axes e.g (100, 10| 5) for a signal with two navigation axes of size 100 and 10 and one signal axis of size 5.
Add support for RGBA data. See Changing the data type.
The default toolkit can now be saved in the preferences.
Added full compatibility with the Qt toolkit that is now the default.
Added compatibility witn the the GTK and TK toolkits, although with no GUI features.
It is now possible to run HyperSpy in a headless system.
Added a CLI to
remove_background()
.New
estimate_peak_width()
method to estimate peak width.New methods to integrate over one axis:
integrate1D()
andintegrate_in_range()
.New
metadata
attribute,Signal.binned
. Several methods behave differently on binned and unbinned signals. See Binned and unbinned signals.New
map()
method to easily transform the data using a function that operates on individual signals. See Iterating over the navigation axes.New
get_histogram()
andprint_summary_statistics()
methods.The spikes removal tool has been moved to the
Signal1D
class so that it is available for all its subclasses.The
split()
method now can automatically split back stacked signals into its original part. See Splitting and stacking.
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¶
Use the blitting capabilities of the different toolkits to speed up the plotting of images.
Added several extra options to the Signal
plot()
method to customize the navigator. See Data visualization.Add compatibility with IPython’s matplotlib inline plotting. See inline_plotting.
New function,
plot_spectra()
, to plot several spectra in the same figure. See Plotting several spectra.New function,
plot_signals()
, to plot several signals at the same time. See Plotting several signals.New function,
plot_histograms()
, to plot the histrograms of several signals at the same time. See Plotting several signals.
Curve fitting¶
The chi-squared, reduced chi-squared and the degrees of freedom are computed automatically when fitting. See Fitting the model to the data.
New functionality to plot the individual components of a model. See Visualizing the model.
New method,
fit_component()
, to help setting the starting parameters. See Setting the initial parameters.
Machine learning¶
The PCA scree plot can now be easily obtained as a Signal. See Scree plots.
The decomposition and blind source separation components can now be obtained as
Signal
instances. See Obtaining the results as BaseSignal instances.New methods to plot the decomposition and blind source separation results that support n-dimensional loadings. See Visualizing results.
Dielectric function¶
New
Signal
subclass,DielectricFunction
.
EELS¶
New method,
kramers_kronig_analysis()
to calculate the dielectric function from low-loss electron energy-loss spectra based on the Kramers-Kronig relations. See Kramers-Kronig Analysis.New method to align the zero-loss peak,
align_zero_loss_peak()
.
EDS¶
New signal, EDSSpectrum especialized in EDS data analysis, with subsignal for EDS with SEM and with TEM: EDSSEMSpectrum and EDSTEMSpectrum. See Energy-Dispersive X-ray Spectrometry (EDS).
New database of EDS lines available in the
elements
attribute of thehspy.utils.material
module.Adapted methods to calibrate the spectrum, the detector and the microscope. See Microscope and detector parameters.
Specific methods to describe the sample,
add_elements()
andadd_lines()
. See Describing the sampleNew method to get the intensity of specific X-ray lines:
get_lines_intensity()
. See eds_plot-label
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 Metadata structure.
The following signal methods now operate out-of-place:
swap_axes()
rebin()
v0.6¶
New features¶
Signal now supports indexing and slicing. See Indexing.
Most arithmetic and rich arithmetic operators work with signal. See Signal operations.
Much improved EELSSpectrum methods:
estimate_zero_loss_peak_centre()
,estimate_elastic_scattering_intensity()
andestimate_elastic_scattering_threshold()
.The axes can now be given using their name e.g.
s.crop("x", 1,10)
New syntax to specify position over axes: an integer specifies the indexes over the axis and a floating number specifies the position in the axis units e.g.
s.crop("x", 1, 10.)
crops over the axis x (in meters) from index 1 to value 10 meters. Note that this may make your old scripts behave in unexpected ways as just renaming the old *_in_units and *_in_values methods won’t work in most cases.Most methods now use the natural order i.e. X,Y,Z.. to index the axes.
Add padding to fourier-log and fourier-ratio deconvolution to fix the wrap-around problem and increase its performance.
New
get_fine_structure_as_spectrum()
EELSCLEdge method.New
Arctan
model component.New
enable_adjust_position()
anddisable_adjust_position()
to easily change the position of components using the mouse on the plot.New Model methods
set_parameters_value()
,set_parameters_free()
andset_parameters_not_free()
to easily set several important component attributes of a list of components at once.New
stack()
function to stack signals.New Signal methods:
integrate_simpson()
,max()
,min()
,var()
, andstd()
.New sliders window to easily navigate signals with navigation_dimension > 2.
The Ripple (rpl) reader can now read rpl files produced by INCA.
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.