OpenHKL: data reduction for single crystal diffraction¶
What is OpenHKL?¶
OpenHKL is a GUI programme for data reduction of single crystal diffraction experiment data. It takes a series of detector images collected over a range of sample rotation angle increments and constructs a real space 3D model of the detector spots. This is used to determine an exhaustive list of reflections for sample unit cell, along with their Miller indices, integrated intensities and variances.
Why use OpenHKL?¶
There are many existing programmes that perform similar data reductions; many have been used extensively in the past and produce excellent results. However, OpenHKL is distinguished by a unique combination of important features.
Natively handles neutron diffraction¶
The OpenHKL project was started with the aim of developing a data reduction programme specifically for neutron diffraction, which is technically more problematic than X-ray diffraction in terms of data reduction. However, it can be used equally well for X-ray diffraction data.
Open source and fully documented¶
OpenHKL is fully open source, and none of its functionality is a “black box”. All algorithms are fully documented, such that users will no longer be left guessing as to what exactly OpenHKL does during the data reduction process. Modification and collaboration are encouraged, with the aim of improving OpenHKL as a community.
Easily extensible for different detector geometries¶
It is easy to extend OpenHKL to include different detector geometries; each
instrument is described a
.yaml machine file which contains the metadata and
Written in C++, with a Modern QT GUI¶
OpenHKL is written in C++ for excellent speed, using object-oriented principles to facilitate extensibility. It has a modern GUI, making it user friendly for the end user.
Core functionality available via Python API¶
All core functionality can be accessed via a Python scripting API, with the aim of facilitating i) automation of the data reduction process, and ii) systematic testing and optimisation of data reduction parameters.
History of OpenHKL¶
OpenHKL was started by Laurent Chapon and Eric Pellegrini at Institut Laue-Langevin in Grenoble under the name NSXTool (Neutron Single Xtal). It later became a collaboration between ILL and Forschungszentrum Jülich at the Heinz Maier-Leibnitz Zentrum (MLZ) in Garching. It was renamed to OpenHKL in 2022 to emphasise that it is intended also for X-ray diffraction as well as Neutron diffraction.
Compile from source¶
C++ compiler (e.g. g++, clang)
Thread building blocks (TBB)
Clone the git repository
git clone https://iffgit.fz-juelich.de/neutron-simlab/openhkl.git
Create a build directory, run
cmakeand compile the source:
cd openhkl mkdir build cd build cmake .. make -j8 make install <optional>
A SWIG-generated python module is installed to build/swig/pyohkl.py; in order to access OpenHKL libraries from a python script, it is necessary to either add the build/swig directory to your $PYTHONPATH variable, or add the following lines to your script.
import sys sys.path.append("/path/to/build/swig") import pyohkl as ohkl
- About OpenHKL
- Installation guide
- Peak Table
- Rejection flags
- Detector image widget
- Show/hide peaks widget
- Measures of Data Quality
- Code Reference