Change Log


  • FastXRF. Restore compatibility with dynamically loaded HDF5 data


  • GUI. Compatibility with matplotlib 3.7.x


  • ROI Imaging. Correct plugin threading issues introduced in version 5.8.2


  • XRF. Correct threading issue on MacOS introduced in version 5.8.2


  • RGB Correlator. Add the possibility to calculate the mean ratio and the median ratio of selected pixels.

  • Packaging. Correct issue preventing packaging for Ubuntu 20.04


  • XRF. Correct configuration error when number of energies is more than 4 but less than 10.

  • RGB Correlator. Add the possibility to calculate the correlation coefficient of selected pixels.


  • Adapt to conda-forge.


  • XRF. Allow multithreading with fisx > 1.3.0

  • GUI. Save user preferences concerning default actions.

  • GUI. Recover loading of user-saved HDF5 selection tables.

  • GUI. Synchronize index-based Signal selections with Monitor and Axes on HDF5 files.

  • GUI. Compatibility with PyQt6 shipped with Qt 6.4.3

  • 1d-Plots. When one plot axis is frozen, reset zoom based on displayed portion of the active curve.

  • Packaging. Add cx_Freeze support.


  • GUI. Add PyQt6 support.

  • GUI. Adapt to PySide 6.4.x

  • GUI. Add link to documentation pages under the Help menu.

  • RGB Correlator. Add mask statistics calculator.

  • ROI Imaging. Calculate maximum spectrum of masked region.

  • ROI Imaging. Do not remove spaces from user specified output path in Fast XRF linear fit plugin.

  • ScanWindow. Calculate derivative when dealing with strictly decreasing and full-negative X axis values.

  • Python. Remove dependency on deprecated distutils module.


  • IO. Add support of Bruker bcf files

  • ROI Imaging. Allow spatial downsampling of EDF stacks not fitting into memory.

  • Graphics. Correct bug affecting visualization of large images with Matplotlib 6.0+


  • HDF5. Correct error when selecting a monitor.

  • HDF5. Correct handling of broken links.

  • XRF. Raise the maximum number of matrix iterations.

  • ROI Imaging. Correct calculation of spectrum of the maximum at each channel.

  • GUI. Make sure QSize uses integers and not floats.

  • IO. Correct shape calculation of Omnic maps.


  • Packaging. Correct PyInstaller packaging.

  • HDF5. Correct Show Info not working with PySide 6.

  • ROI Imaging. Add spectrum of the maximum at each channel.

  • GUI. Elements Info update line emission ratios when changing energy without need to ckick on the periodic table.


  • HDF5. Improved support of external links PR #891.

  • HDF5. Single MCA selections accompanied by associated motor positions (if any).

  • XRF. Make more explicit the Fast XRF fit is a linear fit.

  • ROI Imaging. Clearer tool tips.


  • Allow project build and test under Python 3.11

  • HDF5. Improved support of external links.

  • HDF5. Simplify single MCA selection in multidimensional datasets.

  • XRF. Enable copy to clipboard from the tables.

  • GUI. Add -log(y/yactive) to the list of normalization options.

  • IO. Support LabSpec6 exported maps.


  • IO. Robust access to HDF5 files while being written.

  • IO. Support ProSpect v1.1.36

  • ROI Imaging. Double click on Stack Window adds spectrum to MCA window.

  • Support building of frozen binaries with PyInstaller


  • Correct GUI issue with the combination Python 3.10 and PyQt5


  • Support PySide2 and PySide6.

  • Drop Qt4 support (PyQt4 and PySide)

  • Drop Object3D module.


  • Graphics. Fast XRF fitting results visualization not working with matplotlib 3.5.0


  • Graphics. Recent versions of Matplotlib do not support picker=None.

  • IO. Support AXAS-D format independently of using “,” or “.” as decimal separator.

  • IO. Calculate live time as elapsed time * OCR/ICR in AXAS-D format


  • PyMcaBatch. Prevent the use of the input directory as output directory when the input file list is a single HDF5 file.

  • PyMcaBatch. Allow XRF batch fitting of a single entry in an HDF5 file containing multiple maps.

  • PCA. Deal with NaNs in stacks of spectra.

  • SPS. Correct SPEC shared memory access under Python 3.8

  • Adapt XIA Correct tool to python 3.


  • K-means. Filter non-finite numbers.

  • GUI. Allow the user to choose derivative order and algorithm.

  • IO. Read live time from KETEK AXAS-D.

  • IO. Deal with Renishaw files containing a single line header.


  • XRF. Allow to take user supplied transmission tables as attenuators.

  • IO. Allow sorting of entries in NeXus files by title.


  • IO. h5py 3.0.0 compatibility

  • Double-check OpenGL availability on startup

  • Allow building of PyMca under linux without OpenGL


  • K-Means. Subtract minimum of each feature prior to scaling.

  • IO. Improved user experience using HDF5 files.

  • IO. More robust access to redis.

  • IO. Automatic update of data from redis when last scan is selected.


  • RGB Correlator. Implement K-means clustering on user selected images.

  • RGB Correlator. Provide a shape command line argument to simplify reading of HDF5 groups.

  • ROI Imaging. Support mask selections from the RGB correlator.

  • ROI Imaging. Save stacks with calibration, live times and positioners.

  • IO. Provide access to bliss data via redis.

  • GUI. Deal with matplotlib warnings.

  • Plugins. Correct numpy 1.19.x related issues.


  • XRF. Allow to use up to 15 elements to refine the sample matrix.

  • IO. Support ARTAX files in PyMca Main window.

  • IO. Read motor positions from ARTAX files.

  • IO. Correct issues reading ARTAX and Olympus files in MacOS.

  • ROI Imaging. Allow to choose to perform PCA on standardized data.

  • ROI Imaging. Allow multiple slaves.

  • ROI Imaging. Do not close application when deleting slave stacks.

  • Plugins. Correct MotorInfo problem of table containing duplicates.


  • XRF. Make PyMca compatible with recent XMI-MSIM versions

  • XRF. Handle the use of the % character when defining materials

  • ROI Imaging. Add action to export all PCA and NNMA vectors.

  • ROI Imaging. Support the use of regions with NNMA.


  • HDF5. Handle broken toplevel external links

  • XRF. The fit configuration window was too high when using large font scaling.

  • Enable ICA calculations on HDF5 stacks.


  • HDF5: Make the code compatible with new h5py default file opening mode.


  • Qt binding selection tries PyQt5, PySide2, PyQt4 and PySide in that order.

  • PyMcaBatch: Deal with spaces in the path to the fit configuration file.

  • Prevent start crash using PySide2.


  • XRF: Include full-analysis provenance in HDF5 output files.

  • Improved support of HDF5

  • Improved testing suite.

  • ROI Imaging: Improved memory handling when reading multiple HDF5 detectors as input.

  • ROI Imaging: Support PerkinElmer FSM file format

  • ROI Imaging: Correct reading OMNIC files under Python 3 in non-windows platforms.

  • Support PySide2

  • Support Matplotlib 3.1.x

  • Preliminary support of Python 3.8

  • Drop silx as hard dependency. Keep it as optional dependency.

  • Default to silx (if present) for 3D and scatter plots.


  • Fix SPEC shared memory update during scans bug introduced in 5.4.0

  • Make default binding PyQt4 under Python 2


  • More robust reading of positioners from NeXus files

  • Respect the nativefiledialogs flag in McaAdvancedFit

  • Deal with underscore when sorting NeXus files by entry name

  • RGBCorrelator: Correct attribute error reading .dat files under Python 3


  • Support NeXus default attribute at any level

  • Fix problems in systems where both PyQt4 and PyQt5 are installed.

  • Fix ScanFit print

  • Fix mask visibility on monocrome colormaps.

  • Prevent problems accessing NeXus files when title is incorrectly written as an array instead of being a string.

  • Enable multiple processes batch fitting a single HDF5 file.


  • Add training exercises to the tutorials

  • Support quantification accounting for live time when using HDF5 files

  • Add higher order excitations example to the training data

  • Use silx toolkit for graphics

  • Allow the user to select a particular Qt binding (–binding option, default is PyQt5)

  • Implement a user selectable logging level (–logging option, default is warning)

  • Correct handling of repeated elements in the sample matrix

  • Correct readout of lispix data


  • Fix build issues under Python 3.7

  • Fix numpy 1.14.x deprecation warnings

  • Continue the documentation improvements


  • PyMcaMainWindow. Correct error trying to use HDF5 files with only top level datasets.

  • PyMcaBatch. Correct error when opening HDF5 files as input.

  • Use QOpenGLWidget when available instead of QGLWidget. It solves a Debian packaging issue.

  • Prepare web pages using sphinx to be ready for easy deployment of improved documentation (accessible from


  • XRF

    Correct several Single Layer Strategy issues. Support calibration readout using HDF5 files. Support time readout and use of time information from HDF5 files.

  • HDF5

    Simplify HDF5 data selection handling by generatic automatic data selection tables besides the user defined one (requires use of a measurement group) Support readout of motor positions together with curve data when following ESRF and Sardana standards. Support NXdata and default plots (requires silx)

  • Add plugin to fit all curves present in a 1D window (requires h5py)

  • ROI Imaging. No limit on the number of slaves.

  • Add tomographic reconstruction capabilities (requires freeART and tomoGUI)

  • Allow to build PyMca using GLIBC 2.26

  • Activate Continuous Integration.


  • ROI Imaging. Correct problem normalizing integer data by integer monitor.

  • HDF5 Widget. Use PyMca plugins on silx data viewer.

  • HDF5 Batch. Correct error when all the entries in an HDF5 file do not present the same structure.

  • SPEC shared memory. Correct counter labelling order in case of using 10 or more counters and motors in a scan.

  • NeXus. Interpret new style NXdata groups using silx NXdataViewer if silx is installed.


  • Correct annoying error message appearing when background is not defined.

  • Adopt MIT license for SpecFile library


  • RGB Correlator can now export the data as a single TIFF file or as multiple TIFF files.

  • XRF. Deal with the case the mass fraction is zero in one of the compounds of a material. It can arrive when applying a Strategy.

  • Extend the command line usage of the FastXRFLinearFit module to HDF5 datasets.

  • ROI Imaging.

    • Improved external images plugin. It requires silx.

    • Plugin to display per pixel information (motors and others). It requires silx.

    • Allow to sum the master and the slave stack. It can be used to sum an arbitrary number of stacks.

    • Selecting multiple HDF5 datasets as signal generates a stack that is the sum of all of the datasets.

  • Implement a calculation cache to speed up secondary excitation calculations.

  • Allow to use fisx library for the calculation of escape peaks. Default is disabled.

  • Improved support of OMDAQ lmf format.

  • Correct bug affecting the calculation of ROIs when the x axis coordinates are negative

  • MacOS

    • Correct bug on startup when reading the default configuration.

    • Frozen binary uses now HDF5 1.10.1 to support SWMR files.


  • ROI Imaging tool can add multiple detector signals present in an HDF5 file.

  • Support multiple JCAMP-DX blocks in a file.

  • Support stacks exported by OPUS in JCAMP-DX format.

  • Add basic support of OMDAQ lmf data format.

  • Make sure main window menu options are available under MacOS and Qt5.

  • Support matplotlib 2.0

  • Correct factor of two error when fitting step up or step down functions.


  • Correct minor Qt5 related bugs.

  • Simplify embedding batch fitting in custom workflows.

  • ROI Imaging. Exporting the stack in TIFF format did not respect zoomed region limits

  • Allow exporting the x-ray tube emission continuum from the plot.

  • Implement a “copy-selection-to-clipboard” of the concentrations table via CTRL-C.

  • Fix error message when moving mouse on SCAN window after having used the regular mesh plugin

  • Correct coordinate display on image window.

  • Solve issue calculating shell photoelectric cross-sections close to edges.


  • Correct the generation of the efficiency plot in the ATTENUATORS tab when BeamFilter0 was selected. That problem only affected the plot, not anything else.

  • Adapt to latest SPEC version

  • Correct compatibility issues with matplotlib 1.5

  • Improved compatibility with Qt 5

  • Update to fisx 1.0.9 for windows compatibility under Python 3.5

  • Enable OpenGL window under Python 3

  • Implement Kaiser window option for XAS Fourier transform.

  • Reimplement curve renaming.

  • Recover interactive console functionality.

  • Correct the density of H and He.

  • Add more keywords for QXAS format support.

  • Allow ADD functionality on customized fit background (allowing multiple atan functions)

  • Allow the use of the regular mesh plugin on incomplete mesh scans.

  • Add kinetics related plugins (Rate Laws and Arrhenius-like plots).


  • Update to fisx 1.0.4 to workaround issue calculating secondary excitation corrections when the incident beam is normal to the sample surface.

  • Restore pre-5.0.0 behavior in the scan window when displaying mouse coordinates without the crosshair cursor.

  • Correct multiple curve averaging when input arrays are reversed.

  • Add the possibility to save the Monte Carlo generated matrix spectra in the fit window.

  • Correct problem of reapplying the calibration when toggling log and linear axes while already using a calibration.

  • Restore saving of images in png and jpg from the main window.

  • Restore data projection on PCA eigenvectors calculated using the covariance method to the same way as when using the other methods.


  • Automatic loading of user plugins.

  • Allow the use of user specified physical constants across different installed versions.

  • Add stack plugin to calculate multiple ROIs in one go.

  • Add basic JCAMP-DX reading support.

  • Add crosshair cursor option to the plot options menu.

  • Add EXAFS extraction capabilities to the Main Window and the ROI Imaging Tool.

  • Improved right axis autoscaling.

  • Panning with the keyboard arrow keys implemented in most 1D plots.

  • Correct bug on customized fit when using anchors.

  • Correct bug saving MCA spectra when using the Taurus plugin.

  • Correct swap of red and blue components when saving via matplotlib.

  • Correct regular mesh plotting.


  • Recover Advanced fit graphics saving in logarithmic mode.

  • Slower but correct reading of SPE files.

  • Correctly handle Energy and Channel plot labels.

  • Calculate tertiary excitation in diagnostics tab.

  • Allow stack normalization by an external image.

  • Correct saving of curves in the SCAN window.

  • Add OSMesa backend to the list of available plot backends.

  • Add crosshair cursor option.


  • Fast XRF fitting: Correct concentrations calculation.

  • Make license information detectable by licensecheck.


  • Fast XRF fitting. Give the user the option not to check for negative peak contributions in order to maximize speed. The default behavior is unchanged.

  • Add copyright information to files missing it.

  • Correct bug. Windows frozen binary could not start batch from main window.

  • Correct bug. Fast XRF fit was not working on dynamically loaded stacks when negative peak contributions were detected.

  • Correct bug. Save action was not active on some plots.


  • Analytical secondary excitation corrections.

  • Approximated tertiary excitation corrections.

  • Automatic matrix update.

  • Support .rtx file format stacks

  • Support .rpl + .raw described stacks (Lispix file format)

  • Support SPEC 6.02+ shared memory

  • Possibility to generate PCA scores plot.

  • Incorporate a new repository layout.

  • Most of the source code can be used under MIT or LGPL licenses.

  • Dependency on Qwt (via PyQwt) removed.

  • Possibility to keep image aspect ratio.

  • Improved print preview.

  • MCA Window accepts plugins.

  • Automatic download of user plugins.

  • Any plot accepts ROI selection.


  • Correct bug reading HDF5 top level datasets.

  • Improved handling of Bruker/Tracer CSV files


  • Correct bug using SNIP background with the Fast XRF linear fit stack plugin.

  • Better handling of screen resolutions with 768 vertical pixels.


  • Allow fitting of all Cr L lines

  • Correct bug saving image alignment data to disk.

  • Correct bug using linear polynomial background with the Fast XRF linear fit stack plugin


  • Support SOLEIL multiple-file different-scan-number maps.

  • Support batch fitting of multiple HDF5 files.

  • Fast XRF linear fit stack plugin.

  • Possibility to load image shifts in the image alignment stack plugin.

  • Basic support of MRC file format.

  • Add ID08 advanced alignment scan plugin.


  • Add basic support for calculating multiple excitation corrections via the XMI-MSIM Monte Carlo code.

  • Add Image alignment capabilities to the ROI Imaging tool.

  • Improved handling of HDF5 external links.

  • Solve printing issue when printing from the File menu while the SCAN window is active

  • Recover reading support of SPE files from SLAC

  • Correct reading of .chi files maps

  • Extend the maximum number of counters supported in a specfile.

  • Prevent endless loop in specfile when the last character limiting a scan is ‘#’

  • Correct bug plotting a set of MCAs as one image when the number of MCA detectors is more than one.

  • Background subtraction methods also work on stack browsers.

  • Handling of scales in image plots.

  • Add ID26 RIXS plugin as part of MultiScanToMesh plugins.

  • Add XMCD and XAS plugins from ID08 and ID12.

  • Add plugin to align curves.

  • Stacks of DESY fio files readable by windows binary.

  • Reduce memory usage when working with large in-memory stacks.

  • Decide to load dynamically the data based on the amount of physical memory installed instead of based on a fixed data size.


  • Fix calculation of the MCA associated to a region when using dynamically loaded 1D stacks.

  • Fix scan XANES normalization. All curves normalized instead of just the active one.


  • Support GZIP compressed EDF files (extensions: edf.gz, ccd.gz, raw.gz)

  • Fix annoying issue of having to select the left side of a pixel in order to have the pixel actually selected.

  • Fix windows problem of PyMca not starting when the “My Documents” folder has been relocated (issue number 3537267)

  • Fix Debian hurd-i386 build from source problem.


  • Add an X-ray fluorescence spectrum for training purposes.

  • Improved unicode support.

  • Added a simple stack normalization plugin to the ROI tool.

  • Added a simple XANES normalization plugins to the ROI tool and the scan window.

  • Adapt installation script to simplify linux distribution maintainers task.

  • Add a minimalistic set of post-installation tests.

  • Add man pages.

  • Correct variance information displayed in the terminal window.

  • Restore functionality of colormap-based mask calculation.

  • Add a progress bar to the stack simple fitting plugin.

  • Possibility to perform simple fitting of masked stack regions.


  • Support h5py version 2.x

  • Support OMNIC 8.x .map file format

  • Support TIFF format. Uncompressed and packbits.

  • Support a couple of ASCII based file formats of beamlines of Diamond and APS.

  • Preliminary Python 3.2 support.

  • Support principal components analysis of dynamically loaded stacks.

  • Improved HDF5 file format handling.

  • Possibility to visualize variable width line profiles on images.

  • Add split Gauss, split Lorentz and split Pseudo-Voigt as fitting functions.

  • Do not automatically sort the list of files to be treated in batch mode. The program will respect the order provided by the user.

  • Allow visualized 3D objects to share the same colormap.

  • Lower the energy threshold in order to consider Boron K X rays.

  • Correct Arsenic density.

  • Allow to customize the saving of Scan window curves using matplotlib.

  • Allow multiple processes in MacOS X when using a non frozen PyMca version.


  • Allow detailed customization of 1D output.

  • Add simple normalization plugins to the Scan window.

  • Implement a plugin system for the ROI Imaging tool.

  • Implement a generic batch fitting of stacks as a stack plugin. The functions are totally specified by the user.

  • Implement simple background removal tools as stack plugins.

  • Implement an alternative ROI window as a stack plugin.

  • Support convertion of big EDF image stacks to HDF5.

  • Visualization of large image stacks via dynamic loading and use of HDF5.

  • Support MDP based PCA and ICA on user selected regions.

  • Read calibration from OMNIC 7.x .map files.

  • Support Bruker Opus maps exported in DPT format.

  • Improve the reading speed of TwinMic .dta files.

  • Add simple MarCCD support.

  • Add very simple support for some flavours of Pilatus CBF.

  • Show file header information.

  • Properly handle Amptek MCA calibration when more than two points or ROIs have been used.

  • Allow Savitzky-Golay (SG) filtering of stacks.

  • Correct problem affecting odd order SG derivatives.

  • Very primitive HDF5 2D Visualization.

  • Possibility to visualize HDF5 3D datasets as series of images.

  • Implement a context menu on the main window HDF5 browser.

  • Table visualization of non-numerical HDF5 datasets.

  • Support segmented HDF5 files using default segmentation.

  • Allow the use of several processes when batch fitting a single HDF5 file.

  • Allow reading of pure image formats in the RGB correlator.

  • The fit configuration window was too high for Mac computers having exactly 800 pixels vertical resolution.

  • Workaround a windows problem when trying to select thousands of files in the batch file dialog by using Qt file dialogs.

  • Minor visualization and data handling improvements.

  • Prevent a crash when the excitation energy is below 1 keV.

  • Add a script to build PyMca from source on Debian or Ubuntu systems.

  • Make specfile LC_NUMERIC locale independent to solve Debian bug report 602471.

  • Unify the sps library used by PyMca and the one used by Certified Scientific Software package SPEC. Use a BSD like license for the associated code.


  • Extend the usability of the code down to 100 eV extending XCOM mass attenuation coefficients with EPDL97 data when energies are below 1 keV.

  • Alternative background subtraction algorithm (SNIP) implemented.

  • Support of HDF5 file format.

  • Possibility to export ROI imaging tool data stack in HDF5.

  • Workaround 32-bit limit when handling huge EDF maps in 32-bit machines.

  • Better customization capabilities when saving images through matplotlib.

  • Support Fit2D .chi files.

  • Simple support of ADSC files wrapping them as EDF files.

  • Possibility to save images as 32-bit floats for people using the ImageJ EDF plugin.

  • Support combined PCA when using two data stacks.

  • Support Independent Component Analysis via MDP if installed.

  • Support non-negative Matrix Approximation Analysis using Uwe Schmitt modules (

  • Add multivariate analysis capabilities to the RGBCorrelator.

  • Implement a mechanism to add plugins to 1D plots.

  • Implement simple 3D visualization capabilities.

  • Solve X-ray tube profile generation problems at tube voltages below 20 kV.

  • Allow a greater number of energies defining the X-ray tube emission profile.

  • Correct logarithmic colormap handling.

  • Correct colormap problems in 64-bit platforms.

  • Correct problem preventing data calibration in some 64-bit platforms.

  • Minor bugs corrected and minor features added.


  • Speed up fit configuration when using multiple energies.

  • Import/export the multiple energies beam description as CSV files.

  • Possibility to calculate transmission curves added to the tools menu.

  • Offer the possibility to use an additional filter in the x-ray tube setup.

  • Visualization of the absorption and the detector contribution to the efficiency.

  • Prevent the use of trailing spaces in the definition of materials.

  • Implement zoomed window panning (press CTRL key and desired arrow key simultaneously).

  • Offer contour plot customization when saving images though matplotlib.

  • Possibility to flip external images used for selection in the ROI imaging tool.

  • Numpy 1.2 runtime deprecation warnings suppressed.

  • Interpolated mass attenuation coefficients were between 0 and 3 % overestimated.

  • Correct a bug appearing when trying to fit separate Ka and Kb lines of elements above Rb.


  • Add very basic spx file format support.

  • Improved SPE file format support.

  • Improved semilogarithmic Y axis toggling.

  • Correct a problem appearing when adding curves to the scan window in show points only mode.

  • Offer the possibility to choose between Qt and native file dialogs through the PyMca command line argument –nativefiledialogs=1.

  • Allow overwriting ROI definition files.

  • Two column ASCII files were not read in the ROI Imaging.

  • Implement the ROI Imaging –fileindex=1 command line option to deal with the case the EDF map was column oriented instead of row oriented.

  • Add the possibility to transpose the resulting images of a batch fitting by passing the –fileindex=1 option to PyMcaPostBatch.

  • Add threshold selection methods.

  • Implement selections from external images.

  • Correct a bug affecting saving of McaAdvancedFit data in CSV format.

  • Replace corrupted Ru.mat attenuation data.

  • Solve a problem with fit configuration window size affecting MacOS computers.

  • Prevent the use of numbers as material names.

  • Prevent an endless loop in case of typing a bad matrix element in the concentrations tab.

  • Add the necessary scripts to build PyMca as a python library under windows.

  • The calibration was not properly written when converting to EDF file format.


  • Batch fitting. Save concentrations as images too.

  • Advanced Fit.

    • Previous linear fit change was missing in batch mode.

    • Correct a problem showing up when Kr L lines were fitted as a group.

  • ROI Imaging. Show the calculated principal components when using PCA.

  • ROI Imaging. Useless stack background subtraction was not working.


  • Add ESRF Xia Correct to the Tools menu.

  • ROI Imaging changes.

    • Do not reset ROI image selection on ROI change.

    • Add data saving capabilities to the ROI image window.

    • Implement basic principal component analysis mapping.

    • Support AIFIRA and SupaVisio maps.

  • Advanced Fit changes.

    -Improved transmission geometry support. -User can specify the scattering angle in the fit configuration. -Support “funny type” attenuators. -Make better use of the available space in the McaAdvancedFit window. -Linear fit: fix peaks to 0 area if they are outside the fitting region.

  • Simplify access to binding energies by putting them in a separate ASCII file.

  • Add anchors and smoothing information to the HTML reports.

  • Correct a bug on the reconstruction of the chisq image when using the multiple processes batch option.

  • Correct a bug preventing the generation of HTML reports in batch mode.

  • Correct a specfile compilation issue with some gcc versions.

  • Suppress shared memory compilation warnings.


  • Possibility to use pseudo-Voigt as advanced fit function.

  • Possibility to save as data and to remove selected images from RGBCorrelator.

  • Support Lucia beamline maps.

  • Support Diamond I18 beamline maps.

  • Correct ROI fitting option bug.

  • Some other minor bugs corrected and some other minor features added.


  • Input/Output

    • Support CSV format. This should simplify data exchange with spreadsheets.

    • Support 64-bit handling of EDF files.

  • ScanWindow. Possibility to save all curves in a single specfile.

  • McaWindow.

    • Spectra are saved with the active calibration instead of its own. In other words: what you see is what you get.

  • Possibility to rename graph curves.

  • Possibility to save images thru matplotlib.

    • This allows user customization (axes, colorbar, colormap, contours, …)

  • ROI imaging: Use file-mapped arrays for stacks of more than 2 Gbytes.

    • This feature is implemented for 64-bit linux systems.

  • McaAdvancedFit. The combination of linear fit and fixed pile-up was buggy.

  • Calibration. Correct a crash under python 2.5 using the Auto FWHM option.

  • RGB Correlator. ASCII images saved under windows can be read under linux.

  • Add peak statistics information to fit reports.

  • Some other minor bugs corrected and some other minor features added.


  • ROI image. Possibility to normalize spectra to number of pixels.

  • Speed up access to specfiles containing many scans.

  • Correct a bug that was making the calculation of net ROI images useless.

  • Correct ESRF specific data acquisition monitoring problems.


  • ROI Imaging Tool

    • Possibility to calculate net ROI images.

    • Minimum width was a problem on dual screen displays.

    • When using two stacks, the colormaps where coupled.

  • Main MCA Window old ROI markers were not erased under some conditions.


  • ROI Tool.

    • Possibility to handle two stacks of same size simultaneously. The interest is to combine fluorescence and diffraction maps.

    • Possibility to save ROI configuration directly from the table.

    • Stack background removal implemented. It can be of interest on diffraction maps. It is very slow and not worth for fluorescence maps. The advanced fit is much better in this later case.

  • Linux. Add pymcaroitool to the binary package. The ROI Tool can be started as an independent application and not only from within PyMca.

  • Corrected. Simple fit combined with an energy calibration works.

  • Corrected. Scan monitoring. Last scan point was not shown.


  • Changed numerical library from Numeric to Numpy.

  • Added a tool to convert spectra to ESRF data format.

  • Improved shared memory access.

  • Possibility to calculate concentrations in mM.

  • Possibility to export the main MCA window in graphical format.

  • MCA window inactive legends after a fit problem corrected.

  • Corrected a problem in which HTML reports generated interactively after changing the concentration parameters without passing thru the fit configuration window could be different from those shown on the screen.


  • Concentrations calculated on batch mode were wrong if the fundamental parameter method was employed and no report was generated. This bug was introduced in version 4.0.2

  • Batches were unable to start if the first file had a name with more characters than the last one.

  • Solved a random crash when showing the fit configuration dialog.

  • Program was unable to start under Python 2.5

  • Possibility to set anchors to the strip background. This makes the strip background the ideal choice when the spectra present background pile up artifacts.

  • Correct a memory leak appearing when the Savitsky-Golay smoothing was one.


  • Upgraded underlying sip and PyQt libraries.

  • Scan window operational.

  • Shared memory access operational.

  • Batches can profit from multiple processors (windows and linux).

  • Batch deadlocks solved by the library upgrade.


  • Improved ergonomy. A lot of clicks saved …

  • Improved handling of ini files.

  • A lot of work made on the scan window. It is quite close to being fully operational.

  • Improved shared memory access. Almost fully operational.

  • Solved funny crashes under windows. The program was crashing under some particular situations like using remote desktop, hiding the windows taskbar or when the screensaver was activated.

  • Several minor bugs fixed.


  • Recover material editor functionality.

  • Solve a printing issue on some systems. A black square was always present at the lower right corner.

  • Started to add functionalities to the scan window.


  • Improvements in the RGB Correlator/Post Batch tool

    • Read new images.

    • Perform mathematical operations with the images.

  • Solve a file format identification problem. Some EDF files where wrongly identified as specfile.

  • Correct a bug reading specfile formatted files. In case of multiple scans, only the mca(s) of the first scan were read.

  • Clear all items from print preview working.


  • Add the possibility to save graphics in vectorial format (svg).

  • Scale print preview to have a width equal to 50% of the page width.

  • Solve a problem in specfile batches when dealing with the @CHANN entry.

  • Correct ROI image colormap bug in ROI imaging tool.

  • Add specfile support to the ROI imaging tool.

  • Correct random crashes on startup and on specfile batches.


  • Correct a bug in the ROI imaging tool. If the first channel was different from 0, there was an offset in each ROI.

  • Windows: Correct a bug making the applications crash on startup.

  • Speed up fit configuration dialog. It was awfully slow since version 3.9.4 Qt4.

  • Linux: Matplotlib saving of graphics working in the binary release also under (K)Ubuntu (It was already the case in pymca4.0.2-linux-p1.tgz)


  • Allow the user to choose if the data have to be weighted during the fit.

  • Correct a bug only affecting linear batches: areas and concentrations were smaller by a factor 10000. The bug was introduced in version 4.0.0

  • Faster concentrations calculation.

  • Concentrations calculated on batches do not force the generation of the .fit files.

  • Linux sps library made locale independent.


  • Plotting under windows should be faster.

  • Solved a small memory leak usign the strip background.

  • Advanced fit config button reported not to work on a gentoo 64-bit system when building PyMCA from source. Corrected.


  • Simplify batch preparation. After a fit, you can load the non-linear parameters from last fit into the configuration just by pressing a button.

  • Huge speed up of pure imaging batches (specially linear fits).

  • Possibility to save the imaging tool generated images in ASCII and EDF formats besides pure graphical formats.

  • Display (X, Y, Z) coordenates in EDF viewers.

  • Mark selected peaks in fit window, not in the main McaWindow.

  • The windows installation allows to keep the old 3.9.4 version (ESRF)installed. That windows version can be downloaded from the ESRF. It has less features but a faster interface. Physics is not changed and files generated by the 3.9.4 version can be used with this version.

  • Repeated HTML reports were incorrectly visualized.

  • Correct a memory leak in the specfile library.

  • Speed up sequential mca readout in specfile library.

  • Batch pause button is working now.

  • Force a main McaWindow plot and calibration update after a fit.

  • Solve a Windows XP specific problem. The peak selection buttons were not coloured under some windows theme configurations.

VERSION 3.9.4 Qt4

  • Publication quality graphics thru matplotlib. The packages are so big in part because of matplotlib.

  • Qt4 support. I will drop Qt3 in future releases. Latest windows versions now available from sourceforge and not from the ESRF.

  • Universal support for Mac.

  • Started to add imaging tools (ESRF Data Format file stacks for the time being).

  • Added an RGB correlator to easily find correlations among elements. This tool is to be used after a batch (Qt4 only). It can be used with previous batch results.

  • Image printing added.

  • Error when working with Nd element fixed.

  • Incomplete legends in plots solved (Mac-i386)

  • Missing features: Some previous features have not been ported to PyQt4 yet. If you need them please, keep the older version till I add them. The Physics has NOT changed. I kept the 3.9.4 to make it clear..

  • New tools can be accessed thru the PyMCA Tools menu.


  • Possibility to fit separately K-alpha and K-beta lines.

  • Possibility to use alternative L shell ratios.

  • Ebel’s work reference corrected

  • Long standing bug affecting the fit of L and M lines as a group corrected.


  • Add automatic x-ray tube weighted profile generation following Ebel’s formulae.

  • Consider scatter of more than just one excitation energy.

  • Take into account peaks outside the fitting region if at least one of its escape lines falls into the fitting region. Particularly important for Germanium detectors where the K escape lines are far from the excitation energy.

  • Starting pile-up parameter changed from 1.0e-10 to 1.0e-8

  • The rhodium density was wrong. Changed.

  • Solved a problem affecting the calibration in qt 2.3.0.

  • Solved a program crash in qt 2.3.0 when Matrix Spectrum of a bad or non existing matrix was requested.

  • Solved a program crash loading the shell configuration files. The problem affected some Intel based Macs (not all).


  • It corrects a bug affecting EDF files: The ADD REMOVE REPLACE buttons were not working.

  • The default short tail slope is set to 0.5

  • The peaks tailing information was missing in the HTML Report. It should be there now.

  • It exposes all the theoretical shell constants in ASCII files. This allows the end user to customize the theoretical values by editing the relevant files:

    • KShellRates.dat

    • KShellConstants.dat

    • LShellRates.dat

    • LShellConstants.dat

    • MShellRates.dat

    • MShellConstants.dat


  • Huge batch fitting speed up in case the user does not generate the .fit files


  • Possibility to perform linear fits. That can improve batch fitting speed.

  • Solved a long standing problem with the L lines of Sb, I, Cs, Ba, La, Ce, Pr and Nd. Problem was due to a bad transcription of the used theoretical data.

  • The elements info shows energy dependent L and M ratios. Nothing changes for the fit. Just the information is shown.