fullseye

cubic_index — DRIVE pxrd op

使い方

立方晶として山に指数を付け、格子(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) の外、波長が非正、格子の綴り違い。

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(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 operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

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