haniwers-v1 daq(データ取得を開始する)#
uv run haniwers-v1 daq
daqコマンドは、OSECHI検出器から宇宙線イベントデータを取得し、CSVファイルに保存します。
クイックスタート#
最も簡単な実行方法#
haniwers-v1 daq --config config.toml
設定ファイル(config.toml)に必要なパラメータを設定すれば、このコマンド1つでデータ取得が開始されます。
よくある使用例#
例1: 基本的なデータ取得
haniwers-v1 daq --config config.toml
例2: ポートを一時的に変更
haniwers-v1 daq --config config.toml --port /dev/ttyUSB1
例3: 30秒間のテスト測定
haniwers-v1 daq --config config.toml --duration 30
例4: 出力ディレクトリを変更
haniwers-v1 daq --config config.toml --workspace /mnt/usb_drive/data
実行時の動作#
ディレクトリ構造の自動作成#
daqコマンド実行時、以下の構造が自動的に作成されます:
workspace/
└── YYYYMMDD/ # 実行日付のフォルダが自動作成
├── osechi_data_YYYY-mm-ddTHHhMMmSSs_NNNNNN.csv # タイムスタンプ付きのデータファイル
└── ...
例:2025年1月20日に実行した場合:
data/
└── 20250120/
├── osechi_data_2025-01-20T13h04m05s_000000.csv
└── osechi_data_2025-01-20T13h05m00s_000001.csv
測定の進行#
データ取得中、以下のような表示が出ます:
Starting DAQ session...
[████████████░░░░░░░░] 40% (1000/2500 events)
完了時の表示#
DAQ completed successfully
Total events: 2500
Output directory: data/20250120/
Files created: 3
主要オプション#
--config - 設定ファイル指定#
デフォルトの設定ファイルのパスを指定します。
haniwers-v1 daq --config ./config.toml
haniwers-v1 daq --config /path/to/custom-config.toml
重要: 設定ファイルは通常、最初に指定します。
--port - シリアルポートの変更#
使用するシリアルポートを一時的に変更します。設定ファイルより優先されます。
haniwers-v1 daq --port /dev/ttyUSB1
--workspace - 出力ディレクトリの変更#
データを保存するベースディレクトリを変更します。
haniwers-v1 daq --workspace ./experiment02
--filename-prefix - ファイル名の接頭辞#
生成されるCSVファイルの名前を変更します。
haniwers-v1 daq --filename-prefix run002
出力: run002_HHMMSS.csv
--events-per-file - ファイル当たりのイベント数#
count_basedモードで、1ファイル当たりのイベント数を指定します。
haniwers-v1 daq --events-per-file 5000
--mode - 取得モードの指定#
データ取得方式を明示的に指定します。
# イベント数ベース(デフォルト)
haniwers-v1 daq --mode count_based
# 時間ベース(デフォルトは10秒)
haniwers-v1 daq --mode time_based
--duration - 測定時間(time_basedモード)#
時間ベースの測定で、測定時間を秒単位で指定します。
# 30秒間測定
haniwers-v1 daq --duration 30
# 5分間測定
haniwers-v1 daq --duration 300
注意: --durationを指定すると、自動的にmode="time_based"に変更されます。
取得モードについて#
count_based(イベント数ベース)#
固定イベント数でファイルを区切ります。デフォルトモードです。
haniwers-v1 daq
設定例:
[sampler]
mode = "count_based"
events_per_file = 1000
number_of_files = 10
このモードでは最大10,000イベント取得します。
time_based(時間ベース)#
固定時間の測定を行います。スレッショルドスキャンやテスト測定に有用です。
haniwers-v1 daq --mode time_based --duration 30
設定例:
[sampler]
mode = "time_based"
duration = 30
このモードでは30秒間測定します。
トラブルシューティング#
「接続に失敗しました」というエラーが出た#
[ERROR] Failed to open port /dev/ttyUSB0
確認項目:
ポート名が正しいか確認:
haniwers-v1 port list
ポート接続をテスト:
haniwers-v1 port test /dev/ttyUSB0
別のポートを試す:
haniwers-v1 daq --config config.toml --port /dev/ttyUSB1
「CSVファイルが生成されない」#
確認項目:
ディレクトリが作成されているか:
ls -la data/20250120/
出力ディレクトリが存在するか:
mkdir -p data/
書き込み権限があるか:
touch data/test.txt && rm data/test.txt
「タイムアウトエラー」が頻繁に出る#
解決方法:
タイムアウト値を増やす:
haniwers-v1 daq --timeout 3.0 # config.tomlで timeout = 3.0 に変更
ケーブルの接触を確認
別のUSBポートを試す
データ品質について#
取得中、以下のようなメッセージが表示されることがあります:
WARNING | Skipped invalid/empty detector line (total skipped: 2)
これは、検出器から不正なデータが送信されたことを意味しますが、DAQは中断せず継続します。 詳しくはデータ品質についてを参照してください。