unexplained_peaks — DRIVE pxrd op

• Data kinds: table → table

• Call: import fullseye as fs; fs.ledger.unexplained_peaks(fit_result, intensity=None, min_snr=6.0, index=True, noise=None, known_ratio=0.25, model_error=0.1) (to call the implementation directly, import pxrd; pxrd.unexplained_peaks(fit_result, intensity=None, min_snr=6.0, index=True, noise=None, known_ratio=0.25, model_error=0.1); from the registry, opsdrive.get("unexplained_peaks"))

Usage

Extracts, from the residual of the phase-fraction fit, the peaks that no phase in the dictionary can explain (clues to an unknown phase).

Applies diffraction_peaks to the residual (fit_result of residual, or intensity − fit) and keeps only positive peaks. A residual peak sitting on a strong line of a known phase (height less than known_ratio times the known-phase model at that position) is likely a remnant of width or shape mismatch, so it is marked near_known=True and excluded from indexing (returned, not deleted). If 3 or more

remain, cubic_index attempts cubic indexing (index=True, up to 1/3 outliers allowed). If the lattice of a known phase is off, the residual shows "positive-negative pairs" that become false peaks — in that case use lattice_tolerance of phase_fractions first. The proper thing is to pass the noise of azimuthal_integrate as sigma (if absent, it is estimated from the residual's MAD). The noise used to judge peaks is sqrt(noise² + (model_error × 既知相の模型)²) — with high counts the Poisson σ is small, and slight shape mismatch of a strong known line (remnant of approximating the box-shaped pixel spread with a Gaussian; rwp 2 to 4 % on synthetic images) looks like a "peak" of thousands of σ, so the relative error of the model itself is put into the noise floor.

Returns (dict): two_theta / d [Å] / height / fwhm / snr / near_known (bool) / index (result of cubic_index or None).

Raises ValueError: fit_result not in the form of phase_fractions, length mismatch.

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 · azimuthal_integrate


*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.