EMCD Utility Program abandoned

The EMCD Utility Program is a Python-script program designed to assist in the substraction and adjustment of EELS spectra. This software package is licenced under the GPLv2 software licence. These are the main features:

  • Calculating EMCD signal from EELS spectra
  • Filtering spectra with different models (Gauss, Fourier, Wiener, ...)
  • Background removal
  • Fourier Series Analysis
  • Conversion DM3 to TXT or PNG

This project has been presented as a poster at the MC2011 in Kiel, Germany.


During EMCD experiments EELS spectra can show L2,3 edges of ferromagnetic samples at different energies. The default tool - DigitalMicrograph - does relabelling of the energy scale, but when substracting two displaced spectra the dichroic signal is distorted.

Figure: EELS spectra and EMCD signal as output by DigitalMicrograph.
Without compensation of the energy shift the dichroic (EMCD) signal is distorted.

Therefore this project was started to enhance the quality of EMCD signals by compensating shifts in energy and using different filter models.

Figure: EELS spectra and EMCD signal as output by this script. In both graphs the energy shift has been compensated.
: Unfiltered. Right: Filtered with a Gaussian.


The package contains the following Python script files:

  • dm3reader.py, which provides capabilities of reading raw data from DM3 files
  • DM3Object.py, which utilizes the dm3reader module to make an abstract, sophisticated object (since revision 12 of trunk development branch)
  • emcd.py, which is the main program.

The dm3reader module is taken from the ImageJ Wiki.

The stable package can be downloaded from the project homepage on launchpad.net using the Bazaar version control system.

System requirements

  • Python 2.x (tested and developed with 2.6)
  • python-gtk2 (tested and developed with 2.17)
  • python-matplotlib (tested and developed with 0.99)
  • python-scipy (tested and developed with 0.70)

Known Bugs

  • The program exits when one closes one window of the GTK frontend. It would be great that the program would reload all windows when a user specifies a new set of spectra and starts the procedure.


Main window of the EMCD Utility Program

Settings dialog

User chooses region for background removal

Final view: spectra and dichroic signal