Skip to content

2025.01: 31/01/2025

Latest
Compare
Choose a tag to compare
@kif kif released this 31 Jan 12:19
· 12 commits to main since this release
v2025.01
  • Refactoring of the integrator classes:
    - Azimuthal integrator moved to pyFAI.integrator.azimuthal
    - Most common code into pyFAI.integrator.common (including a lot of deprecated stuff)
    - New sub-module dedicated to fiber/surface diffraction (pyFAI.integrator.fiber)
    - Engine loading is now in pyFAI.integrator.load_engines
    - Those are all (still) sub-classes of each-other but it will change in the futrure where they will need to be promoted to transfer all the geometry and enable other's class feature. For example: ai.promote("FiberIntegrator") or ai.promote("GeometryRefinement")
  • Refactoring of the handling of the serialization of the pyFAI-integrate GUI and pyFAI.worker.Worker into a JSON file.
    - Use a dataclass defined in pyFAI.io.integration_config.WorkerConfig to manage all parameters to configure the Worker
    - New format version 5, enables the handling of sigma-clip & median filtering
    - Provides better compatibility with Ewoks
  • Median filtering for 1D filtering:
    - includes quantile average
    - available in Python, Cython & OpenCL
    - Performances charts for sigma-clip & median filter.
  • New FiberIntegrator class for grazing-incidence/fiber scattering data (former fiber/gi methods in a new API)
    - FiberIntegrator located in pyFAI.integrator.fiber
    - Usage tutorial in doc/source/usage/tutorial/FiberGrazingIncidence.ipynb or https://www.silx.org/doc/pyFAI/dev/usage/tutorial/FiberGrazingIncidence.html
    - integrate2d_grazing_incidence method to display qIP - qOOP patterns. New API with minimum inputs
    - integrate1d_grazing_incidence method to perform qIP or qOOP slices. New API with minimum inputs
    - Corrected equations to handle incident_angle and tilt_angle parameters
    - 8 possible sample_orientation (1-8), to rotate and flip the qIP-qOOP maps (or other units)
    - integrate2d_polar to represent the polar angle (arctan(qOOP/qIP)) versus the q modulus
    - integrate1d_polar to integrate the polar angle map (vertical or horizontal)
    - integrate2d_exitangles to reshape the diffraction pattern into horizontal and vertical exit angles, with the origin in the sample horizon
    - integrate1d_exitangles to perform an integration across one of the exit angles
    - Faster calculation with numexpr package formulas
  • New MultiGeometryFiber in pyFAI.multi_geometry
    - Analog to MultiGeometry class.
    - Instead of taking a list of AzimuthalIntegrators, it takes a list of FiberIntegrators
    - Access to integrate1d and integrate2d grazing_incidence/fiber methods
    - New tutorial of usage in doc/source/usage/tutorial/MultiGeometry/MultiGeometryFiber.ipynb`
  • Tool to rebin 2d-result into 1d-result (pyFAI.containers.rebin1d)
  • pyFAI-diffmap-view now displays the motor position in the the map.
  • Change documentation template to pydata
  • Several bug-fixes & better code coverage
  • Supports python 3.9 to 3.13. The GIL-free version on python 3.13 is untested.
  • Tested by the developers on Windows (amd64), linux (amd64, arm64 and ppc64le) and MacOS (amd64 and arm64). Thanks to Debian for extending this matrix.
  • More than 500 commits, by Thomas Vincent, Loic Huder, Edgar Gutierrez Fernandez and Jérôme Kieffer