pyrost#
Python Robust Speckle Tracking (pyrost in GitHub) is a library for wavefront metrology and sample imaging based on ptychographic speckle tracking algorithm. This project takes over Andrew Morgan’s speckle_tracking project as an improved version aiming to add robustness to the optimisation algorithm in the case of the high noise present in the measured data.
The library is written in Python 3 and uses a C back-end written
in Cython. The library is capable to perform the robust
version of speckle tracking algorithm, which yields an unabberated profile of
the sample and the wavefront of the lens. Also it contains a set of auxiliary
data processing routines, such as bad pixel masking, defocus sweep scan, wavefront
reconstruction, phase model fitting, etc. All of them are listed in
pyrost.STData
.
pyrost includes a framework to work with CXI files, see Working with CXI files for more information.
Note
The theoretical background and technical details behind the machine learning techniques employed in this software are written in the open access article published in Optica Express.
pyrost.simulation#
pyrost.simulation is capable to simulate one-dimensional speckle tracking scans. It employs Rayleigh-Sommerfeld convolution and Fraunhofer diffraction to propagate the wavefronts. The back-end is written in C to yield the best performance.
pyrost.multislice#
The multislice simulation package (pyrost.multislice) is capable to propagate the wavefront through a bulky sample by the dint of multislice beam propagation algorithm. The back-end is based on FFTW library.