Low-level functions#
Most of the heavy computations are performed by functions written in C. The corresponding function are wrapped with Cython. Most of the funtions perform the computations in concurrent manner and use the OpenMPI library.
Image data processing#
Here is a list of image processing routines used in this software. This routines are employed to process the experimentally measured CBC patterns. Some of these routines rely on the 2-dimensional Fourier transform. All of the pertained functions use FFTW library to perform the fast Fourier transform (FFT).
Also, the pyFFTW wrapper of the FFTW library is incorporated into the library for computing dicrete Fourier transforms of multidimensional arrays.
Thick line rasterisation#
Routines to draw thick lines with variable thickness and the antialiasing applied on a single frame by using the Bresenham’s algorithm [BSH].
CBC patterns processing#
Routines used to prepare and create sparse CBC patterns out of exerimentally measured patterns.
CBD forward model#
Some of the routines required to implement the CBD geometry and simulate a CBD pattern are implemented in C to boost the performance and enable the concurrent computations.
Intensity scaling#
A set of functions used in the CBC intensity scaling and the estimation of a crystal diffraction efficiency map.