Differences between revisions 10 and 16 (spanning 6 versions)
Revision 10 as of 2023-11-14 14:20:43
Size: 6497
Comment:
Revision 16 as of 2026-02-23 18:57:16
Size: 13855
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Pythonにおけるモジュール、パッケージ、ライブラリとは [[https://ai-inter1.com/python-module_package_library/]] = ライブラリとパッケージ =
<<TableOfContents>>
Line 3: Line 4:
== はじめに: Pythonのバージョンについて ==
2026年現在、KAGRA/PEMの解析環境としては '''Python 3.11''' をベースにすることを強く推奨します。
最新の 3.12~14 は、一部の科学技術計算ライブラリ(特に古い計測機器制御や特殊な信号処理系)がまだ完全に対応していない場合があり、環境構築でトラブルの原因になりやすいためです。
Line 4: Line 8:
== 用語の整理 ==
Pythonを触っているとよく出てくる用語について、簡単にまとめておきます。
Line 5: Line 11:
 * '''関数 (Function)''': 何らかの入力(引数)を受け取り、処理を行って結果(戻り値)を返す命令の塊です。例: {{{y = sin(x)}}}
 * '''クラス (Class)''': データと、それを処理する関数をひとまとめにした設計図です。GWpyの {{{TimeSeries}}} もクラスの一種で、これを実体化(インスタンス化)して使います。
 * '''モジュール (Module)''': Pythonのコードが書かれた1つのファイル({{{.py}}}ファイル)。{{{import math}}} のように読み込んで使います。
 * '''パッケージ (Package)''': 複数のモジュールをディレクトリ(フォルダ)にまとめて整理したもの。通常 {{{__init__.py}}} というファイルが含まれています。
 * '''ライブラリ (Library)''': 複数のパッケージやモジュールをまとめて、特定の機能(数値計算、グラフ描画など)を提供するための集合体。「インストールして使う便利道具箱」です。
Line 6: Line 17:
== 環境構築・インストールの方法 ==
ライブラリのインストールには、主に '''Conda (Mamba)''' を使用します。
具体的なセットアップ方法やコマンドの使い方は、以下のページを参照してください。
Line 7: Line 21:
 * [[KAGRA/Subgroups/PEM/Conda|Conda (Miniforge/Mamba) の使い方]]
Line 8: Line 23:
= Condaによるpython環境構築 = == よく使う標準ライブラリ (インストール不要) ==
Pythonをインストールした時点で最初から入っているライブラリです。
これらは {{{mamba install}}} する必要はありませんが、解析スクリプト内で頻繁に {{{import}}} します。
(リンク先はPython公式ドキュメントです)
Line 10: Line 28:
IGWN (the International Gravitational-Wave Observatory Network) Computing and Software で用意された環境(igwn-py39)を元にするのがよい。<<BR>>
使い方は[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=13584|JGW-G2113584]]を参照<<BR>>
|| '''import時の名前''' || '''説明''' ||
|| [[https://docs.python.org/3/library/os.html|os]] || ファイルパスの操作、ディレクトリの作成などOS機能へのアクセス。 ||
|| [[https://docs.python.org/3/library/sys.html|sys]] || Pythonのシステム設定、パスの追加、スクリプトの引数処理など。 ||
|| [[https://docs.python.org/3/library/glob.html|glob]] || {{{glob.glob('*.gwf')}}} のように、ワイルドカードでファイルリストを取得する。 ||
|| [[https://docs.python.org/3/library/datetime.html|datetime]] || 日付や時刻の計算・変換。GPS時刻との変換時によく使う。 ||
|| [[https://docs.python.org/3/library/math.html|math]] || 基本的な数学関数(sin, cos, sqrtなど)。配列を扱わない単純計算用。 ||
Line 13: Line 35:
== igwn-py39 を元にした環境構築 == == よく使う外部ライブラリ一覧 ==
KAGRA/PEMのデータ解析において「これだけは入れておくべき」というライブラリのリストです。
環境構築時にまとめてインストールしてしまいましょう。
Line 15: Line 39:
'''注意''': インストールコマンドは、仮想環境(conda environment)に入った状態で実行してください。
Line 16: Line 41:
[[https://computing.docs.ligo.org/conda/environments/igwn-py39/]]からlinux-64と書かれたものをダウンロードしてくる。
{{{
wget https://computing.docs.ligo.org/conda/environments/linux/igwn-py39.yaml
}}}
ダウンロードしたレシピファイルを元に仮想環境を作る。→少し時間がかかる。<<BR>>
''myenv'' の所は自分の好きな名前にしてよい
{{{
conda env create -n myenv --file igwn-py39.yaml
}}}
この時、出てくる質問に y と答えると自分用のconda環境ができるらしい。出てこないで進む人もいる。
{{{
done
#
# To activate this environment, use
#
# $ conda activate myenv
#
# To deactivate an active environment, use
#
# $ conda deactivate
}}}
と表示されたら''myenv''環境のできあがり。
{{{
conda info -e
}}}
と打つと環境一覧が表示され、自分のホームの下に "".conda/envs/myenv"" というものが見えるはず。
=== 解析・グラフ描画の基礎 ===
科学技術計算の「三種の神器」+αです。便利なユーティリティも含みます。
Line 43: Line 44:
仮想環境に入るには
{{{
conda activate myenv
}}}
と打てばよい。
|| '''import時の名前''' || '''インストールコマンド''' || '''説明''' ||
|| [[https://numpy.org/|numpy]] || (gwpy等で自動インストール) || 数値計算の基礎。配列(ベクトル・行列)計算を高速に行う。必須。 ||
|| [[https://scipy.org/|scipy]] || (gwpy等で自動インストール) || 科学技術計算。信号処理(フィルタ、FFT)、最適化、統計など。必須。 ||
|| [[https://matplotlib.org/|matplotlib]] || (gwpy等で自動インストール) || グラフ描画のデファクトスタンダード。必須。 ||
|| [[https://pandas.pydata.org/|pandas]] || (geopandas等で自動インストール) || 表形式データの処理。CSVの読み書きや時系列データの整理に便利。 ||
|| [[https://corner.readthedocs.io/|corner]] || {{{mamba install -c conda-forge corner}}} || パラメータ推定(MCMC等)の結果から、多次元の相関を示すコーナープロットを簡単に作成するツール。 ||
|| [[https://natsort.readthedocs.io/|natsort]] || {{{mamba install -c conda-forge natsort}}} || 自然順ソート(file1, file2, ... file10 の順に並べる)に使う。 ||
|| [[https://pypi.org/project/chardet/|chardet]] || {{{mamba install -c conda-forge chardet}}} || 文字コード判定。日本語を含む古いCSVなどを読み込む際のトラブルシューティングに。 ||
|| [[https://bottleneck.readthedocs.io/|bottleneck]] || {{{mamba install -c conda-forge bottleneck}}} || 移動平均などのスライディングウィンドウ処理を高速化するライブラリ。 ||
|| [[https://lmfit.github.io/lmfit-py/|lmfit]] || {{{mamba install -c conda-forge lmfit}}} || 非線形最小二乗法ライブラリ。Scipyよりも直感的にフィッティングができる。 ||
|| [[https://iminuit.readthedocs.io/|iminuit]] || {{{mamba install -c conda-forge iminuit}}} || 高エネルギー物理で標準的な「Minuit」のPython版。高度なフィッティング用。 ||
Line 49: Line 56:
condaの使い方は以下などを参照 (ググれば腐るほど出てきます)
 * [[https://www.python.jp/install/anaconda/conda.html|Conda コマンド:Python環境構築ガイド]]
 * [[http://www.yamamo10.jp/yamamoto/comp/Python/settings/install/index.php|Python環境設定: インストール]]
 * [[https://qiita.com/naz_/items/84634fbd134fbcd25296|Anaconda でよく使うコマンド一覧]]
 * [[https://devlights.hatenablog.com/entry/2017/12/09/183715|conda に conda-forge チャネルを追加 (conda config, channel, 追加パッケージ)]]
=== 重力波・KAGRAデータ解析 ===
我々の分野に特化したライブラリです。多くのツールは {{{conda-forge}}} チャンネルで提供されています。
Line 55: Line 59:
|| '''import時の名前''' || '''インストールコマンド''' || '''説明''' ||
|| [[https://gwpy.github.io/|gwpy]] || {{{mamba install -c conda-forge gwpy}}} || 重力波データ解析用。時系列データの取得・プロット・スペクトル解析が簡単。'''※現在バージョン4.0.xがリリースされており、pip/conda共に最新版が利用可能です。''' ||
|| [[https://lscsoft.docs.ligo.org/lalsuite/|lalsuite]] || {{{mamba install -c conda-forge lalsuite}}} || LAL (LIGO Algorithm Library)。直接呼ばなくても、フレームファイルの読み書きの裏側で必須。 ||
|| [[https://gwosc.readthedocs.io/|gwosc]] || (gwpy等で自動インストール) || LIGO/Virgo/KAGRAの公開データ (Open Data) を取得するツール。 ||
|| [[https://gwdatafind.readthedocs.io/|gwdatafind]] || (gwdetchar等で自動インストール) || 分散ストレージ上のフレームファイルのパスを検索するツール。 ||
|| [[https://git.ligo.org/gwinc/gwinc|gwinc]] || {{{mamba install -c conda-forge gwinc}}} || 干渉計のノイズバジェット(感度計算)を行うシミュレーションツール。 ||
|| [[https://anaconda.org/conda-forge/inspiral-range|inspiral_range]] || {{{mamba install -c conda-forge inspiral-range}}} || 検出器のノイズスペクトルから、連星中性子星(BNS)などの到達距離(Range)を計算するツール。 ||
|| [[https://gwdetchar.readthedocs.io/|gwdetchar]] || {{{mamba install -c conda-forge gwdetchar}}} || 検出器の特性評価(DetChar)用ツール群。 ||
|| [[https://gwsumm.readthedocs.io/|gwsumm]] || {{{mamba install -c conda-forge gwsumm}}} || 解析結果のサマリーページ(HTML)を作成するツール。 ||
|| [[https://pycbc.org/|pycbc]] || {{{mamba install -c conda-forge pycbc}}} || コンパクト連星合体(CBC)の探索・パラメータ推定用ライブラリ。 ||
|| [[https://pygwb.readthedocs.io/|pygwb]] || {{{mamba install -c conda-forge pygwb}}} || 背景重力波(SGWB)解析用ライブラリ。 ||
Line 56: Line 71:
=== DTT / 計測制御系システム ===
KAGRAのデジタル制御システムや、診断ツール(DTT)に関連するパッケージです。
Line 57: Line 74:
|| '''import時の名前''' || '''インストールコマンド''' || '''説明''' ||
|| [[https://pypi.org/project/nds2-client/|nds2]] || {{{mamba install -c conda-forge python-nds2-client}}} || KAGRAのクローズドなデータサーバー (NDS) にアクセスするために必要。 ||
|| [[https://anaconda.org/conda-forge/ndscope|ndscope]] || {{{mamba install -c conda-forge ndscope}}} || NDS2サーバーからデータを取得し、ターミナルやGUI上で波形を確認できるオシロスコープツール。 ||
|| [[https://anaconda.org/conda-forge/dtt-xml-tools|dttxml]] || {{{mamba install -c conda-forge dtt-xml-tools}}} || KAGRA/LIGOの計測制御で使うDTT (Diagnostics Test Tools) のXMLファイルを読み書きするツール。 ||
|| (コマンドとして使用) || {{{mamba install -c conda-forge dtt-diaggui}}} || DTTのGUIフロントエンド(DiagGUI)を利用するためのパッケージ。 ||
|| [[https://python-control.readthedocs.io/|control]] || {{{mamba install -c conda-forge python-control}}} || 制御工学(伝達関数、状態空間モデル、ボード線図など)の解析・設計を行うためのライブラリ。 ||
Line 58: Line 81:
いちいち仮想環境に入るためにコマンドを打つのは面倒なので、以下を~/.bashrcもしくは~/bash_profileに書いておけば、ターミナル起動時に自動的myenvに入るように設定できる
{{{
# User specific aliases and functions
source /disk/sw/conda/etc/profile.d/conda.sh
conda activate myenv
}}}
=== 地球物理・環境モニター系 ===
PEMグループではよく使う、地図・座標・地震学関連のライブラリです。
Line 65: Line 84:
source以下は、実際のconda.shの絶対パス (人/PCによって異なるので、自力で探してください) || '''import時の名前''' || '''インストールコマンド''' || '''説明''' ||
|| [[https://docs.obspy.org/|obspy]] || {{{mamba install -c conda-forge obspy}}} || 地震学用ライブラリ。地震計データの解析、miniseedフォーマット等の読み込みに強力。 ||
|| [[https://geopandas.org/|geopandas]] || {{{mamba install -c conda-forge geopandas}}} || Pandasの拡張。地図データ(シェープファイル等)を扱う。 ||
|| [[https://www.pygmt.org/|pygmt]] || {{{mamba install -c conda-forge pygmt}}} || 地図や地球科学系の高品質なプロットを作成するGMTのPythonインターフェース。観測所の配置図作成などに便利。 ||
|| [[https://pyproj4.github.io/pyproj/|pyproj]] || (geopandas等で自動インストール) || 地図投影法や座標変換(緯度経度⇔平面直角座標など)を行う。 ||
Line 67: Line 90:
=== 機械学習・データサイエンス ===
グリッチ分類や環境ノイズの相関調査などで活用される機械学習ライブラリです。
Line 68: Line 93:
== イチから環境構築 ==
igwn-py39を元に作った環境にgeopandas(地図をplotしたり位置情報を含んだ表計算をするモジュール)を入れようとすると、パッケージの依存性のせいかうまくいかない。
|| '''import時の名前''' || '''インストールコマンド''' || '''説明''' ||
|| [[https://scikit-learn.org/|sklearn]] || {{{mamba install -c conda-forge scikit-learn}}} || 古典的な機械学習アルゴリズム(SVM、ランダムフォレスト、PCAなど)の標準ライブラリ。 ||
|| [[https://pytorch.org/|torch]] || {{{mamba install -c conda-forge pytorch}}} || 深層学習(ディープラーニング)フレームワーク。ニューラルネットワークの構築に使用。 ||
|| [[https://lightgbm.readthedocs.io/|lightgbm]] || {{{mamba install -c conda-forge lightgbm}}} || 決定木ベースの勾配ブースティングライブラリ。表形式データの分類・回帰において非常に高速で高精度。 ||
Line 71: Line 98:
自前で新しい環境を構築し、必要なパッケージを手で入れていけばこの問題は起こらない。とりあえず以下の手順でやれば最低限のパッケージは入る。(astropyとかはgwpyを入れると勝手に入る) === 解析環境・コード品質ツール ===
Pythonのコードを書いたり実行したり、品質を保つためのツールです。
Line 73: Line 101:
|| '''import時の名前''' || '''インストールコマンド''' || '''説明''' ||
|| (コマンドとして使用) || {{{mamba install -c conda-forge jupyterlab}}} || [[https://jupyter.org/|JupyterLab]]: ブラウザで対話的に解析できるノートブック環境。必須。 ||
|| [[https://marimo.io/|marimo]] || {{{mamba install -c conda-forge marimo}}} || 次世代のリアクティブなPythonノートブック。Jupyterと異なり、セルの実行順序による状態の不整合が起きない。 ||
|| [[https://www.h5py.org/|h5py]] || (gwpy等で自動インストール) || HDF5形式のデータを読み書きする。大量のデータを保存する場合に使用。 ||
|| [[https://tqdm.github.io/|tqdm]] || {{{mamba install -c conda-forge tqdm}}} || {{{for}}} ループの進捗バーを表示する。長い解析のイライラ解消に。 ||
|| (コマンドとして使用) || {{{mamba install -c conda-forge ruff}}} || Rust製の超高速なコードリンター&フォーマッター。PEP8準拠の綺麗なコードを保つために推奨。 ||
|| (コマンドとして使用) || {{{mamba install -c conda-forge mypy}}} || 静的型チェッカー。変数や関数の型ヒントを検証し、実行前のバグ発見に役立つ。 ||
|| (コマンドとして使用) || {{{mamba install -c conda-forge pytest}}} || Pythonの標準的なテストフレームワーク。解析モジュールやパイプラインの動作確認・自動テストに使用。 ||

== インストールコマンドのまとめ ==
個別にインストールするのは手間なので、以下のコマンドで一括インストールすることをお勧めします。
(すべて {{{conda-forge}}} チャンネルから取得・解決されます)
Line 75: Line 115:
conda create -n myenv python=3.9
conda activate myenv
conda install gds-root-extensions-base gds-root-extensions-crtools root_base uproot uproot-base uproot3 uproot3-methods
conda install geopandas gwpy lalsuite pycbc pyproj obspy geopy jupyter
# 1. 基礎・データ解析・DTT制御系
mamba install -c conda-forge python=3.11 gwpy python-nds2-client lalsuite ndscope inspiral-range gwinc gwdetchar gwsumm pycbc pygwb dtt-xml-tools dtt-diaggui python-control

# 2. 地球物理・可視化・機械学習系
mamba install -c conda-forge obspy geopandas pygmt corner scikit-learn pytorch lightgbm

# 3. ユーティリティ・開発・コード品質ツール
mamba install -c conda-forge jupyterlab marimo natsort chardet bottleneck lmfit iminuit tqdm ruff mypy pytest
Line 80: Line 124:


== パッケージ一覧を表示 ==
{{{
conda list --export
}}}
または
{{{
conda list --explicit
}}}
(表記が異なる。お好きな方を)


== 自分の環境を保存してバックアップ/別のPCで再現する ==
対象の環境名をmyenvとすると、
{{{
conda activarte myenv
conda env export > myenv.yml
}}}
もしくは、対象のconda環境に入らずに書き出す場合は、
{{{
conda env export -n myenv > myenv.yml
}}}








== よく使う(インストールしておくべき)ライブラリリスト ==

 * ファイル・文字列操作など
    * glob
    * os
    * natsort
    * chardet


 * 数値計算関係
    * numpy : 基本はコレ
    * scipy
    * datetime ; 時刻を扱う
    * iminuit : Fitするときに使う ([[https://hackmd.io/@tenoto/Skl_wArqD|参考]])
    * probfit : Fitするときに使う
    * lmfit : Fitするときに使う
    * bottleneck : numpy.arrayの移動平均などを簡単に計算できる
    * pandas : 表計算をしたり、csvファイルを読み書きしたり
    * numexpr : PandasのQueryの処理を高速化する
    * pandas-profiling : pandasのデータフレームの概要を表示する
    * xlrd, XlsxWriter : エクセルファイルの読み書き


 * 描画関係
   * matplotlib : 基本はコレ
   * japanize-matplotlib : matplotlibで日本語を使う
   * mpl_toolkits : matplotlibで3Dの描画や地図の描画などをするのに使う
   * plotly : ブラウザ上で拡大縮小などがインタラクティブにできる
   * PyQt5 : matplotlibよりも高速で、リアルタイム描画に向いているらしい

 * 機械学習
   * tensorflow
   * scikit-learn

 * 重力波関係
   * GWpy : 基本はコレ
   * lalsuite : フレームファイルの読み書きに必要。直接使わなくてもインストール必須
   * pycbc : CBC解析 (Matched filtering とか)
   * GWDetChar : DetChar解析
   * GWSumm : サマリーページ
   * GWDataFind : 重力波データを引っ張ってくる
   * pyomicron : オミクロントリガーを使う
   * dttxml : diagguiのxmlファイルを読み込む
   * nds2utils
   * python-nds2-client

 * 天文関係
   * astropy

 * 地球物理系
   * geopandas : 位置情報入りの表計算や地図のplotなど (注意:igwn-py39を元に構築した環境には、依存性か何かのせいでインストールできない!)
   * pyproj : 地球上の距離計算
   * geopy
   * folium
   * [[https://docs.obspy.org/|obspy]] : 地震波解析
   * [[https://github.com/MTgeophysics/mtpy|mtpy]] : 地磁気地電流法(MT法)解析

 * ROOT
   * gds-root-extensions-base
   * gds-root-extensions-crtools
   * root_base
   * uproot
   * uproot-base
   * uproot3
   * uproot3-methods

 * スクレイピング関係
   * requests
   * beautifulsoup4
   * lxml
   * selenium
   
 * オーディオ関係
   * pysoundfile
   * playsound
   * python-sounddevice
   * wavio

ライブラリとパッケージ

はじめに: Pythonのバージョンについて

2026年現在、KAGRA/PEMの解析環境としては Python 3.11 をベースにすることを強く推奨します。 最新の 3.12~14 は、一部の科学技術計算ライブラリ(特に古い計測機器制御や特殊な信号処理系)がまだ完全に対応していない場合があり、環境構築でトラブルの原因になりやすいためです。

用語の整理

Pythonを触っているとよく出てくる用語について、簡単にまとめておきます。

  • 関数 (Function): 何らかの入力(引数)を受け取り、処理を行って結果(戻り値)を返す命令の塊です。例: y = sin(x)

  • クラス (Class): データと、それを処理する関数をひとまとめにした設計図です。GWpyの TimeSeries もクラスの一種で、これを実体化(インスタンス化)して使います。

  • モジュール (Module): Pythonのコードが書かれた1つのファイル(.pyファイル)。import math のように読み込んで使います。

  • パッケージ (Package): 複数のモジュールをディレクトリ(フォルダ)にまとめて整理したもの。通常 __init__.py というファイルが含まれています。

  • ライブラリ (Library): 複数のパッケージやモジュールをまとめて、特定の機能(数値計算、グラフ描画など)を提供するための集合体。「インストールして使う便利道具箱」です。

環境構築・インストールの方法

ライブラリのインストールには、主に Conda (Mamba) を使用します。 具体的なセットアップ方法やコマンドの使い方は、以下のページを参照してください。

よく使う標準ライブラリ (インストール不要)

Pythonをインストールした時点で最初から入っているライブラリです。 これらは mamba install する必要はありませんが、解析スクリプト内で頻繁に import します。 (リンク先はPython公式ドキュメントです)

import時の名前

説明

os

ファイルパスの操作、ディレクトリの作成などOS機能へのアクセス。

sys

Pythonのシステム設定、パスの追加、スクリプトの引数処理など。

glob

glob.glob('*.gwf') のように、ワイルドカードでファイルリストを取得する。

datetime

日付や時刻の計算・変換。GPS時刻との変換時によく使う。

math

基本的な数学関数(sin, cos, sqrtなど)。配列を扱わない単純計算用。

よく使う外部ライブラリ一覧

KAGRA/PEMのデータ解析において「これだけは入れておくべき」というライブラリのリストです。 環境構築時にまとめてインストールしてしまいましょう。

注意: インストールコマンドは、仮想環境(conda environment)に入った状態で実行してください。

解析・グラフ描画の基礎

科学技術計算の「三種の神器」+αです。便利なユーティリティも含みます。

import時の名前

インストールコマンド

説明

numpy

(gwpy等で自動インストール)

数値計算の基礎。配列(ベクトル・行列)計算を高速に行う。必須。

scipy

(gwpy等で自動インストール)

科学技術計算。信号処理(フィルタ、FFT)、最適化、統計など。必須。

matplotlib

(gwpy等で自動インストール)

グラフ描画のデファクトスタンダード。必須。

pandas

(geopandas等で自動インストール)

表形式データの処理。CSVの読み書きや時系列データの整理に便利。

corner

mamba install -c conda-forge corner

パラメータ推定(MCMC等)の結果から、多次元の相関を示すコーナープロットを簡単に作成するツール。

natsort

mamba install -c conda-forge natsort

自然順ソート(file1, file2, ... file10 の順に並べる)に使う。

chardet

mamba install -c conda-forge chardet

文字コード判定。日本語を含む古いCSVなどを読み込む際のトラブルシューティングに。

bottleneck

mamba install -c conda-forge bottleneck

移動平均などのスライディングウィンドウ処理を高速化するライブラリ。

lmfit

mamba install -c conda-forge lmfit

非線形最小二乗法ライブラリ。Scipyよりも直感的にフィッティングができる。

iminuit

mamba install -c conda-forge iminuit

高エネルギー物理で標準的な「Minuit」のPython版。高度なフィッティング用。

重力波・KAGRAデータ解析

我々の分野に特化したライブラリです。多くのツールは conda-forge チャンネルで提供されています。

import時の名前

インストールコマンド

説明

gwpy

mamba install -c conda-forge gwpy

重力波データ解析用。時系列データの取得・プロット・スペクトル解析が簡単。※現在バージョン4.0.xがリリースされており、pip/conda共に最新版が利用可能です。

lalsuite

mamba install -c conda-forge lalsuite

LAL (LIGO Algorithm Library)。直接呼ばなくても、フレームファイルの読み書きの裏側で必須。

gwosc

(gwpy等で自動インストール)

LIGO/Virgo/KAGRAの公開データ (Open Data) を取得するツール。

gwdatafind

(gwdetchar等で自動インストール)

分散ストレージ上のフレームファイルのパスを検索するツール。

gwinc

mamba install -c conda-forge gwinc

干渉計のノイズバジェット(感度計算)を行うシミュレーションツール。

inspiral_range

mamba install -c conda-forge inspiral-range

検出器のノイズスペクトルから、連星中性子星(BNS)などの到達距離(Range)を計算するツール。

gwdetchar

mamba install -c conda-forge gwdetchar

検出器の特性評価(DetChar)用ツール群。

gwsumm

mamba install -c conda-forge gwsumm

解析結果のサマリーページ(HTML)を作成するツール。

pycbc

mamba install -c conda-forge pycbc

コンパクト連星合体(CBC)の探索・パラメータ推定用ライブラリ。

pygwb

mamba install -c conda-forge pygwb

背景重力波(SGWB)解析用ライブラリ。

DTT / 計測制御系システム

KAGRAのデジタル制御システムや、診断ツール(DTT)に関連するパッケージです。

import時の名前

インストールコマンド

説明

nds2

mamba install -c conda-forge python-nds2-client

KAGRAのクローズドなデータサーバー (NDS) にアクセスするために必要。

ndscope

mamba install -c conda-forge ndscope

NDS2サーバーからデータを取得し、ターミナルやGUI上で波形を確認できるオシロスコープツール。

dttxml

mamba install -c conda-forge dtt-xml-tools

KAGRA/LIGOの計測制御で使うDTT (Diagnostics Test Tools) のXMLファイルを読み書きするツール。

(コマンドとして使用)

mamba install -c conda-forge dtt-diaggui

DTTのGUIフロントエンド(DiagGUI)を利用するためのパッケージ。

control

mamba install -c conda-forge python-control

制御工学(伝達関数、状態空間モデル、ボード線図など)の解析・設計を行うためのライブラリ。

地球物理・環境モニター系

PEMグループではよく使う、地図・座標・地震学関連のライブラリです。

import時の名前

インストールコマンド

説明

obspy

mamba install -c conda-forge obspy

地震学用ライブラリ。地震計データの解析、miniseedフォーマット等の読み込みに強力。

geopandas

mamba install -c conda-forge geopandas

Pandasの拡張。地図データ(シェープファイル等)を扱う。

pygmt

mamba install -c conda-forge pygmt

地図や地球科学系の高品質なプロットを作成するGMTのPythonインターフェース。観測所の配置図作成などに便利。

pyproj

(geopandas等で自動インストール)

地図投影法や座標変換(緯度経度⇔平面直角座標など)を行う。

機械学習・データサイエンス

グリッチ分類や環境ノイズの相関調査などで活用される機械学習ライブラリです。

import時の名前

インストールコマンド

説明

sklearn

mamba install -c conda-forge scikit-learn

古典的な機械学習アルゴリズム(SVM、ランダムフォレスト、PCAなど)の標準ライブラリ。

torch

mamba install -c conda-forge pytorch

深層学習(ディープラーニング)フレームワーク。ニューラルネットワークの構築に使用。

lightgbm

mamba install -c conda-forge lightgbm

決定木ベースの勾配ブースティングライブラリ。表形式データの分類・回帰において非常に高速で高精度。

解析環境・コード品質ツール

Pythonのコードを書いたり実行したり、品質を保つためのツールです。

import時の名前

インストールコマンド

説明

(コマンドとして使用)

mamba install -c conda-forge jupyterlab

JupyterLab: ブラウザで対話的に解析できるノートブック環境。必須。

marimo

mamba install -c conda-forge marimo

次世代のリアクティブなPythonノートブック。Jupyterと異なり、セルの実行順序による状態の不整合が起きない。

h5py

(gwpy等で自動インストール)

HDF5形式のデータを読み書きする。大量のデータを保存する場合に使用。

tqdm

mamba install -c conda-forge tqdm

for ループの進捗バーを表示する。長い解析のイライラ解消に。

(コマンドとして使用)

mamba install -c conda-forge ruff

Rust製の超高速なコードリンター&フォーマッター。PEP8準拠の綺麗なコードを保つために推奨。

(コマンドとして使用)

mamba install -c conda-forge mypy

静的型チェッカー。変数や関数の型ヒントを検証し、実行前のバグ発見に役立つ。

(コマンドとして使用)

mamba install -c conda-forge pytest

Pythonの標準的なテストフレームワーク。解析モジュールやパイプラインの動作確認・自動テストに使用。

インストールコマンドのまとめ

個別にインストールするのは手間なので、以下のコマンドで一括インストールすることをお勧めします。 (すべて conda-forge チャンネルから取得・解決されます)

# 1. 基礎・データ解析・DTT制御系
mamba install -c conda-forge python=3.11 gwpy python-nds2-client lalsuite ndscope inspiral-range gwinc gwdetchar gwsumm pycbc pygwb dtt-xml-tools dtt-diaggui python-control

# 2. 地球物理・可視化・機械学習系
mamba install -c conda-forge obspy geopandas pygmt corner scikit-learn pytorch lightgbm

# 3. ユーティリティ・開発・コード品質ツール
mamba install -c conda-forge jupyterlab marimo natsort chardet bottleneck lmfit iminuit tqdm ruff mypy pytest

KAGRA/Subgroups/PEM/PythonMemoJP/Library (last edited 2026-02-23 18:57:16 by tatsuki.washimi)