cubic_index — DRIVE pxrd op

• 資料種類:signal × scalar → table

• 呼叫: import fullseye as fs; fs.ledger.cubic_index(two_theta, wavelength, lattices=('P', 'I', 'F', 'diamond'), tolerance=0.05, n_first=6, max_unindexed=0)(要直接呼叫實作,import pxrd; pxrd.cubic_index(two_theta, wavelength, lattices=('P', 'I', 'F', 'diamond'), tolerance=0.05, n_first=6, max_unindexed=0);從台帳取用則 opsdrive.get("cubic_index"))

用法

> 該運算子的說明尚無譯文,以下照原文給出。

立方晶として山に指数を付け、格子(P / I / F / diamond)と格子定数 a [Å] を決める。

`1/d² = N / a² なので、1 本目の山に許される N の小さい方から n_first` 個を当てて a を仮に決め、全部の山を

最も近い許される N に割り当て、`a` を最小二乗で追い込み(割り当て → 追い込みを 2 回)、計算と観測の 2θ の差が

`tolerance [deg] 以内の候補だけを残す(外れる山が max_unindexed` 本までなら、それを除いて残す —— 不純物や

偽の山が 1 本混じっただけで全部を捨てないため。除いた山は `unindexed` に返す)。候補どうしは de Wolff の M 型の性能指数

`M = Q_last / (2 ε̄ N_calc)(Q = 1/d²、ε̄ = |ΔQ| の平均、N_calc` = 最後の観測線までに許される計算線の数)

で比べる —— P は何にでも合うが計算線が多いぶん M が下がる。外した山がある候補は `(指数の付いた割合)⁴` で割り引く

(経験的な重み。強い山を捨てて計算線の少ない格子に逃げるのを防ぐ)。

返り値(dict): `lattice・a・a_sigma(残差からの標準誤差)・two_theta(指数の付いた山)・hkl`((n, 3))・

`N・residual_deg(観測 − 計算)・fom・missing(範囲内で許されるのに観測に無い N の list)・unindexed`

(外した山)・`candidates`(全候補の要約)。

当てはまる候補が無ければ `lattice = None`(立方晶でない・山の取り違え)。

Raises ValueError: 山が 2 本未満・非有限・(0, 180) の外、波長が非正、格子の綴り違い。

參考(範例資料・文獻)

• 範例資料目錄(下載 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.