Replies: 1 comment
-
|
Dear Hiroki, The idea looks great. I did not use a lab source for a couple of decades but I understand the appeal for it. Technically, the place is ready for hosting a I helped Tilman Grünwald during his PhD thesis to setup a But if your detector is not energy resolved, then you need to split your input image, let's call it
As you noticed, this issue is usually addressed in Rietveld programs because it is easier to tackle it there ... because it is not trivial to address it directly. Implementing such feature in the 2D image would be much more rewarding. I believe this is a nice subject for a master thesis in Mathematics. Maybe one could even train a convolutional neural network to do it, maybe in an unsupervised manner. Cheers, Jérôme |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi Jérôme and contributors,
pyFAI currently assumes a monochromatic X-ray source and accepts a single wavelength parameter. Laboratory X-ray sources, however, emit characteristic radiation dominated by two closely spaced lines, Kα1 and Kα2, with an intensity ratio of approximately 2:1. When these two wavelengths are integrated assuming a single effective wavelength, peaks at high 2θ become asymmetric and broadened, degrading the quality of downstream analysis (peak fitting, Rietveld refinement, PDF extraction).
Thus, I propose a lightweight, backward-compatible mechanism for pyFAI to handle dual-wavelength lab-source data natively, either as a new integrator class or as an extension of the existing MultiGeometry workflow.
Motivation
While pyFAI is primarily designed for synchrotron use, its fast azimuthal integration is increasingly attractive for laboratory 2D detectors (e.g., Eiger, Pilatus, Dectris HPC detectors used on Rigaku, Bruker, or custom high-pressure DAC setups). In these settings:
A native, first-class solution in pyFAI would remove this friction and make pyFAI the natural choice for lab-source 2D diffraction data reduction.
This need arises in our high-pressure X-ray diffraction experiments using laboratory sources. I routinely collect powder diffraction data with Mo Kα radiation on an R-AXIS IV++ imaging plate detector, where pyFAI's integration speed and calibration tools are attractive but Kα2 handling is missing. cf. I also use IPAnalyzer, where we find the same issue.
Proposed approach
I briefly summarise my ideas on how to implement this feature.
We should extend AzimuthalIntegrator (or introduce a thin subclass) to accept a list of (wavelength, weight) pairs. The integration would be performed independently for each wavelength component and the results summed onto a common radial grid with the supplied weights. This is conceptually identical to what MultiGeometry already does across detector positions — the same logic applies to multiple wavelengths on a single detector.
We can also make something like:
Also, it is useful to have some common targets, such as:
Backward compatibility
It is possible to make this update with the existing wavelength scalar parameter / current APIs unchanged. The new wavelengths keyword would be optional and ignored when not supplied. No changes to the .poni file format are required for the initial implementation (the dominant Kα1 wavelength continues to be stored in the poni file; the Kα2 component is supplied at integration time).
Discussion
MultiGeometry already handles multiple geometries with a shared output space — the proposed dual-wavelength integration is a special case of this where geometry is identical but wavelength differs. A lightweight wrapper around MultiGeometry may be sufficient for a first implementation. The unit="q_A^-1" case requires interpolation to a common q grid and is slightly more complex; a first implementation could target 2th_deg only.
Hiroki Kobayashi
The University of Tokyo, hiroki@eqchem.s.u-tokyo.ac.jp
Beta Was this translation helpful? Give feedback.
All reactions