eldix is a full featured control program for the ELDICO Electron Diffraction System. It controls the hardware of the E-beam generator, the goniometer and the detector. At the same time it is an image viewer for X-ray diffraction images supporting a variety of formats: - cbf (crystallographic binary format) - minicbf(crystallographic binary format as used by Dectris) - tiff (Eiger, Pilatus, marCCD) - mar345 (e.g. images with extension .mar2300, .mar1200, etc.) - mar300 (e.g. images with extension .image) - marccd (images produced by the Rayonix CCD-detectors) - raw (8,16 or 32-bit data arrays)


Python 3.5 or later. The GUI depends on tk, so on Ubuntu the package python3-tk must be installed. The program also makes use of:

  • tk
  • PIL (python imaging library)
  • PIL.ImageTk
  • numpy
  • scipy
  • matplotlib
  • cffi
  • lz4
  • h5py
  • zmq
  • opencv-python
  • pycurl
  • tifffile
  • passlib
  • netifaces
  • msgpack
  • pyglet
  • pycurl
  • psutil
  • distro
  • jwt
  • distro

The program requires additional packages that may not be packaged inside Ubuntu or Debian repositories. They may have to be installed with pip3.

  • cbf
  • bitshuffle
  • tkinterhtml
  • py-cpupinfo
  • pysceenshot
  • pyepics

Module pyglet is not essential. It is required only for loading custom fonts that are not available as system fonts. These fonts are Segment7.ttf and Eurostile-LT-Std-Oblique.ttf. If you copy them into a system location (e.g. /usr/share/fonts/truetype) and rebuild the font cache (sudo fc-cache -f -v ) you are all set.

BEWARE: module numpy >= 1.24 is not compatible with h5py < 3.0. It is suggested to install both numpy >= 1.24 and h5py >= 3.0 via pip and not use the versions supplied by the operating system (e.g. on Debian 11: numpy=1.19 and h5py=2.10.0

Ubuntu and Debian Like linux distributions:#

To use eldix on Ubuntu or Debian Linux the needed python modules can be installed either through the Synaptic Package Manager (found in System -> Administration) or using apt-get on from the command line in a terminal. The extra packages needed are:

  • python3-tk
  • python3-pil
  • python3-pil.imagetk
  • python3-numpy
  • python3-scipy
  • python3-matplotlib
  • python3-cffi
  • python3-pycurl
  • python3-pyglet (not available in Debian on apt)
  • python3-lz4
  • python3-opencv
  • python3-zmq
  • python3-psutil
  • python3-cpuinfo
  • python3-netifaces
  • python3-distro
  • python3-tifffile
  • python3-msgpack

  • tkinterhtml

  • cbf

The can be install using 'apt' or 'apt-get' like:

sudo apt install python3-tk python3-pil python3-pil.imagetk python3-numpy python3-scipy python3-matplotlib python3-lz4 python3-opencv python3-zmq python3-pycurl python3-passlib python3-psutil python3-cpuinfo python3-netifaces sudo apt install tifffile sudo apt install python3-pyglet

Some packages are not officially packaged in the Ubuntu or Debian repositories. They will have to be installed via pip3 like:

sudo pip3 install tkinterhtml sudo pip3 install cbf sudo pip3 install bitshuffle sudo pip3 install pyglet

On Linux systems you might also want to install via pip3: sudo pip3 install pyscreenshot

December 2020: For some reason, bitshuffle on Debian 10 fails with a compilation when installed via pip3. Download the package from github and install it "manually", i.e.

sudo apt install cython3 (required for compilation?) git clone https://github.com/kiyo-masui/bitshuffle.git cd bitshuffle python3 setup.py build sudo python3 setup.py install