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

確認項目:

  1. ポート名が正しいか確認:

    haniwers-v1 port list
    
  2. ポート接続をテスト:

    haniwers-v1 port test /dev/ttyUSB0
    
  3. 別のポートを試す:

    haniwers-v1 daq --config config.toml --port /dev/ttyUSB1
    

「CSVファイルが生成されない」#

確認項目:

  1. ディレクトリが作成されているか:

    ls -la data/20250120/
    
  2. 出力ディレクトリが存在するか:

    mkdir -p data/
    
  3. 書き込み権限があるか:

    touch data/test.txt && rm data/test.txt
    

「タイムアウトエラー」が頻繁に出る#

解決方法:

  1. タイムアウト値を増やす:

    haniwers-v1 daq --timeout 3.0
    # config.tomlで timeout = 3.0 に変更
    
  2. ケーブルの接触を確認

  3. 別のUSBポートを試す

データ品質について#

取得中、以下のようなメッセージが表示されることがあります:

WARNING | Skipped invalid/empty detector line (total skipped: 2)

これは、検出器から不正なデータが送信されたことを意味しますが、DAQは中断せず継続します。 詳しくはデータ品質についてを参照してください。

参考資料#