Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Software library for X-Ray data analysis

Project Description

The silx project aims at providing a collection of Python packages to support the development of data assessment, reduction and analysis applications at synchrotron radiation facilities. It aims at providing reading/writing different file formats, data reduction routines and a set of Qt widgets to browse and visualize data.

The current version provides:

  • reading HDF5 file format (with support of SPEC file format and FabIO images)
  • histogramming
  • fitting
  • 1D and 2D visualization widgets using multiple backends (matplotlib or OpenGL)
  • an OpenGL-based widget to display 3D scalar field with isosurface and cutting plane
  • an image plot widget with a set of associated tools
  • a unified browser for HDF5, SPEC and image file formats supporting inspection and visualization of n-dimensional datasets.
  • a unified viewer (silx view filename) for HDF5, SPEC and image file formats
  • a unified converter to HDF5 format (silx convert filename)
  • median filters on images (C and OpenCL implementations)
  • image alignement (sift - OpenCL implementation)
  • filtered backprojection and forward projection for tomography


To install silx, run:

pip install silx

Or with Anaconda on Linux and MacOS:

conda install silx -c conda-forge

To install silx locally, run:

pip install silx --user

Unofficial packages for different distributions are available :

Beside this, we provide a certain number of wheels (pre-compiled binary packages) to be installed onto a pre-existing Python installation:

  • On Windows, binary wheels are available for Python 2.7, 3.5 and 3.6.
  • On MacOS, binary wheels are available for Python 2.7, 3.5 and 3.6.
  • On Linux, manylinux1 binary wheels are available for Python 2.7, 3.4, 3.5 and 3.6.

Those builds are made from “up-date” systems at the time of the release, i.e. they use the latest stable version of numpy (and cython). Hence your system should use a fairly recent version of numpy to be compatible with silx. This can be achieved simply by:

pip install numpy --upgrade

The latest development version can be obtained from the git repository:

git clone
cd silx
pip install . [--user]


The GUI widgets of the silx package depend on the following extra packages:

Most modules and functions dealing with HDF5 input/output depend on:

Parallel algorithms depend on:

The console widgets depend on:

Supported platforms: Linux, Windows, Mac OS X.


Documentation of latest release is available at

Documentation of previous releases and nightly build is available at

To build the documentation from the source (requires Sphinx), run:

python build build_doc


  • Travis CI status:
  • Appveyor CI status:

To run the tests from the python interpreter, run:

>>> import silx.test
>>> silx.test.run_tests()

To run the tests, from the source directory, run:



Some examples of sample code using silx are provided with the silx documentation.


The source code of silx is licensed under the MIT license. See the LICENSE and copyright files for details.


silx releases can be cited by their DOI on Zenodo:

Release History

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting