diffraction_peaks — DRIVE pxrd op

• Datenarten: signal × signal → table

• Aufruf: import fullseye as fs; fs.ledger.diffraction_peaks(two_theta, intensity, min_snr=6.0, baseline_window=None, max_peaks=200, noise=None) (die Implementierung direkt: import pxrd; pxrd.diffraction_peaks(two_theta, intensity, min_snr=6.0, baseline_window=None, max_peaks=200, noise=None); aus dem Register: opsdrive.get("diffraction_peaks"))

Verwendung

Findet Peaks in einem 1-D-Beugungsprofil und bestimmt Lage, Höhe, FWHM und Fläche durch eine lokale Anpassung Gauß + Gerade.

Ablauf: Hintergrund aus gleitendem Minimum über ein Fenster baseline_window [deg] (Standard = 4 % des Bereichs) → gleitendem Mittel; unter den lokalen Maxima der hintergrundbereinigten Werte werden die, die min_snr × Rauschen übersteigen, Kandidaten (Rauschen = Maximum der MADs der Differenzen mit Abstand 1–8. An noise darf eine Zahl übergeben werden oder ein Array pro Bin wie sigma von azimuthal_integrate —— ein Array ist nötig, damit Schwankungen in Bins mit wenigen Pixeln, etwa nahe dem Zentrum oder in den Ecken, nicht für Peaks gehalten werden). Statt die Halbwertsbreite jedes Kandidaten mit dem Auge zu messen, wird sie aus den Schnittpunkten auf halber Höhe geschätzt, und in einem an den Mittelpunkten zu den Nachbarkandidaten geschnittenen Fenster wird Gauß + Gerade mit scipy.optimize.least_squares angepasst. Überlappende Peaks werden verzerrt, weil das Fenster geschnitten wird (zum Trennen phase_fractions).

Rückgabewert (dict): two_theta, height, fwhm [deg], area, snr, fit_ok (ob die Anpassung konvergierte und im Fenster blieb), noise, baseline (gleiche Länge wie das Gitter). Ohne Peaks Arrays der Länge 0 (leer = kein Fehlschlag).

Raises ValueError: Längen passen nicht, nicht endlich, 2θ nicht steigend, min_snr <= 0.

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

• poc_pxrd_phase_peel — py -3.11 examples/poc_pxrd_phase_peel.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

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

Gleiche Kategorie (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. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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