Differences between revisions 13 and 16 (spanning 3 versions)
Revision 13 as of 2026-01-01 15:49:43
Size: 10398
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 5: Line 5:
2025年現在、KAGRA/PEMの解析環境としては '''Python 3.11''' をベースにすることを強く推奨します。
最新の 3.12 や 3.13 は、一部の科学技術計算ライブラリ(特に古い計測機器制御や特殊な信号処理系)がまだ完全に対応していない場合があり、環境構築でトラブルの原因になりやすいためです。
2026年現在、KAGRA/PEMの解析環境としては '''Python 3.11''' をベースにすることを強く推奨します。
最新の 3.12~14 は、一部の科学技術計算ライブラリ(特に古い計測機器制御や特殊な信号処理系)がまだ完全に対応していない場合があり、環境構築でトラブルの原因になりやすいためです。
Line 11: Line 11:
 * '''関数 (Function)''': 何らかの入力(引数)を受け取り、処理を行って結果(戻り値)を返す命令の塊です。例: {{{y = sin(x)}}}
 * '''クラス (Class)''': データと、それを処理する関数をひとまとめにした設計図です。GWpyの {{{TimeSeries}}} もクラスの一種で、これを実体化(インスタンス化)して使います。
Line 14: Line 16:
 * '''関数 (Function)''': 何らかの入力(引数)を受け取り、処理を行って結果(戻り値)を返す命令の塊です。例: {{{y = sin(x)}}}
 * '''クラス (Class)''': データと、それを処理する関数をひとまとめにした設計図です。GWpyの {{{TimeSeries}}} もクラスの一種で、これを実体化(インスタンス化)して使います。
Line 49: Line 49:
|| [[https://natsort.readthedocs.io/|natsort]] || {{{mamba install natsort}}} || 自然順ソート(file1, file2, ... file10 の順に並べる)に使う。 ||
|| [[https://pypi.org/project/chardet/|chardet]] || {{{mamba install chardet}}} || 文字コード判定。日本語を含む古いCSVなどを読み込む際のトラブルシューティングに。 ||
|| [[https://bottleneck.readthedocs.io/|bottleneck]] || {{{mamba install bottleneck}}} || 移動平均などのスライディングウィンドウ処理を高速化するライブラリ。 ||
|| [[https://lmfit.github.io/lmfit-py/|lmfit]] || {{{mamba install lmfit}}} || 非線形最小二乗法ライブラリ。Scipyよりも直感的にフィッティングができる。 ||
|| [[https://iminuit.readthedocs.io/|iminuit]] || {{{mamba install iminuit}}} || 高エネルギー物理で標準的な「Minuit」のPython版。高度なフィッティング用。 ||
|| [[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 59: Line 60:
|| [[https://gwpy.github.io/|gwpy]] || {{{mamba install -c conda-forge gwpy}}} || 重力波データ解析用。時系列データの取得・プロット・スペクトル解析が簡単。 ||
|| [[https://py
pi.org/project/nds2-client/|nds2]] || {{{mamba install -c conda-forge python-nds2-client}}} || KAGRAのクローズドなデータサーバー (NDS) にアクセスするために必要。 ||
|| [[https://gwpy.github.io/|gwpy]] || {{{mamba install -c conda-forge gwpy}}} || 重力波データ解析用。時系列データの取得・プロット・スペクトル解析が簡単。'''※現在バージョン4.0.xがリリースされており、pip/conda共に最新版が利用可能です。''' ||
Line 63: Line 63:
|| [[https://pypi.org/project/dttxml/|dttxml]] || {{{pip install dttxml}}} || KAGRA/LIGOの計測制御で使うDTT (Diagnostics Test Tools) のXML/フィルタファイルを読み込む。 ||
Line 66: Line 65:
|| [[https://anaconda.org/conda-forge/inspiral-range|inspiral_range]] || {{{mamba install -c conda-forge inspiral-range}}} || 検出器のノイズスペクトルから、連星中性子星(BNS)などの到達距離(Range)を計算するツール。 ||
Line 70: Line 70:
|| [[https://github.com/gwomicron/pyomicron|pyomicron]] || {{{pip install pyomicron}}} || グリッチ検出パイプライン Omicron のPythonラッパー/ツール。 ||
|| gwsim || (Check document) || 重力波波形のシミュレーション関連(要確認: 特定の解析用途に応じて導入)。 ||

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

|| '''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 77: Line 85:
|| [[https://docs.obspy.org/|obspy]] || {{{mamba install -c conda-forge obspy}}} || 地震学用ライブラリ。地震計データの解析、WINフォーマット等の読み込みに強力。 || || [[https://docs.obspy.org/|obspy]] || {{{mamba install -c conda-forge obspy}}} || 地震学用ライブラリ。地震計データの解析、miniseedフォーマット等の読み込みに強力。 ||
Line 79: Line 87:
|| [[https://www.pygmt.org/|pygmt]] || {{{mamba install -c conda-forge pygmt}}} || 地図や地球科学系の高品質なプロットを作成するGMTのPythonインターフェース。観測所の配置図作成などに便利。 ||
Line 81: Line 90:
=== 解析環境・ツール ===
Pythonのコードを書いたり実行したりするためのツールです。
=== 機械学習・データサイエンス ===
グリッチ分類や環境ノイズの相関調査などで活用される機械学習ライブラリです。
Line 85: Line 94:
|| (コマンドとして使用) || {{{mamba install jupyterlab}}} || [[https://jupyter.org/|JupyterLab]]: ブラウザで対話的に解析できるノートブック環境。必須。 || || [[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}}} || 決定木ベースの勾配ブースティングライブラリ。表形式データの分類・回帰において非常に高速で高精度。 ||

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

|| '''import時の名前''' || '''インストールコマンド''' || '''説明''' ||
|| (コマンドとして使用) || {{{mamba install -c conda-forge jupyterlab}}} || [[https://jupyter.org/|JupyterLab]]: ブラウザで対話的に解析できるノートブック環境。必須。 ||
|| [[https://marimo.io/|marimo]] || {{{mamba install -c conda-forge marimo}}} || 次世代のリアクティブなPythonノートブック。Jupyterと異なり、セルの実行順序による状態の不整合が起きない。 ||
Line 87: Line 105:
|| [[https://tqdm.github.io/|tqdm]] || {{{mamba install tqdm}}} || {{{for}}} ループの進捗バーを表示する。長い解析のイライラ解消に。 || || [[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の標準的なテストフレームワーク。解析モジュールやパイプラインの動作確認・自動テストに使用。 ||
Line 89: Line 110:
=== インストールコマンドのまとめ ===
{{{gwpy}}} や {{{obspy}}} などの大型パッケージをインストールすると、依存関係にある基礎ライブラリ(numpy, scipy, matplotlib, astropy, pandasなど)は自動的にインストールされます。
そのため、以下のコマンドでは重複を省き、主要なパッケージのみを記述しています。
== インストールコマンドのまとめ ==
個別にインストールするのは手間なので、以下のコマンドで一括インストールすることをお勧めします。
(すべて {{{conda-forge}}} チャンネルから取得・解決されます)
Line 93: Line 114:
'''Step 1: Conda (Mamba) で入れるもの'''
Line 95: Line 115:
mamba install -c conda-forge python=3.11 gwpy python-nds2-client jupyterlab lalsuite pycbc gwdetchar gwsumm pygwb obspy geopandas natsort chardet bottleneck lmfit iminuit gwinc tqdm # 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 97: Line 124:

'''Step 2: Pip で入れるもの (Condaインストール後に行う)'''
{{{
pip install dttxml pyomicron
}}}

ライブラリとパッケージ

はじめに: 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)