開発版ドキュメント · 0.2.3 30c2f8ba · 入門例の検証対象 0.2.3 · 版情報 · 既知の制限

GW Python エコシステムにおける GWexpy の位置付け#

GWexpy は GWpy の上に構築された拡張ライブラリです。GWpy プロジェクトの公式構成要素ではなく、探索・パラメータ推定・検出器運用のパイプラインでもありません。このページでは、GWexpy が重力波 Python スタックのどの層を担い、周辺パッケージとどう関係し、どの領域を意図的に他のツールへ委ねているかを説明します。

「このオブジェクトを他のライブラリへどう変換するか」が知りたい場合は Interop / 変換ガイド を参照してください。「どのファイル形式を読めるか」が知りたい場合は ファイル I/O 対応形式ガイド を参照してください。このページはスコープと位置付けについてのものであり、API の選択方法ではありません。

このページの読み方#

以下の各プロジェクトは 5 つの分類のいずれかに置かれています。分類は GWexpy との関係を表すもので、相手プロジェクトの品質や成熟度を表すものではありません。表内の並び順は主題別であり、利用統計に基づく順位付けではありません。

分類

意味

基盤

GWexpy がその上に構築され、オブジェクトモデルを拡張している

補完

隣接する課題を解決しており、GWexpy と重複せずに併用できる

参考

コードを流用せず、API 設計やデータ意味論を参考にしている

連携候補

変換または reader/writer による橋渡しが計画中、あるいは検討に値する

対象外

そのプロジェクトに意図的に委ねており、GWexpy は置き換えを目指さない

重力波 Python スタックの層構造#

主にその層を担うパッケージ

標準的な GW データオブジェクトと基盤 API

GWpy

行列・マルチチャンネル・実験向けの解析コンテナ

GWexpy

信号処理と制御系

spicypy

HDF5 でのデータ準備・アーカイブ・ML 向けデータセット

GWDama

detector characterization、サマリーページ、veto ワークフロー

gwdetchar, gwsumm, gwvet, hveto

トリガー生成、探索、パラメータ推定

pyomicron, PyCBC, bilby, pygwb, pycWB

データ探索とアクセス

gwosc, gwdatafind

干渉計のシミュレーションと設計

Finesse, pygwinc, Differometor

GWexpy は GWpy の 1 つ上、ワークフロー・パイプライン系パッケージの 1 つ下の層に位置します。ワークフロー自体を統括するのではなく、それらが利用できるコンテナ・I/O・解析プリミティブを提供します。

GWpy・GWexpy・spicypy・GWDama の比較#

この 4 つを並べて比較するのは、最も混同されやすい組み合わせだからです。4 つとも Python であり、4 つとも重力波の時系列データを扱い、そのうち 3 つが GWpy と関係しています。

GWpy

GWexpy

spicypy

GWDama

一言でいうと

GW 検出器データ解析の基盤ライブラリ

実験データ・マルチチャンネル解析向けの GWpy 互換拡張

GWpy に信号処理・制御系の手法を加えたもの

HDF5 を中心とするデータマネージャ兼データ準備パッケージ

主な層

基盤 API と標準コンテナ

解析コンテナ、ワークフロープリミティブ、interop

信号・スペクトル・制御の手法

データ取得・保存・準備

中心となるデータ構造

TimeSeries, FrequencySeries, Spectrogram, segments, EventTable

TimeSeriesMatrix, FrequencySeriesMatrix, SpectrogramMatrix, SegmentTable, ScalarField、および型付きの結果オブジェクト

GWpy の series オブジェクトに信号処理・制御の手法を追加したもの

GwDataManager と h5py 由来の Dataset

設計方針

GW 検出器データのための標準的な Python インターフェース

GWpy のオブジェクトモデルを保ちつつ、行列・バッチ・I/O・実験ワークフローを追加する

GWpy オブジェクトと python-control 的ワークフローを橋渡しする

raw データと処理済みデータを属性付きの HDF5 グループへ整理する

永続化

標準的な GW データ形式を読む

多形式の I/O と interop。単一の正準バックエンドを持たない

I/O は副次的で、信号処理・制御の例が中心

HDF5 が正準形式

GWexpy から見た関係

基盤

補完的であり、API 設計の参考対象

部分的に重複しつつ、参考対象かつ連携候補

ライセンス

GPL-3.0

MIT

Apache-2.0

MIT

各プロジェクトとの関係#

プロジェクト

分類

理由

GWpy

基盤

GWexpy はそのコンテナを継承・拡張しており、GWpy 自体からも読める状態を保つことを目指している

spicypy

補完、参考

同じく GWpy 拡張だが、コンテナや I/O ではなく信号処理と制御系が中心。LPSD、Daniell's method、huddle test の API は設計上の参考になる

GWDama

参考、連携候補

マルチチャンネル I/O と前処理で GWexpy と重なるが、スコープはデータ準備と HDF5 アーカイブ。階層グループと属性の規約は参考になり、その HDF5 プロダクトを読むのは妥当な橋渡しである

gwdetchar, gwsumm, gwvet, hveto

対象外

運用寄りの detector characterization とレポート生成のワークフロー。GWexpy はこれらが利用できる解析プリミティブを提供するが、オペレータ向けワークフローの再現は目指さない

pyomicron

対象外、連携候補

トリガー生成と HTCondor による統括は対象外。生成されたトリガーテーブルの読み書きは対象外ではない

PyCBC, bilby, pygwb, pycWB

対象外、連携候補

探索・推定のパイプライン。GWexpy はこれらが生成・消費するデータプロダクトと接続し、PyCBC および LAL の series 変換は既に提供している

gwosc, gwdatafind

補完

データ探索とアクセス。GWexpy が包むのではなく、GWpy 経由およびサンプルの中で使う

pemcoupling

参考

コマンドライン型の PEM カップリング関数生成ツール。カップリングプロダクトのスキーマと測定ステータスフラグはドメイン上の参考になるが、コードは一切流用しない。下記のライセンス注記を参照

Finesse, pygwinc, Differometor

補完、連携候補

干渉計のシミュレーション・設計ツール。GWexpy はシミュレータを再実装するのではなく、その周波数領域の出力を自身のコンテナへ変換する

GWexpy の特徴#

  • 設計上 GWpy 互換。新しいコンテナは可能な限り GWpy オブジェクトとして読める状態を保つため、書き換えなしに両者の間でコードを移動できます。

  • 行列ネイティブな解析TimeSeriesMatrixFrequencySeriesMatrixSpectrogramMatrix は、マルチチャンネルデータを辞書に対するループではなく第一級の形状として扱います。

  • 型付きの解析結果。カップリング・応答・フィッティングのワークフローは、素の配列やその場しのぎの辞書ではなく専用の結果オブジェクトを返します。

  • 単一の正準バックエンドを持たない広い I/O。HDF5・NetCDF4・Zarr・GWF・DTT XML・ndscope HDF5、および計測器固有のロガー形式はいずれも対応経路であり、どれか一つを正準の保存形式として特別扱いしません。

  • 汎用の source→target カップリング。カップリングと射影は特定の検出器の命名規約ではなく、source と target という言葉で表現されます。

  • ライブラリ優先かつ Notebook 向き。公開されるのは Python のオブジェクトと関数であり、コマンドラインインターフェースは主たる成果物ではなく薄い補助層です。

GWexpy が意図的に行わないこと#

これらを core の外に置くことで、コンテナ・I/O・interop の各層を汎用に保てます。GWexpy は次のものを提供することを目指しません。

  • 検出器やサイトに固有の運用パイプライン

  • オペレータ向けの HTML レポートやサマリーページ

  • HTCondor やサイト全体のジョブ統括

  • veto の生成や探索パイプライン

  • トリガージェネレータ

  • 特定の検出器のチャンネル規約を名前に固定した API

これらが必要なワークフローでは、解析プリミティブに GWexpy を使い、その周囲のワークフローには専用ツールを使うのが想定される形です。

相互運用の状況#

変換 API の正となるカタログは Interop / 変換ガイド、読み書き形式の正となる一覧は ファイル I/O 対応形式ガイド です。以下の表は、エコシステム単位での橋渡しが現時点でどこまで存在するかだけを記録しています。

状況

プロジェクト

実装済み

GWpy, LALSuite, PyCBC, Finesse, pygwinc, PySpice, ObsPy, python-control, SimPEG, MTH5, scikit-rf, ROOT, ndscope HDF5, DTT / DiagGUI XML、および interop ガイドに掲載されたその他の対象

計画中

GWDama の HDF5 プロダクト、Differometor の設計・感度出力

ドキュメントのみ

spicypy, gwdetchar, gwsumm, gwvet, hveto, pyomicron, pemcoupling

「ドキュメントのみ」とは、関係をここで説明するだけで変換 API を計画していないという意味です。これらのツールが GWpy オブジェクトを扱う場面では、GWpy が既に共通語であり、アダプタは不要です。

第三者コードとライセンス#

GWexpy は上記のいくつかのプロジェクトから設計上のアイデア、プロダクトの意味論、API の規約を取り入れていますが、コードは複製しません。ライセンスはパッケージの classifier や README のバッジではなく、そのプロジェクト自身のリポジトリにある LICENSE ファイルを読んで確認します。LICENSE ファイルを同梱していないプロジェクトは all rights reserved とみなし、一切流用しません。

プロジェクトごとの方針は、リポジトリ内の docs/developers/LICENSES_THIRD_PARTY.md にコントリビュータ向けとして記録されています。