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

アーキテクチャとデータフロー#

gwexpy の設計思想と、内部的なデータ処理の流れについて解説します。 本パッケージは GWpy を拡張し、多チャネルの TimeSeriesMatrix 操作や 4次元の物理的な場を表すフィールドを扱いやすくすることを目指しています。

このページの読み方#

  • gwexpy の内部表現や変換の考え方を掴みたい場合は、このページを先に読んでください。

  • 具体的なアルゴリズムの理論は 物理モデルと解析理論 を参照してください。

  • 実装 API を確認したい場合は、各節末尾の API リンクから matrix API, fields API, fitting API へ進んでください。

データ構造の設計思想#

1. Matrix Object Flattening Flow#

目的: 行列系コンテナが解析向けにどのように整形され、メタデータをどう保つかを示す。 入力: TimeSeriesMatrixFrequencySeriesMatrix のような多チャネル・行列型データ。 出力: 計算に使いやすい 2 次元表現と、復元後も保たれるメタデータ。

TimeSeriesMatrixFrequencySeriesMatrix は、scikit-learn などの機械学習ライブラリと親和性の高い形式への変換を自動で行います。通常、3 次元データ(チャンネル/行 \(\times\)\(\times\) サンプル)を計算のために一時的に 2 次元の特徴量行列へ平坦化し、メタデータ(GPS タイムスタンプ、単位)は保持されて処理後に復元されます。

API 入口: matrix API, timeseries API

2. 4D Field API Model#

目的: フィールド系コンテナがスライスやインデクシングの間もすべての軸を揃えて保つ理由を示す。 入力: 1 本の時間軸(または周波数軸)と 3 本の空間軸を持つ ScalarField出力: 選択操作の後もグリッド情報と軸メタデータが同期したフィールドオブジェクト。

ScalarField は 4 次元構造を基本単位とします。axis 0 は 時間軸fft_time() 後は 周波数軸)、軸 1–3 は 空間軸 x, y, z です(fft_space() により波数 kx, ky, kz へ写像されます)。例は (t, x, y, z)(f, x, y, z)(f, kx, ky, kz) です。Field API は、インデクシング操作中に 4 次元を保つことで、グリッド情報と軸メタデータをデータとともに保持するよう設計されています。

API 入口: fields API, スカラー場のスライス操作ガイド

データフロー図#

以下の静的図は、現在の docs ビルド環境でも確実に表示できる形で、GWexpy の主要コンテナが生データから解析 API に渡るまでの流れと、軸メタデータがどこで保たれるかをまとめたものです。

GWexpy のコンテナとメタデータ保持を示す静的データフロー図。

生配列や GWpy オブジェクトから、行列解析経路とフィールド解析経路を通って下流の出力へ進むまでの流れと、軸メタデータがリシェイプや変換をまたいで保持される位置をまとめた図。#

読み方の要点:

  • TimeSeriesDict -> TimeSeriesMatrix -> 2次元特徴量へ平坦化 は、scikit-learn 系の 2 次元入力へ接続するための行列解析経路です。

  • ScalarField -> フィールドのスライス / インデクシング -> フィールド対応変換 は、時間/周波数軸と空間軸を揃えたまま扱う必要がある場合のフィールド解析経路です。

  • どちらの経路でもメタデータを保持するため、結果を単なる配列インデックスではなく物理座標に対応づけて解釈できます。


主要な解析コンポーネントの概念#

gwexpy は、以下の主要コンポーネントを組み合わせて高度な解析パイプラインを構築します。個別のアルゴリズム詳細は 物理モデルと解析理論 を参照してください。

  • 多チャネル解析エンジン: 環境ノイズ分離のための ICA/PCA 実装。

  • 高速相関計算基盤: 大規模観測データに対する高速コヒーレンス計算(BruCo)。

  • 統計的推定・フィッティング: GLS や MCMC を用いた物理パラメータ推定。

次に読む#