Python API — MiniPixCtrl

English | 日本語

初期化と接続

MiniPixCtrl(logger, log_level=None) の logger は必須であり、None を渡すと ValueError になります。log_level は保持されますが、添付コードではロガーのレベル設定処理には使用されません。connect() -> bool は pypixet.start() 後、pixet.devices()[0] を使用します。デバイスなし・FileDevice 0 では False を返します。デバイス情報をログに出力しますが、特定シリアル番号による選別はしません。

disconnect() は動作中なら停止を試み、PIXetの終了処理を実行します。connect() は測定モード・バイアス・しきい値を自動設定しません。

検出器設定

メソッド

引数

実際の動作

set_mode_all(mode)

"Counting", "Energy", "Time"

それぞれ PX_TPXMODE_MEDIPIX, PX_TPXMODE_TOT, PX_TPXMODE_TIMEPIX に設定し、setToDevice() で反映

set_threshold(threshold_kev)

keV

setThreshold(0, value, PX_THLFLG_ENERGY)

set_clock(clock_mhz)

MHz

setTimepixClock(value)

set_bias(bias_volt)

V

setBias(value)

各設定メソッドは成功時 True、SDKエラー時 False を返します。校正記録の工場設定(Timepix Clock 10.0 MHz、5 keV付近のTHL約691)を、接続時にこのクラスが自動再現するわけではありません。

測定API

acquire(count, sec, acquisition_type="frames", callback=None,
        save_format=None, save_path=None)
acquire_frames(count, sec, callback=None, save_format=None, save_path=None)
acquire_integral(count, sec, callback=None, save_format=None, save_path=None)

count はSDKへ渡す測定回数、sec は1回の測定時間(秒)です。acquisition_type は frames または integral のみ。測定は同期的に実行されます。Framesではcallback/TIFF/HDF5保存時に完了イベントから各フレームを取得し、それ以外は終了後に履歴を読みます。IntegralではPIXetの doSimpleIntegralAcquisition() を使用し、Pythonで積算しません。Integralの frame_count は積算結果の保存枚数であり、requested_count と同義ではありません。

返却辞書は rc、acquisition_type、frame_count、frames、saved_file を含みます。frames の要素には name、width、height、data(NumPy配列)、minimum、maximum、nonzero、subframes が入ります。data はJSON配列ではありません。

履歴・状態・停止

メソッド

意味

get_frame_count()

Python側履歴のフレーム数

get_frame(index)

Python側履歴の指定フレーム

get_frames()

履歴リストの浅いコピー

get_current_frame()

最後に保持したフレーム、なければ None

clear_frames()

Python側履歴を消去

get_acq_frame_count()

PIXet SDK側の取得フレーム数

get_acq_frames(idx=None)

SDK側の全フレームまたは指定フレーム

stop()

実行中なら abortOperation()

is_running() / is_aborting()

SDK側の動作状態

state()

状態、要求数、完了数、履歴数、直近エラー

state()["finished_count"] はFramesでは保持フレーム数ですが、Integralの成功時は要求回数 count が設定されます。state()["frame_count"] と混同しないでください。stop() を別スレッドから呼ぶ場合の安全性は実機で確認が必要です。

保存と例外

save_format は NONE、TIFF、HDF5、PIXET_NATIVE(大小文字を正規化)です。"PIXET NATIVE" も受け付けます。TIFFは frame_000001.tiff の形式で個別保存し、HDF5は frames データセットに追記してflushします。Integralでは最終フレームだけ保存します。PIXet native保存はSDKへファイル名と PX_FTYPE_AUTODETECT を渡します。SDKが生成するネイティブファイルの内部形式は本クラスでは規定しません。

save_path 欠落や未対応形式では ValueError、未接続では RuntimeError、SDK測定失敗時は通常 RuntimeError が発生します。callback 内の例外も伝播する可能性があります。

出典: 添付 pixet_ctrl.py(コードは変更していません)。

測定結果の詳細は データ構造と取得タイミング を参照。