azimuthal_integrate — DRIVE pxrd op

• Data kinds: image2d × table → table

• Call: import fullseye as fs; fs.ledger.azimuthal_integrate(image, geometry, n_bins=None, two_theta_range=None, mask=None, solid_angle=True, polarization=None, chi_range=None, supersample=2) (to call the implementation directly, import pxrd; pxrd.azimuthal_integrate(image, geometry, n_bins=None, two_theta_range=None, mask=None, solid_angle=True, polarization=None, chi_range=None, supersample=2); from the registry, opsdrive.get("azimuthal_integrate"))

Usage

Reduces a 2-D detector image to a 1-D profile in 2θ (azimuthal integration, with mask and corrections).

Each pixel is split into supersample² sub-pixels (value divided equally), distributed into bins by the 2θ at the sub-pixel centre, and averaged per bin (reduces stripes caused by the coarseness of pixel splitting). solid_angle=True divides out the relative solid angle, and if polarization is a number (0 = unpolarised, 1 = horizontally polarised) the polarisation factor, before averaging. mask excludes pixels that are True (bool of the same shape). chi_range = (χ₀, χ₁) [deg] integrates only a sector (χ is the (−180, 180] of atan2). Non-finite pixels are rejected unless they are in the mask.

The default for n_bins is the number giving a width of half the angle of one pixel (0.5·pixel/distance [rad]). Return value (dict): two_theta (bin centres [deg]), intensity (mean), count (sum of sub-pixel weights; bins with 0 have intensity nan —— not filled), sigma (standard error of the mean assuming Poisson).

Raises ValueError: not 2-D, mask shape mismatch, non-finite pixels, empty range, empty sector, number of bins < 8.

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

• poc_pxrd_phase_peel — py -3.11 examples/poc_pxrd_phase_peel.py

Ops the type connects to (they accept table as input)

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

Same category (pxrd)

cif_read · cubic_prototype · powder_reflections · scherrer_size · debye_ring_image · detector_two_theta · detector_calibrate · diffraction_peaks


*Provenance: pxrd.py — DRIVE operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.