HyperSpy is an open source Python package for multidimensional data analysis. Originally developed for electron energy-loss spectroscopy, it has since expanded into a framework used in electron microscopy, spectroscopy, diffraction analysis, and related scientific fields. The project is community-driven and provides tools for the interactive exploration, analysis, and visualization of multidimensional datasets, particularly spectrum images. HyperSpy enables users to process complex datasets of arbitrary dimensionality, apply analytical methods across data, and efficiently work with datasets that exceed system memory through out-of-core processing.
History The package was originally developed as EELSlab starting in 2007 for electron energy loss spectroscopy data analysis. It was renamed to HyperSpy in 2010 and open-sourced on GitHub in 2011 when it was realized that it could be readily generalized to other mapping techniques in electron microscopy and beyond. Migration from Python 2 to Python 3 was implemented in 2015. The last version supporting Python 2 was 0.8.3. Subsequently, the first major release, version 1.0.0, was released in 2016. HyperSpy was extended with a mechanism to register extension packages in 2019 with version 1.5. First domain-specific packages were developed in the following years. In 2023, with the second major release, version 2.0.0, all domain-specific code as well as the input/output capabilities were moved to the dedicated packages. Despite the original development of HyperSpy originating from the data analysis needs of the electron microscopy community, it has in the meantime proven to be useful in many other scientific fields, e.g. luminescence spectroscopy.
Features Functionalities provided by HyperSpy include the following:
Tools for loading/saving various scientific data file formats through its extension RosettaSciIO Background subtraction, artefact removal, etc. Data visualization: evaluate datasets during the analysis, provide interactive operation for certain functions, and publication-ready plotting of data Efficient handling of big datasets ("lazy" and parallel processing) Extracting subsets of data from multidimensional datasets through regions of interest and a powerful numpy-style indexing mechanism Handling of non-uniform data axes User-friendly and powerful framework for multidimensional model fitting that provides many standard functions, but also is easily extended to custom ones Machine learning algorithms useful for e.g. denoising data or decomposition of complex datasets
Extension packages The following packages extend the functionalities of HyperSpy, e.g. dedicated to certain scientific measurement techniques:
RosettaSciIO: for reading and writing scientific data formats eXSpy: for Energy Dispersive X-ray Spectroscopy (EDS) and Electron energy loss spectroscopy (EELS) pyxem: for 4D scanning transmission electron microscopy (4D-STEM) (electron diffraction data) kikuchipy: for Electron backscatter diffraction (EBSD) lumiSpy: for luminescence spectroscopy data (e.g. cathodoluminescence, photoluminescence, Raman spectroscopy, etc.) Atomap: for atomic resolution scanning transmission electron microscopy images holoSpy: for Off-axis electron holography ParticleSpy for segmentation and analysis of nanoparticles from electron microscopy data ETSpy: for processing, alignment, and reconstruction of electron tomography data HyperSpyUI: Graphical user interface to HyperSpy
Awards 2025 Open Science Award for Open Source Research Software in the category "Jury's Favourite" (Coup de cœur du jury)
References
External links Official website Documentation: User Guide hyperspy on GitHub Python Package Index (PyPI) project page Conda-forge project page