Fast fitting of reflectivity curves using machine learning.
This code was used in the following scientific publication:
[1] Fast Fitting of Reflectivity Data of Growing Thin Films Using Neural Networks A. Greco, V. Starostin, C. Karapanagiotis, A. Hinderhofer, A. Gerlach, L. Pithan, S. Liehr, F. Schreiber, & S. Kowarik (2019). J. Appl. Cryst., in print.
A co-developed version of this software with a graphical user interface can be found at kowarik-labs/AI-reflectivity.
This repository mainly serves as a public archive for the code used in [1] and is not yet optimized for the use by other researchers. Future updates will improve the functionality and usability of the program.
To be able to run the code, a python 3.7 installation with the following dependencies is required:
- keras
- tensorflow
- numpy
- tqdm
- csv
- datetime
- configobj
- matplotlib
Provided a correct python installation is available, the code can be run from a suitable shell as-is using the configuration and neural network archtitecture used in [1]. The trained network can be tested on the provided real-time X-ray reflectivity dataset "DIP_330K.txt" of a growing diindenoperylene film on a silicon wafer with a native oxide layer (published in [1]).
$ python generate_training_data.py
$ python training.py
$ python prediction.py
- Alessandro Greco (Institut für Angewandte Physik, University of Tübingen)
- Vladimir Starostin (Institut für Angewandte Physik, University of Tübingen)
- Christos Karapanagiotis (Institut für Physik, Humboldt Universität zu Berlin)
- Alexander Hinderhofer (Institut für Angewandte Physik, University of Tübingen)
- Alexander Gerlach (Institut für Angewandte Physik, University of Tübingen)
- Linus Pithan (ESRF The European Synchrotron)
- Sascha Liehr (Bundesanstalt für Materialforschung und -prüfung (BAM))
- Frank Schreiber (Institut für Angewandte Physik, University of Tübingen)
- Stefan Kowarik (Bundesanstalt für Materialforschung und -prüfung (BAM) and Institut für Physik, Humboldt Universität zu Berlin)