Skip to main content

Fast Azimuthal Integration in Python

Main development website: https://github.com/silx-kit/pyFAI

Github Actions Appveyor Status myBinder Launcher RTD docs Zenodo DOI

PyFAI is an azimuthal integration library designed for high-performance, achieving performance comparable to C and even greater through OpenCL-based GPU acceleration. It is based on histogramming the 2θ/Q positions of each pixel centre, weighted by pixel intensity, whereas the parallel version performs a SparseMatrix-DenseVector multiplication. Both method achieve the same numerical result. Neighboring output bins also receive contributions from pixels adjacent to the border through pixel splitting. PyFAI also provides tools to calibrate the experimental setup using Debye-Scherrer rings of a reference compound.

References

  • The philosophy of pyFAI is described in the proceedings of SRI2012
  • Implementation in parallel is described in the proceedings of EPDIC13
  • Benchmarks and optimization procedure are described in the proceedings of EuroSciPy2014
  • Calibration procedures are described in J. Synch. Radiation (2020)
  • Application of signal separation to diffraction image compression and serial crystallography in J. Appl. Cryst. (2025)

Installation

Using PIP (python-package installer)

As with most Python packages, pyFAI is available via pip:

pip install pyFAI[gui]

It is recommended to run this in a virtual environment. Provide the --user option to perform an installation local to your user-space (not recommended). Under UNIX, you may have to run the command via sudo to gain root access and perform a system wide installation (which is neither recommended).

Using conda installer

PyFAI is also available via the conda installer from Anaconda:

conda install pyfai -c conda-forge

To install conda please see either conda or Anaconda.

From source code

The current development version of pyFAI can be downloaded from GitHub. The source code is currently distributed as a zip package.

Download and unpack it:

unzip pyFAI-main.zip
cd pyFAI-main

Install dependencies:

pip install -r requirements.txt

Build and test it:

python run_tests.py

For its tests, pyFAI downloads test images from the internet. Depending on your network connection and your local network configuration, you may have to set up a proxy configuration like this (not needed at ESRF):

export http_proxy=http://proxy.site.org:3128

Finally, install pyFAI in the virtualenv after testing it:

pip install .

The latest development version is available by checking out the Git repository:

git clone https://github.com/silx-kit/pyFAI.git
cd pyFAI
pip install .

To enable GPU acceleration in pyFAI, please install pyopencl.

Documentation

Documentation can be built using this command and Sphinx (installed on your computer):

python build-doc.py

Dependencies

Python 3.10 ... 3.14 are well tested and officially supported (thread-free is untested).

For full functionality of pyFAI, the following modules need to be installed:

Those dependencies can simply be installed by:

pip install -r requirements.txt

Ubuntu and Debian-like Linux distributions

On Ubuntu or Debian, the required Python modules for pyFAI can be installed either via the Synaptic Package Manager (under System → Administration) or from the command line using apt-get:

sudo apt-get install pyfai

MacOSX

On macOS, a recent version of Python (≥3.10) must be installed before installing pyFAI. Apple provides only an outdated version of Python 2.7 which is deprecated. To build pyFAI from source, you will also need Xcode, which is available from the Mac App Store. The binary extensions will use only a single core due to the limitation of the compiler from Apple. OpenCL is hence greatly advised on Apple systems. Next, install the missing dependencies using pip:

pip install -r requirements.txt

Windows

On Windows, a recent version of Python (>=3.10) must be installed before pyFAI. The Visual Studio C++ compiler is required when building from source Next, install any missing dependencies using pip:

pip install -r requirements.txt

Getting Help

A mailing-list, pyfai@esrf.fr, is available to get help on the program and how to use it. One needs to subscribe by sending an email to sympa@esrf.fr with the subject "subscribe pyfai". There is also a discussion space at GitHub and an issue tracker where bugs can be reported.

Maintainers

  • Jérôme Kieffer (ESRF)
  • Edgar Gutierrez Fernandez (ESRF)
  • Loïc Huder (ESRF)

Contributors

Thanks to all who have contributed to pyFAI!

Contributors image

Indirect contributors (ideas, ...)

  • Peter Boesecke
  • Manuel Sánchez del Río
  • Thomas Vincent
  • Vicente Armando Solé
  • Brian Pauw
  • Veijo Honkimaki

Release files for pyFAI 2026.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyFAI 2026.9.0
File Size Uploaded
pyfai-2026.9.0.tar.gz 73.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for pyFAI 2026.9.0
File
pyfai-2026.9.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
pyfai-2026.9.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
pyfai-2026.9.0-cp314-cp314-macosx_11_0_x86_64.whl CPython 3.14 CPython 3.14 macOS 11.0+ x86-64 Details
pyfai-2026.9.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
pyfai-2026.9.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pyfai-2026.9.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
pyfai-2026.9.0-cp313-cp313-macosx_11_0_x86_64.whl CPython 3.13 CPython 3.13 macOS 11.0+ x86-64 Details
pyfai-2026.9.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
pyfai-2026.9.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pyfai-2026.9.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
pyfai-2026.9.0-cp312-cp312-macosx_11_0_x86_64.whl CPython 3.12 CPython 3.12 macOS 11.0+ x86-64 Details
pyfai-2026.9.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
pyfai-2026.9.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pyfai-2026.9.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
pyfai-2026.9.0-cp311-cp311-macosx_11_0_x86_64.whl CPython 3.11 CPython 3.11 macOS 11.0+ x86-64 Details
pyfai-2026.9.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
pyfai-2026.9.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pyfai-2026.9.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
pyfai-2026.9.0-cp310-cp310-macosx_11_0_x86_64.whl CPython 3.10 CPython 3.10 macOS 11.0+ x86-64 Details
pyfai-2026.9.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details

Total release size: 194.4 MB

Release files / pyfai-2026.9.0.tar.gz

Download URL pyfai-2026.9.0.tar.gz
Size 73.1 MB
Tags Source
SHA-256 checksum
How to use checksums
a0cfb92208d73143f1ff03cf1183efd95562bca37d73d8af0578ff0b2940cc29
BLAKE2b-256 checksum
How to use checksums
3fa426b0ac293edc05b6f7430e11c8cd7c9b66f611688526bc871eba1c11aa5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp314-cp314-win_amd64.whl

Download URL pyfai-2026.9.0-cp314-cp314-win_amd64.whl
Size 5.6 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
9b41ac91b4908085f437a7a971b9273c4eba82491718dffb4668cde076b9b495
BLAKE2b-256 checksum
How to use checksums
9570518a98d0d7b5da3108485f4f15aacbfbf199d7c079c475d2196440ccaa76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL pyfai-2026.9.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 7.2 MB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a316981b6bc62c25f980a9106650dd57109ba1ff85f796b496d7ba75b54333c4
BLAKE2b-256 checksum
How to use checksums
34c3141c1ea75db4561778729315f592d086429c749e7b833b22b4a3628a97f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp314-cp314-macosx_11_0_x86_64.whl

Download URL pyfai-2026.9.0-cp314-cp314-macosx_11_0_x86_64.whl
Size 5.9 MB
Tags CPython 3.14 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
6a1643b4554253bcca7ef8243de1fd8e92bff211751467ff64085cec094107c1
BLAKE2b-256 checksum
How to use checksums
50a3aaf5b9b4a173355634eaf61c6cec53c6127b5caf25018832ebe4b7d04f5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL pyfai-2026.9.0-cp314-cp314-macosx_11_0_arm64.whl
Size 5.5 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7915ccf344d7f377d1a58e586c21071da5b76927b47c9b834eb7c1ceb0e20dd4
BLAKE2b-256 checksum
How to use checksums
ad4f87034793e3dfafb93217e5ef7d7927e80747b376e51268f482e58774bcc4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp313-cp313-win_amd64.whl

Download URL pyfai-2026.9.0-cp313-cp313-win_amd64.whl
Size 5.5 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
cef051126e7b037fc0e065e0767ca2557b3f7f25d16ab5e745753658e1ab800c
BLAKE2b-256 checksum
How to use checksums
bdbba15a86e880fc4cb4d11c36752945d869a7f50bc5a93dd1823766b7523bca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL pyfai-2026.9.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 7.2 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6522be8245a086e8f490edbb0efa3ead7a5a589dfec0d8220c3fd90b23111b57
BLAKE2b-256 checksum
How to use checksums
c0031a7b6dab835cc0377595be05896ee5256ece965f91d3863cb71d312a6515
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp313-cp313-macosx_11_0_x86_64.whl

Download URL pyfai-2026.9.0-cp313-cp313-macosx_11_0_x86_64.whl
Size 5.9 MB
Tags CPython 3.13 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
55edd5381f5905f64e5d2dbcd9209470e21526593bbdeb9a2534d84f84364372
BLAKE2b-256 checksum
How to use checksums
a1c208ac8d97b971dd2a5429416a8859c150d9cfdf6b2a04bd8226e40755649f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL pyfai-2026.9.0-cp313-cp313-macosx_11_0_arm64.whl
Size 5.5 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
94702360c9f07df8960acc20699db6baee0918dd6ff8ae7a4ffea4c653dee320
BLAKE2b-256 checksum
How to use checksums
c82bb9154f15ff3633c0a45ea4269b1b1c8fae3589ff6639362da8c3209de08f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp312-cp312-win_amd64.whl

Download URL pyfai-2026.9.0-cp312-cp312-win_amd64.whl
Size 5.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
574a1ad5f3f94e09325f0695229ca852db342b325d518ad256db8bd6a68855bf
BLAKE2b-256 checksum
How to use checksums
ebb434654ed087123a33d35269e1ae74d1c1e67599c98cc8ad1f2f1e27bbf680
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL pyfai-2026.9.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 7.2 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
cf45f799b7631c7606da9802809027253a1c4034f5e3f1ca7a288dc87d58215e
BLAKE2b-256 checksum
How to use checksums
f41890344bc8c54370a2001ca6b6af58e20b69ce65a638743d44609e5d2cf6fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp312-cp312-macosx_11_0_x86_64.whl

Download URL pyfai-2026.9.0-cp312-cp312-macosx_11_0_x86_64.whl
Size 5.9 MB
Tags CPython 3.12 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
07efadad48b4c2adf8d558c01e45e27ec1514bed62212090d82b0cd403e3f42f
BLAKE2b-256 checksum
How to use checksums
91721bbc8847c2fb057d4359098ccb807f80e90fa4f36486f8d5b7fbe2de5ec5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL pyfai-2026.9.0-cp312-cp312-macosx_11_0_arm64.whl
Size 5.4 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4256bdfeb7175c811bf8e55a9ff00b9960ed084c5909c07b0433e92ae9926a2e
BLAKE2b-256 checksum
How to use checksums
df2945c76963b87715243e3d20541bb48a2d17ddb16b22fb675905e7bcd559da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp311-cp311-win_amd64.whl

Download URL pyfai-2026.9.0-cp311-cp311-win_amd64.whl
Size 5.7 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
10e64206528e7f6fe15fa9018001dcee9ed0731f92969d2005adc84e040755fd
BLAKE2b-256 checksum
How to use checksums
c4c910e631a0d029c382641bdd1b6006e39ee6c1e4dae8d005865091a2c6f6c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL pyfai-2026.9.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 7.4 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
f1669b670eaee3596bd21ddc9650ec176f026c061cbe16688630a6dcb1b0354b
BLAKE2b-256 checksum
How to use checksums
3334e54bb35127f57ec315541a99ac4fca027e1e733d0bcf1ce9020e91d2ad4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp311-cp311-macosx_11_0_x86_64.whl

Download URL pyfai-2026.9.0-cp311-cp311-macosx_11_0_x86_64.whl
Size 5.9 MB
Tags CPython 3.11 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
5cdc480cc6b8d53d2e43520ab49189a46df0968c37b3bf1842bccd3f4a5db59c
BLAKE2b-256 checksum
How to use checksums
d453f13e9c6c7946bef9b7380f8a38e82b5e72ab86c5fe516c60cd742c284e90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL pyfai-2026.9.0-cp311-cp311-macosx_11_0_arm64.whl
Size 5.5 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
953fb7f7a5b1448e05336276129c3763708420fb9cb384fb75e4f1f383beae7d
BLAKE2b-256 checksum
How to use checksums
66d7129fc663832b236b02e32ef4affc1a8377d68b5006a27e12ed38aaf725e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp310-cp310-win_amd64.whl

Download URL pyfai-2026.9.0-cp310-cp310-win_amd64.whl
Size 5.7 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
3cb3a0881ede5439e5674958f58caea5a4f34ade35826b7712de3ecfc8728a22
BLAKE2b-256 checksum
How to use checksums
3515669040c6dc74494011a754d38a49673f9b7a830a8c22f6b2c93c2533576f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL pyfai-2026.9.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 7.4 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0ab4ddee5a918b50dc246cb6a30001ff3d5dc616998ae39fcd2a69c62829a422
BLAKE2b-256 checksum
How to use checksums
f658eaea9fd3f236c2d4899973c397fe3f653cc12e0eb8752d64afbc3b3f902e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp310-cp310-macosx_11_0_x86_64.whl

Download URL pyfai-2026.9.0-cp310-cp310-macosx_11_0_x86_64.whl
Size 6.0 MB
Tags CPython 3.10 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
76f0bb050887bb9d0711b581bbe08af0854e05a57d34985bea260f6922dc8e97
BLAKE2b-256 checksum
How to use checksums
59e5ecb9a83cca02924dd610a9c2dd4c8c0a51f560098b8bf0afd4e73bd49b2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release files / pyfai-2026.9.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL pyfai-2026.9.0-cp310-cp310-macosx_11_0_arm64.whl
Size 5.6 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a770bf7edbd6c4a6c86a8284e31e845228d129ee1ceb78fc7c0169327658a68a
BLAKE2b-256 checksum
How to use checksums
b4de34086fc310bb48db43a8b7ffb8c15df1550931c7c6b53dc5c594a3ffad06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.0

Release history Release notifications | RSS feed

This release

2026.9.0 This release

21 release files

0.11.0

5 release files

0.10.3

7 release files

0.10.2

5 release files

0.9.2

3 release files

0.8.9

0.8.8

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page