Releases: silx-kit/pyFAI
Releases · silx-kit/pyFAI
PyFAI-2024.09
What's Changed
- New tutorials:
- On flatfield calculation from several detector position (ID31)
- On discarded pixels when using sigma-clipping (ID15a)
- New feature in pilx: the tool to view diffraction map
- Fix/unfix curves
- Colors improved
- Motor position can ge registered and displayed along axis
- Other new feature:
- Expose orientation in calib2 (excluding Nexus-detectors)
- Extra comments in PONI-file like the calibration file
- Sigma-clipping in pure cython with hybrid error-model
- New calibrant (Lysozyme for MX) & integration into calib2
- Engineering notation when printing detector
- New JSON format for integration configuration (backward compatible)
- Import CrystFEL geom-file to generate a detector + geometry
- GIWAXS and sigma-clip impose no pixel splitting
- Sigma-clipping is possible from the GUI and via config files
- Peakfinding: discard peaks with masked pixels in the local region
- New detector: Jungfrau 1M (ID09)
- Bug fixed:
- Absorption kwarg was missing in sigma-clip
- Close HDF5 files ASAP (risk of hitting the max number of file open)
- Bug in medfilt (empty ensemble)
- Several bugs fixed in worker (heavily used by ewoks)
- Correct some tutorials for typos
- Orientation of interate2d results legacy vs ng
- Compatibility with Numpy2
- Compatibility with Eiger2+Lima2 multi-threshold files
- Compatibility with GCC14, discarded some deprecated code
- Validated with Python 3.8-3.12
New Contributors
- @pierrepaleo made their first contribution in #2207
- @mjdiff made their first contribution in #2239
- @jacobfilik made their first contribution in #2243
Full Changelog: v2024.05...v2024.09
pyFAI-2024.05
- Implemented unweighted average for 2D integration
- Integration engines now handle the boolean 'weighted_average' to switch to unweighted mean, similar to legacy methods
- Implementation of pilx (pyFAI-diffmap-view command): interactive viewer for pyFAI-diffmap files (thanks Loic Huder)
- Creation of a RingExtraction class based on multi-threading (thanks Emily Massahud)
- Flat-field and dark current corrections for pyFAI-calib2
- Tunable units and integration methods for fiber/grazing-incidence scattering
- Fix several bugs related to pyFAI-diffmap GUI/no-GUI options
- Compatibility with numpy2
- Fix numerical precision issue (spotted on MacOS/arm64)
- Build system moved from
bob
tocibuildwheels
- Windows wheels are build with openmp disabled (?)
pyFAI-2024.02
- Include grazing-incidence capabilities + tutorial (thanks Edgar)
- Fix segmentation-fault in calib2 application #2047 (thanks Thomas & Edgar)
- Use the dynamic mask to mask-out dead pixels in Eiger images in calib2
- Extend Poisson+azimuthal uncertainties to all Cython integrators (+ non regression tests)
- Support for Python 3.7-3.12 & requires silx v2
pyFAI-2024.01
- Possibility to define the detector orientation:
- It is the position of the origin of the detector at any of the 4 corner of the image
- Uses the EXIF nomenclature where pyFAI's (default) orientation is tagged 3
- Offers compatibility with calibration made by Diotas (where orientation=2 since images are flipped)
- Expose the feature in the calib2 GUI for custom detectors.
- Tutorial on the usage
- New sub-version of the PoniFile API (2.1) for this feature
- Expose the number of corners of a detector pixel (feature unused for now)
- Refactor pyFAI-benchmark tool with better looking reults (Thanks Edgar)
- Possibility to integrate in 2D with any second dimension unit:
- No more limited to the azimuthal angle chi
- Several new units have been added
- Offers the qx/qy integration as example
- Support for Detris Pilatus4 detector both with Si and CdTe sensors (thanks to Max Burian)
- Support XRDML formt (compatibility with MAUD software)
- Multigeometry gains a reset() method to free some memory with optimized garbage collection.
- Support pathlib when reading-PONI files
- Change in the build system:
- Drop of setup.py the build system based on distutils/numpy.distutils/setuptools
- Enforce the use of meson-python
- Move the sources of the code into src directory
- Support for Python 3.7-3.12 (requires silx v2 for 3.12) + Provide debian packages for debian12 but ubuntu 20.04 is too old and lack meson-python
- Facts and figures:
- 600+ commits; 120 pull-requests
*with the contribution of:
Edgar Gutierrez Fernandez
Jérôme Kieffer.
- 600+ commits; 120 pull-requests
pyFAI-2023.09
- Bug fix release over 2023.08
- Fix calibrant selection in calib2 (Thanks Valentin)
- Centralized control of Random Number Generator for tests, to make non-regression test more consistent for CI.
- Correct behaviour of dynamic mask (was causing systematic crashes)
- Correct spelling of several messages.
- Compatibility with matplotlib 3.7
- New application icon and launcher under linux
- Updated notebook (addresses API changes)
pyFAI-2023.08
- Minor release, mostly bug-fixes. 87 commits.
- fix malformed headers in 1D ASCII export
- Debian packaging without setup.py (at all)
- Fix cache invalidation issue for polarization in geometry
- More compact (+scrollable) calibrant widget in
Calib2
(Contribution from Valentin Valls) - Compatibility with PyQt6 and PySide6 bacckends (Contribution from malte-storm)
- Compatibility with elder Matplotlib (<3.2)
- Fix reproducibility issue with no-split sparse matrix multiplication (all 3)
- Lower memory consumption of hexagonal detector instantiation.
- Enforce the usage of the
detector_factory
.Detector(**config)
stops working.
v2023.05.0
- New detector: Jungfrau 8M used at SwissFEL
- new method in
Geometry
to guess the number of bin (and avoid oversampling) - new method in
AzimuthalIntegrator
to guess the polarization factor - CSC-integrators (1D + 2D) implemented in pure python using scipy.sparse
- Update documentation
- Minor correction (remove debugging)
- Packaging for debian12 using meson-python
pyFAI v2023.3
- Rework all 2D integrator to propagate variance, expose standard deviation and standard error of the mean.
- Support all version of python between 3.7 and 3.11
- Support Cython 3.0b1 (with performance degradation) in addition of cython 0.29.31+
pyFAI 2023.2
- Core:
sigma_clip_ng
is not the defaultsigma_clip
- expose documentation for
sigma_clip_legacy
in addition tosigma_clip_ng
Worker
can now usesigma_clip_legacy
in addition tosigma_clip_ng
,integrate1d
orintegrate2d
- New calibrant: Vanadinite (used in high-pressure, often as single crystal)
- GUI:
- Fix labels on axes for some rarely used units
- refactor IntegrationMethodDialog and share the IntegrationMethodTabs with pyFAI-calib2
- Test:
- silent some noisy test (OpenCL on windows)
pyFAI 2023.1
First stable version of pyFAI: v2023.1.
Sources and binary wheels can be found at: https://pypi.org/project/pyFAI/
and at: https://github.com/silx-kit/pyFAI/releases/tag/v2023.1
One of a few ways to install this release with pip:
pip install pyFAI==2023.1.0
Release notes and important changes since 0.21:
- Developer and packager tools:
- Switch build system from
numpy.distutils
tomeson-python
- Keep the former
setup.py
for compatibility reasons: it will be removed in a future release - Drop Python 3.6 (default parameters in namedtuple feature used)
- Require silx 1.1 (for OpenCL), scipy and matplotlib
- Switch build system from
- GUI side:
- several minor improvements in pyFAI-calib2
- Fixed calibration in jupyter-lab
- Core improvements:
- Refactoring of the Geometry class
- Geometry pseudo-inversion optimization
- Improved support from Medipix-based Lambda-detectors
- New detectors from Dectris (Pilatus 900k and Eiger 250k)
- Support Nexus format in output: NXmonpd and NXcansas
- Single-threaded CSC sparse matrix multiplication engine
- Improved uncertainty propagation:
- Refactor error model management (uses enum)
- Hybrid error model (azimuthal for sigma-clipping but reports Poissonian noise)
- Export peakfinder data to the CXI format (used by CrystFEL)
- Improvement in the doc:
- Update installation instructions
- Multi-threaded integration tutorial
- GPU implementation tutorial
- Facts and figures:
- 400+ commits, 100 PR
+with the contribution of:
Clemens Prescher,
Elena Pascal,
Jérôme Kieffer,
Malte Storm,
Marco Cammarata,
Michael Hudson-Doyle,
Picca Frédéric-Emmanuel,
Rodrigo Telles,
Thomas A Caswell,
Tommaso Vinci,
Valentin Valls,
Wout de Nolf.
- 400+ commits, 100 PR