powder_reflections — DRIVE pxrd op

• Data kinds: table × scalar → table

• Call: import fullseye as fs; fs.ledger.powder_reflections(phase, wavelength, two_theta_max=90.0, lorentz='powder', lattice_scale=1.0, include_extinct=False, rel_cutoff=1e-10) (to call the implementation directly, import pxrd; pxrd.powder_reflections(phase, wavelength, two_theta_max=90.0, lorentz='powder', lattice_scale=1.0, include_extinct=False, rel_cutoff=1e-10); from the registry, opsdrive.get("powder_reflections"))

Usage

List of the powder reflections of a phase: interplanar spacing d, Bragg 2θ, multiplicity, |F|², intensity (with the Lorentz factor, no polarization).

Enumerate all (h, k, l) up to 2θ <= two_theta_max, compute the structure factor F = Σ occ f₀(s) exp(−B s²) exp(2πi h·x), and merge reflections with the same d and the same |F|² into one (multiplicity m). In a powder, reflections with the same d cannot be distinguished, so families with the same d but different |F|² (such as 333 and 511 in cubic crystals) remain separate rows lined up at the same 2θ. lattice_scale scales all lattice constants by that factor (simulating thermal expansion or solid solution; used by the lattice refinement of phase_fractions). With include_extinct=True, reflections below rel_cutoff times the maximum |F|² (extinct ones) are also kept (marked extinct=True). Intensity = m |F|² L(2θ) (lorentz: "powder" = 1/(sin² θ cos θ), "none"). Polarisation is not included, on the assumption that azimuthal_integrate divides it out.

Return value (dict): hkl (representative, (n, 3) int), d [Å], two_theta [deg], multiplicity, F2, intensity, extinct (bool), in ascending order of 2θ. name, volume, density are also copied.

Raises ValueError: not in phase form, non-positive wavelength, two_theta_max outside (0, 180), misspelled Lorentz.

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 · scherrer_size · debye_ring_image · detector_two_theta · detector_calibrate · azimuthal_integrate · 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.