Software library for X-Ray data analysis
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)
- 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 :
- Unofficial Debian8 packages are available at http://www.silx.org/pub/debian/
- CentOS 7 rpm packages are provided by Max IV at the following url: http://pubrepo.maxiv.lu.se/rpm/el7/x86_64/
- Fedora 23 rpm packages are provided by Max IV at http://pubrepo.maxiv.lu.se/rpm/fc23/x86_64/
- Arch Linux (AUR) packages are also available: https://aur.archlinux.org/packages/python-silx
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.4, 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 https://github.com/silx-kit/silx.git cd silx pip install . [--user]
The GUI widgets of the silx package depend on the following extra packages:
- A Qt binding: PyQt5, PyQt4 (using API version 2) or PySide
- matplotlib for the silx.gui.plot package
- PyOpenGL for the silx.gui.plot3d package
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 http://www.silx.org/doc/silx/latest/
Documentation of previous releases and nightly build is available at http://www.silx.org/doc/silx/
To build the documentation from the source (requires Sphinx), run:
python setup.py build build_doc
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.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.