spectral_xray op• データ種: pairs × pairs → table
• 呼び出し: import fullseye as fs; fs.ledger.dual_kvp_channels(spectrum_low, spectrum_high, detector: 'str' = 'CSI', detector_mm: 'float' = 0.6) -> 'dict' (実装を直接呼ぶなら import dualxray; dualxray.dual_kvp_channels(spectrum_low, spectrum_high, detector: 'str' = 'CSI', detector_mm: 'float' = 0.6) -> 'dict'、台帳から引くなら opstomography.get("dual_kvp_channels"))
• GPU: なし(CPU 参照実装のみ)
2 つの管電圧で撮るエネルギー積分型(シンチレータ)の 2 チャネル。
信号は吸収した光子のエネルギーの和(gain = E)。分散は Σ φ E² e^{−μt}(複合 Poisson、Swank の雑音の増えは入れない)。2 つのスペクトルは同じエネルギーの格子に載せる(線形補間、範囲の外は 0)。返り値の形は photon_counting_channels と同じ(mode = "integrating")。
detector は X 線の列の名前(既定 CSI = NIST の CsI の表)か、材料表のシンチレータの名前(CSI:TL / GD2O2S:TB / BGO / LYSO …)。シンチレータの名前なら吸収効率 1 − e^{−μt} の μ はそのレコードの X 線の列と密度で、response["scintillator"] に光収率・発光の極大・減衰時間を足す(光の量は light_photons_per_kev = 光収率 / 1000 —— 吸収したエネルギー [keV] に掛ける)。重みと gain は名前の種類に依らず同じ式で、既定の CSI の結果は 2026-10-23 の前と 1 ビットも変わらない(CSI:TL は同じ NIST の表と密度なので重みも同じ)。光検出器の QE まで通すのは scintillator_sensor_qe。
• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。
• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。
• アルゴリズムの正典(著者・年)と用途は上記ファミリ使い方ガイドに記載。
• poc_dual_energy_xray — py -3.11 examples/poc_dual_energy_xray.py
table を入力に取れる)—
spectral_xray)material_xray_table · material_xray_attenuation · material_xray_constants · material_effective_z · xray_tube_spectrum · xray_beam_quality · photon_counting_channels · xray_channel_projection
*Provenance: dualxray.py — TOMOGRAPHY operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.