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 のようなビンごとの配列を渡してもよい —— 中心の近くや隅のように画素の少ないビンの揺れを山と取り違えないためには配列が要る)。各候補の半値幅を目で測る代わりに半値の交点で見積もり、隣の候補との中点で切った窓でガウス + 直線を 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。

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL 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 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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