Skip to main content

PyXRD is a python implementation of the matrix algorithm developed for the X-raydiffraction analysis of disordered lamellar structures

Project description

PyXRD
=====

PyXRD is a python implementation of the matrix algorithm for computer modeling
of X-ray diffraction (XRD) patterns of disordered lamellar structures.
It's goals are to:

- provide an easy user-interface for end-users
- provide basic tools for displaying and manipulating XRD patterns
- produce high-quality (publication-grade) figures
- make modelling of XRD patterns for mixed-layer clay minerals 'easy'
- be free and open-source (open box instead of closed box model)

PyXRD was written with the multi-specimen full-profile fitting method in mind.
A direct result is the ability to 'share' parameters among similar phases.
This allows for instance to have an air-dry and a glycolated illite-smectite
share their coherent scattering domain size, but still have different basal
spacings and interlayer compositions for the smectite component.

Other features are (incomplete):

- Import/export several common XRD formats (.RD, .RAW, .CPI, ASCII)
- simple background subtraction/addition (linear or custom patterns)
- smoothing patterns and adding noise to patterns
- peak finding and annotating (markers)
- custom line colors, line widths, pattern positions, ...
- goniometer settings (wavelengths, geometry settings, ...)
- specimen settings (sample length, absorption, ...)
- automatic parameter refinement using several algorithms, e.g.:
- L BFGS B
- Brute Force
- Covariation Matrix Adapation Evolutionary Strategy (CMA-ES; using DEAP)
- Multiple Particle Swarm Optimization (MPSO; using DEAP)
- scripting support

INSTALLATION
============

As of version 0.5.0 PyXRD (finally) supports standard python packaging, meaning
it is available from the [Python package index](https://pypi.python.org/pypi)
and has become very easy to install for most Python users.

If you're not used to (installing) Python software, see below for specific instructions.

DEPENDENCIES
------------

This is what should be present on your system.

* Python 2.7.4 (other version may also work, or may not)
* PyGTK 2.24.2 or later
* Numpy 1.7.0 or later
* Scipy 0.11.0 or later
* Matplotlib 1.2.1 or later
* PyParsing 1.5.7 or later
* (optional) DEAP 0.9.1 or later

Windows
-------

There are numereous ways to install python 'packages' or software. If you're a
first-time Python user and don't really care about what way it is installed,
just download and install these, in the order given:

1. [Python 2.7.4](http://www.python.org/ftp/python/2.7.4/python-2.7.4.msi)
2. [PyGTK 2.24.2](http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.24/pygtk-all-in-one-2.24.2.win32-py2.7.msi)
3. [Numpy 1.7.0](http://sourceforge.net/projects/numpy/files/NumPy/1.7.0/numpy-1.7.0-win32-superpack-python2.7.exe/download)
4. [Scipy 0.11.0](http://sourceforge.net/projects/scipy/files/scipy/0.11.0/scipy-0.11.0-win32-superpack-python2.7.exe/download)
5. [Matplotlib 1.2.1](https://downloads.sourceforge.net/project/matplotlib/matplotlib/matplotlib-1.2.1/matplotlib-1.2.1.win32-py2.7.exe)
6. [PyParsing 1.5.7](http://sourceforge.net/projects/pyparsing/files/pyparsing/pyparsing-1.5.7/pyparsing-1.5.7.win32-py2.7.exe/download)
7. [PyXRD](https://github.com/mathijs-dumon/PyXRD/releases)

At this point you should have a working version of PyXRD installed (with a desktop shortcut).

If you want to use the evolutionary algorithms for parameter refinement, you'll
need to install DEAP as well. There is currently no windows installer available
for DEAP, so you'll need to instruct Python to fetch it from the Python package index:

* Open a command line (Start button -> Search -> enter 'cmd.exe' -> press enter)
* Type in the following command (no quotes):
```
easy_install deap
```
* If all went well you should have the latest version of DEAP installed now.

Linux
-----

You'll need a working version of Python 2.7 and then install all the other
dependencies. PyGTK is currently not easily installable from the Python package
index, as it needs to be compiled manually (it's a binding to the GTK libs after all...).

So install these two packages from your systems package manager, terminal commands
are given below to achieve that, but you can use your systems package manager
if you like that better:

* Debian/Ubuntu/...:
```sudo apt-get install python python-gtk2```
* Fedora/Red Hat/... (not tested, gime some feedback if this works!):
```sudo yum install python python-gtk```
* OpenSuSE (not tested, gime some feedback if this works!):
```sudo zypper install python python-gtk```

Once this has been completed, keep the terminal open and issue these commands:

```
sudo easy_install pip
pip install --user 'pyxrd>=0.5.0'
```

This will install everyting under your '~/.local' folder.

To run PyXRD type in the following:

```
~/.local/bin/PyXRD
```

Mac OS X
--------

Currently no support is given for Mac's. The main problem is getting PyGTK
to work under Mac. There has been some succes using MacPorts and the like (from
what I can read & tell online), but your milage may vary, and I recommend novice
users to switch to either a Windows or Linux PC.

CREDITS
=======

- [xylib](http://github.com/wojdyr/xylib/) - Has been a great help at unravelling some common XRD formats

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyXRD-0.5.1.zip (1.0 MB view details)

Uploaded Source

Built Distributions

PyXRD-0.5.1.win32-py2.7.exe (1.3 MB view details)

Uploaded Source

PyXRD-0.5.1-py2.7.egg (1.5 MB view details)

Uploaded Egg

File details

Details for the file PyXRD-0.5.1.zip.

File metadata

  • Download URL: PyXRD-0.5.1.zip
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for PyXRD-0.5.1.zip
Algorithm Hash digest
SHA256 1f2d279e224097af24df930fafe4c3791f2ecd5de50ab2efc06ddfd8752ad623
MD5 3416c46cee72c95469c0a05e7f62fd53
BLAKE2b-256 84afedf752a7f3b51b13a9f0bfd3ede07ac7821a37ab611b66c072795843f4a6

See more details on using hashes here.

File details

Details for the file PyXRD-0.5.1.win32-py2.7.exe.

File metadata

File hashes

Hashes for PyXRD-0.5.1.win32-py2.7.exe
Algorithm Hash digest
SHA256 582ab47575522893e787f2be4c84e2de663f469d975b92a0ee2493eb632c49c5
MD5 00d0b1e5adb13ecbbf846bfcd7dfe885
BLAKE2b-256 92e36e7fcae651c4159ca6d02607c78bf412c5a98b0190ae71783ba63471dc98

See more details on using hashes here.

File details

Details for the file PyXRD-0.5.1-py2.7.egg.

File metadata

  • Download URL: PyXRD-0.5.1-py2.7.egg
  • Upload date:
  • Size: 1.5 MB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for PyXRD-0.5.1-py2.7.egg
Algorithm Hash digest
SHA256 f3b90625d03417f2985958aa601acbd5591e775a3710ea24c424e8cb01156b22
MD5 ab7bbb55ff523b2eab7092b30dac8d59
BLAKE2b-256 441e41a57f6a399c1f1f8e1c3d44273e2c8ee17f6702a59e42ed97194e6d0f58

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page