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.