pxrd op• 資料種類:image2d × signal × table → table
• 呼叫: import fullseye as fs; fs.ledger.detector_calibrate(image, d_spacings, geometry_guess, n_azimuth=180, fit_tilt=True, min_rings=2)(要直接呼叫實作,import pxrd; pxrd.detector_calibrate(image, d_spacings, geometry_guess, n_azimuth=180, fit_tilt=True, min_rings=2);從台帳取用則 opsdrive.get("detector_calibrate"))
• GPU:無(僅 CPU 參考實作)
由已知標準樣品(如 Si)的繞射環校正偵測器的中心、距離與傾斜。
d_spacings 是標準間距 [Å] 的清單(不一定是強度順序),geometry_guess 至少是 pixel 並且
波長,如果已知,cx,cy,距離,傾斜,tilt_dir。步驟:
1.如果沒有中心,則從亮像素的重心開始,沿著射線拾取最強的環,透過擬合圓來更新中心3次。
2. 如果沒有距離,則將徑向輪廓的第一個峰值分配給 d 的候選值(最小 2θ 中的四個),並將它們與其他環的預測進行比較。選擇匹配觀測值數量最多的對。
3. 預測目前幾何中「n_azimuth」射線上每個環的位置,在視窗中的強度重心處選取一個點,使用 scipy.optimize.least_squares 來猜測(cx、cy、距離、傾斜的兩個分量)和 2θ 殘差 [deg]。窗戶契約時4次。使用旋轉向量“tilt·(cos φ, sin φ)”的兩個分量求解傾斜(避免當斜率為 0 時 φ 變得不確定的奇點)。
傳回值(dict):Geometry(cx,cy,distance,pixel,wavelength,tilt,tilt_dir)
rms_two_theta_deg・n_points・n_rings・rings_deg・ok(rms 小於 0.25·像素/距離
和環 >= min_rings)。
引發 ValueError:影像不是 2-D,沒有 d,沒有像素/波長,找不到「min_rings」環。
• 範例資料目錄(下載 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 · azimuthal_integrate · diffraction_peaks
*Provenance: pxrd.py — DRIVE 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.