Skip to content

neutrons/addie

Repository files navigation

CI Release Other
GitHub Actions Anaconda-Server Badge MIT License
Anaconda-Server Badge

ADDIE

ADDIE stands for ADvandced DIffraction Environment, a data reduction application for total scattering powder diffraction data.

The name came about from being developed for the Diffraction Group at SNS located at ORNL (and previously known as the Advanced Diffraction Group).

This "reduction" entails taking raw neutron counts from detectors in the diffraction experiment and turning them into the reciprocal-space structure factor patterns, F(Q) or S(Q), and applying a Fourier Transform to real-space to give the pair distribution fuction, PDF.

ADDIE is a front-end GUI for total scattering that hopes to support multiple diffractometers performing total scattering measurements. The back-end that uses the Mantid Framework is the mantid-total-scattering project.

Install

Setup conda environment to install ADDIE into:

conda create -n addie-env
conda activate addie-env

Install ADDIE in the conda environment:

conda install -c neutrons addie

Uninstall

conda deactivate
conda remove -n addie_env --all

Launch

To launch ADDIE, run the following from the command line:

addie

If you need to specify the path to Mantid build, use:

MANTIDPATH=/path/to/mantid/build/bin PATH=$MANTIDPATH:$PATH PYTHONPATH=$MANTIDPATH:$PATH addie

Development

Installation development environment using Conda

conda env create --file environment.yml
conda activate addie
pip install -e .

This will use the configuration in the environment.yml file for setting up the addie conda environment. If one needs to change the conda environment name, simply edit the addie to something else in the environment.yml file.

Then suppose one is located in the main directory of the ADDIE repo, executing the following command will start up ADDIE,

python addie/main.py

or just

addie

Uninstall

conda deactivate
conda remove -n addie --all

Notes

If you have an error (see below for example) related to the libGL library, you may not have it installed for the Mantid Framework to work. See instructions here for installing the necessary libraries for different OS

Example error:

ImportError: First import of "._api" failed with "libGL.so.1: cannot open shared object file...

Testing

The test suite can be run using pytest with the pytest-qt plugin.

$ python -m pytest

If it is complaining about not being able to find the pytest module, first we need to make sure we are in the activated conda environment created above. Then if the issue persists, we can run pip install pytest to install the module.

Developing using a local Mantid install

If you normally develop using virtualenv or friends, you can develop addie that way as well. After creating the virtual environment, run

<MANTIDBUILDDIR>/bin/AddPythonPath.py

which will add a file, mantid.pth to your environment with the location of mantid. Then you need to setup for development:

python setup.py develop

will put the rest of addie into your environment so you only need to edit files and type addie.

As an extra reference, use direnv to manange your virtual environments. For a python2 virtual environment the .envrc file should contain

layout python2 -- --system-site-packages

so the system wide packages installed for mantid are found.

or with pipenv (which will use Pipfile), first setup the directory and then add the .envrc file:

cd addie
pipenv --two
echo layout_pipenv > .envrc
direnv allow