SpectrogramDict

安定性: 安定

主な用途

SpectrogramDict は複数の Spectrogram をチャンネル情報付きでまとめて扱うために使います。

代表的なシグネチャ

SpectrogramDict(data: dict[str, Spectrogram])
SpectrogramDict.to_matrix()

最小例

from gwexpy.spectrogram import Spectrogram, SpectrogramDict
import numpy as np

dct = SpectrogramDict({"A": Spectrogram(np.ones((8, 16)), dt=1.0, df=1.0)})
mat = dct.to_matrix()

関連理論

関連チュートリアル

API リファレンス

詳細な生成済み API はこのページの下部に続きます。

継承元: PhaseMethodsMixin, UserDict

Spectrogram オブジェクトの辞書。

Note

Spectrogram オブジェクトはメモリを大量に消費する可能性があります。 可能な限り inplace=True を使用してコンテナをその場で更新してください。

物理コンテキスト

SpectrogramDict は、各時間周波数マップの識別子を明示的に残したい場合に使います。観測点名、チャンネル名、検出器状態、前処理分岐などをキーとして保持できます。

  • キー自体が科学的解釈や provenance の一部になります

  • 一括処理をしつつ、どのマップがどの条件に対応するかを明示できます

よくある誤読

  1. キーが揃っているだけで正規化や変換条件まで揃っていると思う

  2. サニタイズ後の出力キーを元の物理ラベルだと誤認する

  3. 同じ変換手法で作ったか確認せず、キー単位で比較を進める

どのページへ進むか

メソッド

__init__

__init__(self, dict=None, **kwargs)

self を初期化します。正確なシグネチャは help(type(self)) を参照してください。

(PhaseMethodsMixin から継承)

angle

angle(self, unwrap: bool = False, deg: bool = False, **kwargs: Any) -> Any

phase(unwrap=unwrap, deg=deg) のエイリアス。

bootstrap_asd

bootstrap_asd(self, *args, **kwargs)

辞書内の各スペクトログラムからロバスト ASD を推定します(FrequencySeriesDict を返します)。

crop

crop(self, t0, t1, inplace=False)

各スペクトログラムを時間方向でクロップします。

パラメータ

t0, t1 : float 開始時刻と終了時刻。 inplace : bool, optional True の場合、その場で変更します。

戻り値

SpectrogramDict

write

write(self, target, *args, **kwargs)

SpectrogramDict をファイルに書き込みます。

HDF5 出力では layout を指定できます(デフォルトは GWpy 互換の dataset-per-entry)。

sgd.write("out.h5", format="hdf5")               # GWpy互換(既定)
sgd.write("out.h5", format="hdf5", layout="group")  # 旧形式(group-per-entry)

HDF5 のデータセット名(GWpy の path= 用):

  • キーは HDF5 で安全な名前にサニタイズされます(例: H1:SPEC -> H1_SPEC)。

  • サニタイズ後の名前が衝突する場合、__1 のようなサフィックスが付与されます。

  • 元のキーはファイル属性に保存され、gwexpy の read() は元キーを復元します。

warning

信頼できないデータを pickle / shelve で読み込まないでください。ロード時に任意コード実行が起こり得ます。

pickle 可搬性メモ: gwexpy の SpectrogramDict は unpickle 時に builtins の dict を返します (中身は GWpy の Spectrogram、読み込み側に gwexpy は不要です)。

crop_frequencies

crop_frequencies(self, f0, f1, inplace=False)

各スペクトログラムを周波数方向でクロップします。

パラメータ

f0, f1 : float or Quantity 開始周波数と終了周波数。 inplace : bool, optional True の場合、その場で変更します。

戻り値

SpectrogramDict

degree

degree(self, unwrap: 'bool' = False) -> "'SpectrogramDict'"

各スペクトログラムの位相(度単位)を計算します。

interpolate

interpolate(self, dt, df, inplace=False)

各スペクトログラムを新しい解像度に補間します。

パラメータ

dt : float 新しい時間解像度。 df : float 新しい周波数解像度。 inplace : bool, optional True の場合、その場で変更します。

戻り値

SpectrogramDict

phase

phase(self, unwrap: bool = False, deg: bool = False, **kwargs: Any) -> Any

データの位相を計算します。

パラメータ

unwrap : bool, optional True の場合、不連続性を除去するために位相をアンラップします。デフォルトは False。 deg : bool, optional True の場合、位相を度で返します。デフォルトは False(ラジアン)。

戻り値

Series or Matrix or Collection データの位相。

plot

plot(self, **kwargs)

すべてのスペクトログラムを縦に積み重ねてプロットします。

plot_summary

plot_summary(self, **kwargs)

辞書をスペクトログラムとパーセンタイルサマリーを並べてプロットします。

radian

radian(self, unwrap: 'bool' = False) -> "'SpectrogramDict'"

各スペクトログラムの位相(ラジアン単位)を計算します。

rebin

rebin(self, dt, df, inplace=False)

各スペクトログラムを新しい時間/周波数解像度にリビンします。

パラメータ

dt : float 新しい時間ビンサイズ。 df : float 新しい周波数ビンサイズ。 inplace : bool, optional True の場合、その場で変更します。

戻り値

SpectrogramDict

to_matrix

to_matrix(self)

SpectrogramMatrix に変換します。

戻り値

SpectrogramMatrix (N, Time, Freq) の3D配列。

to_cupy / to_dask / to_jax / to_tensorflow / to_torch

各アイテムを対応するフレームワークのテンソル/配列に変換します。辞書を返します。

write

write(self, target, *args, **kwargs)

辞書をファイルに書き込みます。