Skip to content

Releases: silx-kit/pyFAI

PyFAI-2024.09

13 Sep 07:54
@kif kif
v2024.09
1e815a2
Compare
Choose a tag to compare

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

Full Changelog: v2024.05...v2024.09

pyFAI-2024.05

21 May 17:04
@kif kif
v2024.05
dfce87a
Compare
Choose a tag to compare
  • 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 to cibuildwheels
    • Windows wheels are build with openmp disabled (?)

pyFAI-2024.02

01 Feb 16:43
@kif kif
v2024.02
Compare
Choose a tag to compare
  • 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

18 Jan 11:08
@kif kif
v2024.01
2938119
Compare
Choose a tag to compare
  • 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.

pyFAI-2023.09

08 Sep 15:13
@kif kif
v2023.09
Compare
Choose a tag to compare
  • 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

30 Aug 14:02
@kif kif
v2023.08
Compare
Choose a tag to compare
  • 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

16 May 15:22
@kif kif
v2023.05.0
Compare
Choose a tag to compare
  • 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

17 Mar 18:08
@kif kif
v2023.3
Compare
Choose a tag to compare
  • 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

27 Feb 14:06
@kif kif
v2023.2
Compare
Choose a tag to compare
  • Core:
    • sigma_clip_ng is not the default sigma_clip
    • expose documentation for sigma_clip_legacy in addition to sigma_clip_ng
    • Worker can now use sigma_clip_legacy in addition to sigma_clip_ng, integrate1d or integrate2d
    • 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

16 Jan 10:25
@kif kif
v2023.1
Compare
Choose a tag to compare

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 to meson-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
  • 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.