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 の一部になります
一括処理をしつつ、どのマップがどの条件に対応するかを明示できます
よくある誤読
キーが揃っているだけで正規化や変換条件まで揃っていると思う
サニタイズ後の出力キーを元の物理ラベルだと誤認する
同じ変換手法で作ったか確認せず、キー単位で比較を進める
どのページへ進むか
各マップの解釈: Spectrogram
整列済みグリッド解析: SpectrogramMatrix
実務ワークフロー: ブートストラップ PSD & GLS フィット, グリッチ詳細解析
メソッド
__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)
辞書をファイルに書き込みます。