With the XRD reader, data from X-ray diffraction experiment can be read and written into a NeXus file (h5 type file with extension .nxs) according to NXxrd_pan application definition in NeXus. There are a few different methods of measuring XRD: 1. θ:2θ instruments (e.g. Rigaku H3R), and 2. θ:θ instrument (e.g. PANalytical X’Pert Pro). The goal with this reader is to support both of these methods.
NOTE: This reader is still under development. As of now, the reader can only handle files with the extension .xrdml
, obtained with PANalytical X’Pert Pro version 1.5 (method 2 described above). Currently we are wtoking to include more file types and file versions.
It is recommended to use python 3.11 with a dedicated virtual environment for this package. Learn how to manage python versions and virtual environments.
This package is a reader plugin for pynxtools
and thus should be installed together with pynxtools
:
pip install pynxtools[xrd]
for the latest development version.
Though, in computer science, parser is a process that reads code into smaller parts (called tocken) with relations among tockens in a tree diagram. The process helps compiler to understand the tocken relationship of the source code.
The XRD reader calls a program or class (called parser) that reads the experimenal input file and re-organises the different physical/experiment concepts or properties in a certain structure which is defined by developer.
**inputs:**
file_path: Full path of the input file.
**Important method:**
get_slash_separated_xrd_dict() -> dict
This method can be used to check if all the data from the input file have been read or not, it returns the slash separated dict as described.
The reader can be run from Jupyter-notebook or Jupyter-lab with the following command:
! dataconverter \
--reader xrd \
--nxdl NXxrd_pan \
$<xrd-file location> \
$<eln-file location> \
--output <output-file location>.nxs
An example file can be found here in GitLab in nomad-remote-tools-hub feel free to vist and try out the reader.
Install the package with its dependencies:
git clone https://github.com/FAIRmat-NFDI/pynxtools-xrd.git \\
--branch main \\
--recursive pynxtools_xrd
cd pynxtools_xrd
python -m pip install --upgrade pip
python -m pip install -e .
python -m pip install -e ".[dev]"
There is also a pre-commit hook available which formats the code and checks the linting before actually commiting. It can be installed with
pre-commit install
from the root of this repository.
In principle, you can reach out to any member of Area B of the FAIRmat consortium, but Rubel Mozumder could be more reasonable for the early response.