eldix#
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)
Dependencies#
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