Skip to content

Latest commit

 

History

History
80 lines (58 loc) · 3.39 KB

File metadata and controls

80 lines (58 loc) · 3.39 KB

pyFAIPseudoCounterController

A PseudoCounter that uses pyFAI for azimuthal integration/ reordering of 2D scattering images. Depending on the image size, this can be a relatively resource-hungry operation, which is why this PseudoCounter relies on pyFAI using the "CSR" algorithm for the heavy lifting. Refer to the pyFAI documentaion on performance considerations.

The PseudoCounter has 4 axes:

  • q: spectrum of momentum transfer coordinates (unit: 1/nm)
  • chi: spectrum of azimuthal angle coordinates (unit: degree)
  • I1d: spectrum of azimuthally integrated intensities as function of q
  • I2d: image of reordered intensities as function of q and chi

The PseudoCounter axes can directly be plotted, e.g. in taurus, lavue, ...

dummy detector image I(x, y) reordered image I(q, chi) 1D intensity I(q)

Requirements

  • pyFAI, including its optional pyopencl dependency

Creating the PseudoCounters

Here is an example spock command to create the PseudoCounter with the name "faictrl" using a 2D ExpChannel called "ccd" as image source:

defctrl FAIPseudoCounterController faictrl image=ccd q=aiQ chi=aiChi I1d=ai1d I2d=ai2d

Configuring the azimuthal integration

The PseudoCounter controller has attributes named similarly to the pyFAI AzimuthalIntegrator parameters. These can be set directly:

To set the wavelength used:

faictrl.wavelength = 1.59e-9

Alternatively, the energy (in keV) can be set:

faictrl.energy = 0.779

Other parameters relate to the sample/detector geometry. The detector class used here is a simple contiguous detector with rectangular pixels. Check the pyFAI documentation for details.

List of parameters/ controller attributes

attribute unit description
dist m distance sample - detector plane (orthogonal distance, not along the beam)
npt_q none number of points in radial (q) direction
npt_chi none number of points in azimuthal (chi) direction
wavelength m wavelength used - will calculate photon energy accordingly
energy keV photon energy - will calculate wavelength accordingly
pixel1 m pixel size of first detector dimension
pixel2 m pixel size of second detector dimension
poni1 m coordinate of the point of normal incidence along the detector's first dimension (ususally vertical axis)
poni2 m coordinate of the point of normal incidence along the detector's second dimension (ususally horizontal axis)
rot1 rad First rotation from sample ref to detector's ref
rot2 rad Second rotation from sample ref to detector's ref
rot3 rad Third rotation from sample ref to detector's ref

Sample/ detector geometry illustration from pyfai.readthedocs.io (source: pyfai documentation)

Configuration macro

Use the FAIconfig macro to print out the current pyFAI configuration:

Door_test_1 [91]: FAIconfig faictrl
FAI configuration:
wavelength  =  9.998725680096796e-10
    energy  =        1.24
      dist  =         1.0
     npt_q  =         100
   npt_chi  =          36
     poni1  =         0.0
     poni2  =         0.0
      rot1  =         0.0
      rot2  =         0.0
      rot3  =         0.0
    pixel1  =       1e-05
    pixel2  =       1e-05