diffraction_peaks — DRIVE pxrd op

• 資料種類:signal × signal → table

• 呼叫: import fullseye as fs; fs.ledger.diffraction_peaks(two_theta, intensity, min_snr=6.0, baseline_window=None, max_peaks=200, noise=None)(要直接呼叫實作,import pxrd; pxrd.diffraction_peaks(two_theta, intensity, min_snr=6.0, baseline_window=None, max_peaks=200, noise=None);從台帳取用則 opsdrive.get("diffraction_peaks"))

用法

從 1 維繞射剖面中擷取峰,以高斯 + 直線的局部擬合給出位置、高度、FWHM 與面積。

步驟: 以視窗 baseline_window [deg] (預設 = 範圍的 4 %)的滾動最小值 → 滾動平均建立背景,在扣除背景後之值的局部極大中,超過 min_snr × 雜訊者作為候選(雜訊取間隔 1〜8 差分的 MAD 的最大值。也可向 noise 傳入

一個數,或像 azimuthal_integrate 的 sigma 那樣逐 bin 的陣列 —— 要避免把中心附近或角落等像素較少的 bin 的擾動誤認為峰,就需要陣列)。各候選的半高寬不是目測,而是由半高交點估計,在於與相鄰候選的中點處截斷的視窗內用 scipy.optimize.least_squares 擬合高斯 + 直線。重疊的峰會因視窗被截斷而產生偏差(若要分離,用 phase_fractions)。

回傳值(dict): two_theta、height、fwhm [deg]、area、snr、fit_ok(擬合是否收斂並落在視窗內)、noise、baseline(與格子等長)。若無峰則為長度 0 的陣列(空 = 不是失敗)。

Raises ValueError: 長度不一致、非有限、2θ 不遞增、min_snr <= 0。

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• poc_pxrd_phase_peel — py -3.11 examples/poc_pxrd_phase_peel.py

型別可銜接的下一個運算子(可接受 table 作為輸入)

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

同類別(pxrd)

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


*Provenance: pxrd.py — DRIVE 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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