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.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.