Skip to main content

Analysis tool for TanQ/FunQ project

Project description

GitLab Tag PyPI - Python Version GitLab License PyPI - Downloads PyPI -Downloads PyPI - Downloads Gitlab Pipeline Status GitLab Last Commit


Haniwers : ハニワーズ

墳Qの解析コード(個人用)

w:300

クイックスタート

$ haniwers --help

 Usage: haniwers [OPTIONS] COMMAND [ARGS]...

Commands
 daq        Start DAQ. Set up with daq.toml.
 docs       Open online document.
 fit        スレッショルド計算.
 mock-daq   Dummy DAQ.
 ports      Search available ports and show device names.
 raw2tmp    Parse raw_data into CSV format. Should be used temporarily for quick analysis.
 run2csv    Parse raw_data into CSV format. Specify RunID.
 scan       スレッショルド測定.
 version    Show haniwers version.
 vth        スレッショルド設定.

haniwers --helpでサブコマンドを確認できます。

インストール

pipxでインストールします。

$ pipx install haniwers
$ which haniwers
~/.local/bin/haniwers

$ haniwers version --env
haniwers 0.19.0
Python: 3.12.5
System: Darwin
OS: macOS-14.6.1-arm64-arm-64bit
Logs: ~/Library/Logs/haniwers/0.19.0/haniwers_log.json

アップデート

pipx upgradeで最新版に更新できます。

$ pipx upgrade haniwers

セットアップ

作業ディレクトリを作成

$ mkdir ~/repos/hnw-daq/

データを取得するディレクトリを作成してください。 以後、このディレクトリをデータ取得するときのルートディレクトリとします。

設定ファイルを作成

haniwers/examplesにある設定ファイルをダウンロードして、 作業ディレクトリに配置してください。 (とてもめんどくさくてすみません。そのうちデフォルト設定を自動で生成できるようにしようと思います)


ドキュメント

関連ドキュメントはGitLab Pagesで公開しています。

それぞれのコマンドの使い方はhaniwers docsでオンラインヘルプを確認できます。

$ haniwers docs
$ haniwers docs --page version
$ haniwers docs --page scan
$ haniwers docs --page fit
$ haniwers docs --page vth
$ haniwers docs --page daq
$ haniwers docs --page raw2tmp
$ haniwers docs --page run2csv

できること/したいこと

  • 宇宙線検出器OSECHIで取得したデータを、解析可能なCSVファイルに変換する
  • データを理解するのに必要は基本プロットを作成する
  • まとめスライドのテンプレートを作成する

w:300

以下はあまり整理できてない

開発者向け

インストール&ビルド

  • haniwersはDAQツールと解析ツールが同梱されている
  • 測定環境と解析環境で作業ディレクトリを分けて、それぞれクローンすることを推奨

作業ディレクトリを作成する

// 作業環境を作成する(ディレクトリ名は任意)
$ cd mkdir ~/repos/hnw/

// 測定に使う環境(ディレクトリ)
$ mkdir hnw-daq

// 解析に使う環境(ディレクトリ)
$ mkdir hnw-analysis
  • 測定環境:タグを指定してリポジトリをクローンする
  • 解析環境:最先端のブランチ(main)をクローンし、解析トピックごとにブランチを作成する

測定に使う環境を構築する

$ cd ~/repos/hnw/hnw-daq/
// タグを指定してクローンする
$ git clone https://gitlab.com/qumasan/haniwers.git -b 0.13.1 --depth 1
$ cd haniwers
$ poetry install
$ poetry shell
(.venv) $ cd sandbox/
(.venv) $ haniwers --help
  • データ測定環境を構築する場合は、-b タグ番号でタグを指定してshallowクローン(--depth 1)する
  • データ測定中に不意にソースコードが更新されないようにする必要がある
    • 測定中にソースコードを更新してしまった場合、どのような動作になるかは分からない
    • 取得したデータの健全性を確保するため、意図しない更新はできるだけ避けるようにする

解析に使う環境を構築する

$ cd ~/repos/hnw/hnw-analysis/
$ git clone https://gitlab.com/qumasan/haniwers.git
$ cd haniwers
$ poetry install
$ poetry shell
(.venv) $ git switch ブランチ名
(.venv) $ cd sandbox/
(.venv) $ haniwers --help

事前準備

必要な開発環境

  1. Gitのインストール
  2. Pythonのインストール
  3. Poetryのインストール
  4. VS Codeのインストール

Gitの設定

// 現在の設定内容を確認する
$ git config -l

// 基本項目が設定されてない場合
$ git config --global user.name "名前"
$ git config --global user.email "メールアドレス"
$ git config --global pull.rebase false

// エディターを設定したい場合(どれかひとつ)
$ git config --global core.editor emacsclient    # Emacsに設定
$ git config --global core.editor "code --wait"  # VS Codeに設定
$ git config --global core.editor hx             # Helixに設定
  • Gitをはじめて使う場合、ユーザー名/メールアドレスの基本設定が必要
  • 必要であればエディターを設定する(これは後回しでもOK)

Python環境 /Poetry環境を構築する

$ poetry install
$ poetry shell
(.venv) $ cd sandbox
(.venv) $ haniwers --help
(.venv) $ haniwers version
haniwers 0.12.0

ポータブル環境を作成する

Dockerを使ってポータブルな環境(Dockerイメージ)を作成する

イメージを作成する

$ cd docker
$ docker build --platform=linux/arm64 -t myhaniwers .
  • Raspberry Piで動作するイメージを作る場合は、ARMベース(--platform=linux/arm64)でビルドする
  • MacBookなどRPi以外のパソコンでビルドする
    • RPiでイメージをビルドすると、かなり時間がかかる

イメージを移動する

// MBPで実行する
$ docker save myhaniwers:latest > myhaniwers.tar

// RPiで実行する
$ docker load -i myhaniwers.tar
  • 作成したイメージを.tar形式に出力し、USBメモリにコピーする
  • USBメモリから測定用のRPiにイメージをコピーする
  • RPiでイメージを読み込む

コンテナを起動する

$ docker run --rm -it \
    -v $PWD/sandbox:/home/app/haniwers/sandbox \
    --device=/dev/ttyUSB0:/dev/ttyUSB0 \
    myhaniwers:latest bash
  • ホスト側のsandboxをコンテナ側にマウントする
  • ホスト側のUSBポート(/dev/ttyUSB0)をコンテナ側のUSBポート(/dev/ttyUSB0)に接続する

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

haniwers-0.19.3.tar.gz (36.1 kB view details)

Uploaded Source

Built Distribution

haniwers-0.19.3-py3-none-any.whl (38.9 kB view details)

Uploaded Python 3

File details

Details for the file haniwers-0.19.3.tar.gz.

File metadata

  • Download URL: haniwers-0.19.3.tar.gz
  • Upload date:
  • Size: 36.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.13.0 Darwin/23.6.0

File hashes

Hashes for haniwers-0.19.3.tar.gz
Algorithm Hash digest
SHA256 46e709f44a84ffc8b8ba813a59cfd47654fcd2515525e64a88d40ac54863d2f1
MD5 fa7c91ce1451f7e9c25472477ad66ed8
BLAKE2b-256 a9c248e93eaeec09f291cde4633491fa9e83ec77e3f4bb54336f24ce339c0896

See more details on using hashes here.

File details

Details for the file haniwers-0.19.3-py3-none-any.whl.

File metadata

  • Download URL: haniwers-0.19.3-py3-none-any.whl
  • Upload date:
  • Size: 38.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.13.0 Darwin/23.6.0

File hashes

Hashes for haniwers-0.19.3-py3-none-any.whl
Algorithm Hash digest
SHA256 329b76249690b67d44a101d86f5f0dad81464b24efe9ed7d9d1663cafa96f078
MD5 2eb9ce670663056625a2b20e8467bfa9
BLAKE2b-256 b864bbecbdd9c4ec48ea9784c556639b02b8ef56a1efe90b6005f4d6655b7353

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page