← All software

Diffraction

Dioptas.

Interactive diffraction analysis, from detector images and calibration to integrated patterns, maps, and phase identification.

Latest stable release0.13.0Release notes

Dioptas is an interactive application for processing and exploring two-dimensional powder X-ray diffraction images. It connects detector calibration, masking, integration, and phase analysis in one workflow, both during an experiment and when working through a collection of images afterwards.

From detector images to useful patterns

  • Calibrate the detector geometry and inspect the image, integrated pattern, and azimuthal cake together.
  • Create masks interactively, including intensity thresholds and intervals in scattering angle, momentum transfer, or d-spacing.
  • Compare patterns, apply corrections and background subtraction, and work with multiple detector configurations.
  • Explore series of measurements through batch integration and maps.
  • Compare diffraction peaks with calculated phase lines and change pressure and temperature using the Peritheos material library and PhaseSmith reflection calculations.
  • Save the experimental setup in a project and reuse it for subsequent data or scripted integration.

Recent releases also make it possible to inspect azimuthal intensity spread alongside an integrated pattern. This helps reveal spottiness and texture; it is distinct from the Poisson uncertainty of the integrated mean. Integration runs outside the Qt event loop so that browsing images remains responsive.

Faster integration with Dioptrin

Dioptrin is an optional licensed diffraction-integration backend for Dioptas, with a Rust core and a Python interface. It supports pixel splitting, supersampling, Poisson uncertainties and parallel batches. Dioptas keeps its pyFAI integration path available for workflows that need it or when Dioptrin is not activated.

The benchmark comparison shows pyFAI, azint and Dioptrin at one thread and eight workers. The main chart includes opening, decoding and integrating every file without error estimation; a separate chart includes Poisson counting uncertainties. It uses Dioptas’s usual pyFAI integration method and also reports setup time, memory and numerical differences. These library timings do not measure the complete Dioptas interface. The integration and uncertainties guide explains the controls, including how 1 selects geometric pixel splitting and higher values select Dioptrin supersampling.

Please contact me about a Dioptrin license if you would like to use this backend.

Install Dioptas

The GitHub release page provides self-contained applications for Windows, macOS, and Linux. These include their dependencies and do not require a separate Python installation. The standalone macOS application targets Apple silicon; Intel Mac users can use the Python package.

For a Python installation, use a supported environment and run:

python -m pip install --upgrade dioptas
dioptas

Python 3.13 is the straightforward installation choice documented for the current release. See the installation guide for platform details and the supported Python versions.

Use the same setup in a script

A saved .dio project can also be used with the headless scripting API:

from dioptas.pipeline import Pipeline

pipeline = Pipeline.from_project("experiment.dio")
pattern = pipeline.integrate("sample_001.tiff")
pattern.save("sample_001.xy")

See the scripting API manual for batch processing, masks, and corrections.

Cite Dioptas

Prescher, C. and Prakapenka, V. B. (2015). DIOPTAS: a program for reduction of two-dimensional X-ray diffraction data and data exploration. High Pressure Research, 35(3), 223–230. DOI: 10.1080/08957959.2015.1059835.

Please cite the paper when using Dioptas in published work. For reproducible analysis, also record the software version and cite the original equations of state or other source data used in phase calculations.

Frequently asked questions · Report a problem

Project updates

Notes & releases

release

Dioptas 0.13.0 released

The stable 0.13.0 release is available. Read the highlights and full release notes on GitHub.

release

Dioptas 0.12.1 released

The stable 0.12.1 release is available. Read the highlights and full release notes on GitHub.

release

Dioptas 0.12.0 released

The stable 0.12.0 release is available. Read the highlights and full release notes on GitHub.

release

Dioptas 0.11.0 released

The stable 0.11.0 release is available. Read the highlights and full release notes on GitHub.

release

Dioptas 0.5.3 release

A new version of Dioptas has been released, with a couple of bugfixes and several new features. Notably the ability to load nexus detector files.

release

Dioptas 0.5.1 Release

A new version of Dioptas has been released, with a couple of bugfixes and several new features. Notably the ability to load nexus detector files.

release

Dioptas 0.5.0 release

A new version of Dioptas has been released, with a couple of bugfixes and several new features.

release

Dioptas 0.4.1 release

A new version of Dioptas has been released, with a couple of bugfixes and two new features.

release

Dioptas 0.4.0 release

A new version of Dioptas has been released. This is a major update with more than 460 commits. I want to especially thank Eran Greenberg for a lot o very useful contributions. The most…