Tree [948716] master /

File Date Author Commit
doc 2015-04-28 Dominik Kriegner Dominik Kriegner [106d0d] remove unneeded mathjax extension in sphinx conf
examples 2015-04-01 Dominik Kriegner Dominik Kriegner [5b9348] formatting updates in docu
xrayutilities 2015-05-27 Dominik Kriegner Dominik Kriegner [948716] add test for nja multiscan file/ fix bug in parser
.gitignore 2014-09-16 Dominik Kriegner Dominik Kriegner [1b59f9] update gitignore
CHANGES.txt 2015-05-26 Dominik Kriegner Dominik Kriegner [9cca5e] add new unit tests for file parsers
LICENSE.txt 2013-07-01 Dominik Kriegner Dominik Kriegner [7ce45b] further code cleanup towards submission to PyPI 2014-08-13 Dominik Kriegner Dominik Kriegner [9167fa] reduce size of elements database
README.txt 2015-04-22 Dominik Kriegner Dominik Kriegner [8cfbe5] fix text in README
release.txt 2015-04-22 Dominik Kriegner Dominik Kriegner [bd3487] update version for new release v1.1.2 2015-04-22 Dominik Kriegner Dominik Kriegner [bd3487] update version for new release v1.1.2
xrayutilities.pdf 2015-04-22 Dominik Kriegner Dominik Kriegner [bd3487] update version for new release v1.1.2

Read Me


xrayutilities is a collection of scripts used to analyze x-ray diffraction
data.  It consists of a Python package and several routines coded in C. It is
especially useful for the reciprocal space conversion of diffraction data
taken with linear and area detectors.

Copyright (C) 2009-2015 Dominik Kriegner <>

Copyright (C) 2009-2013 Eugen Wintersberger <>


* examples:           directory with example scripts and configurations
* xrayutilities:      directory with the sources for the Python package
*           distutils install script used for the package installation
* xrayutilities.pdf:  pdf-file with documentation of the package

Installing xrayutilities is an easy process done by executing ::

  $> python install

or ::

  $> python install --prefix=<install_path>

in the source folder of xrayutilities on the command line/terminal.  The first
command installs in the systems default directories, whereas in the second
command you can manually specify the installation path.

By default the script tries to use OpenMP. If you do not want to use
OpenMP use --without-openmp option for the installation ::

  $> python --without-openmp install --prefix=<install_path>

For the installation the following requirements need to be installed on your

- Python
- C-compiler (preferential with OpenMP support)
- pytables
- scipy
- numpy
- matplotlib (optionally)

refer to your operating system documentation to find out how to install
those packages. On Microsoft Windows refer to the Documentation for the
easiest way of the installation (Python(x,y) or WinPython).

On Microsoft Windows it might be necessary to manually
specify the C compiler used for building the extension modules using

  $> python build -c mingw32

before the installation can be performed as described above.

Python-2.7 and Python-3.X compatibility

The current developement focues Python-3.X and we ask all users to update to
Python-3 if possible, however, xrayutilies can be used with Python-2.7 as well.
Care was taken to make this possible from the same code-base

The Python package configuration

The following steps should only be necessary for user local installation to
ensure the Python module is found by the Python interpreter:
In this case the module is installed under
<prefix>/lib[64]/python?.?/site-packages on Unix systems and
<prefix>/Lib/site-packages on Windows systems.

If you have installed the Python package in a directory unknown to your local
Python distribution, you have to tell Python where to look for the Package.
There are several ways how to do this:

- add the directory where the package is installed to your
  *PYTHONPATH* environment variable.

- add the path to sys.path in the .pythonrc file placed in your home
  directory ::

    import sys
    sys.path.append("path to the xrayutilities package")

- simply apply the previous method in every script where you want to
  use the xrayutilities package before importing the package ::

    import sys
    sys.path.append("path to the xrayutilities package")
    import xrayutilities

Obtaining the source code

The sources are hosted on sourceforge in git repository.
Use ::

  $> git clone git:// xrayutilities

to clone the git repository. If you would like to have commit rights
contact one of the administrators.


if you already installed xrayutilities you can update it by navigating into
its source folder and obtain the new sources by ::

  $> git pull

or download the new tarball from sourceforge
( if any code changed during the update you
need to reinstall the Python package.  To determine the path in which
xrayutilities where installed previously use ::

  $> python -c "import xrayutilities as xu; print xu.__file__"

if the output is e.g.: "/usr/local/lib64/python2.7/site-packages/xrayutilities/"
you previously installed xrayutilities in "/usr/local", which should be used
again as install path. Use ::

  $> python install --prefix=<path to install directory>

to install the updated package.


Documention for xrayutilities is found in the xrayutilities.pdf file or on the

The API-documentation can also be browsed by ::

  $> pydoc -p PORT

in any web-browser, after the installation is finished.

To build the PDF documentation from the docu-sources use:

  $> python build build_doc -b pdf

You will need sphinx and pdflatex including latex-recommended, latex-extra
and fonts-recommended.

Or generate a texinfo file using

  python build_doc -b texinfo
  cd build/sphinx/texinfo; make


create a tarball for redistribution of xrayutilities without the use of git ::

  $> python sdist

creates a tarball in the directory dist, which contains everything needed for
the installation of xrayutilities