How silx-kit/pyfai works
pyFAI is a Python library and toolset for azimuthal integration of diffraction images, detector/geometry calibration, and related image processing. The main workflow is to provide an image and experimental geometry, preprocess pixel data, integrate it with a selected numerical method, and obtain radial or 2D results; calibration tools establish the geometry from diffraction rings. The README documents histogram and sparse-matrix methods, pixel splitting, and optional OpenCL acceleration. The graph uses the README and SOURCE INDEX references; many application and GUI internals were not sampled, so uncertain links are omitted.
Main entry points: worker.py Processing worker · load_engines.py Engine selection · core.py Geometry model · integration_config.py Integration config
Components 24
User workflows
- Integration tools
src/pyFAI/app/integrate.py - Calibration tools
src/pyFAI/app/calib.py - Calibration GUI
src/pyFAI/gui/CalibrationWindow.py - Processing worker
src/pyFAI/worker.py
Geometry and detectors
- Geometry model
src/pyFAI/geometry/core.py - Detector models
src/pyFAI/detectors/_common.py - Detector sensors
src/pyFAI/detectors/sensors.py - Geometry files
src/pyFAI/io/ponifile.py
Integration runtime
- Azimuthal integrator
src/pyFAI/integrator/azimuthal.py - Engine selection
src/pyFAI/integrator/load_engines.py - Method registry
src/pyFAI/method_registry.py - Pixel preprocessing
src/pyFAI/engines/preproc.py - Sparse engines
src/pyFAI/engines/CSR_engine.py - Histogram engine
src/pyFAI/engines/histogram_engine.py - OpenCL engines
src/pyFAI/opencl/azim_csr.py
Data and utilities
- Integration results
src/pyFAI/containers.py - Integration config
src/pyFAI/io/integration_config.py - JSON support
src/pyFAI/io/_json.py - Image averaging
src/pyFAI/average.py - Coordinate units
src/pyFAI/units.py - Numerical utilities
src/pyFAI/utils/mathutil.py - String utilities
src/pyFAI/utils/stringutil.py - Shared decorators
src/pyFAI/utils/decorators.py
Other components
- Diffraction user
Connections 29
- Diffraction user → Integration tools: provides images
README.md - Diffraction user → Calibration tools: starts calibration
README.md - Diffraction user → Calibration GUI: uses calibration
- Integration tools → Processing worker: processes data
- Calibration tools → Geometry model: fits geometry
- Processing worker → Azimuthal integrator: invokes integration
src/pyFAI/worker.py - Processing worker → Geometry files: loads geometry
src/pyFAI/worker.py - Processing worker → Integration config: loads settings
src/pyFAI/worker.py - Processing worker → Pixel preprocessing: uses preprocessing
src/pyFAI/worker.py - Azimuthal integrator → Engine selection: loads engines
- Engine selection → Method registry: registers methods
src/pyFAI/integrator/load_engines.py - Engine selection → Sparse engines: selects sparse
src/pyFAI/integrator/load_engines.py - Engine selection → Histogram engine: selects histogram
src/pyFAI/integrator/load_engines.py - Engine selection → OpenCL engines: selects OpenCL
src/pyFAI/integrator/load_engines.py - Processing worker → Integration results: returns results
src/pyFAI/worker.py - Geometry files → Detector models: resolves detectors
src/pyFAI/io/ponifile.py - Geometry model → Detector models: uses detector models
src/pyFAI/geometry/core.py - Geometry model → Coordinate units: uses units
src/pyFAI/geometry/core.py - Geometry model → Detector sensors: uses sensor models
src/pyFAI/geometry/core.py - Integration config → Geometry files: parses geometry
src/pyFAI/io/integration_config.py - Integration config → Method registry: uses method registry
src/pyFAI/io/integration_config.py - Integration config → JSON support: uses JSON support
src/pyFAI/io/integration_config.py - Sparse engines → Pixel preprocessing: uses preprocessing
src/pyFAI/engines/CSR_engine.py - Sparse engines → Integration results: builds results
src/pyFAI/engines/CSR_engine.py - Processing worker → Image averaging: uses averaging
src/pyFAI/worker.py - Processing worker → Coordinate units: uses units
src/pyFAI/worker.py - Processing worker → Numerical utilities: uses math utilities
src/pyFAI/worker.py - Processing worker → Shared decorators: uses decorators
src/pyFAI/worker.py - Detector models → String utilities: uses string utilities
src/pyFAI/detectors/_common.py