GWexpy バージョン間の移行#
このガイドは、GWexpy のリリース間にある破壊的変更と既存コードの移行方法をまとめます。
プロジェクト横断の GWpy 互換性ポリシーは、GWpy 対応 API の既定挙動を規定します。以下のrelease固有noteは、その契約内の変更を説明します。
v0.2.0#
遅延登録#
通常の import gwexpy は、constructor と I/O handler を即時登録しなくなりました。対応する公開 I/O entry point は、必要な handler をオンデマンドで登録します。application が constructor と I/O の完全な surface を最初から明示的に登録する必要がある場合だけ、gwexpy.register_all() を呼んでください。
削除された開発用 proxy import#
開発専用の gwexpy.utils.shell、gwexpy.utils.sphinx、gwexpy.utils.sphinx.ex2rst、gwexpy.utils.sphinx.zenodo は削除されました。shell helper は subprocess または shutil.which に置き換え、保守されている documentation または Zenodo tooling を直接使ってください。
SDB の format 名#
文書化されていなかった sqlite と sqlite3 の format alias は、GUI fallback extension を含めて削除されました。archive は .sdb に改名し、direct I/O では format="sdb" を使ってください。
SeriesMatrix の算術演算#
v0.2.0 の B0 contract では、次元を持つ raw-ndarray と SpectrogramMatrix の加算および減算を、原子的に TypeError として拒否します。暗黙に metadata を落とす算術演算に依存せず、入力を明示的に対応する表現へ先に変換してください。
v0.1.1#
1. Lorentzian Peak Parameters#
gwexpy.noise.peaks.lorentzian_line() の fwhm(半値全幅, Full Width at Half Maximum)パラメータは、内部の数学的実装や一般的なスペクトルモデリングの慣習に合わせて gamma(半値半幅, Half Width at Half Maximum)に改名されました。
移行方法#
fwhm を使用していた場合は、値を 2 で割って gamma として渡すだけです。
旧 (v0.1.0):
from gwexpy.noise.peaks import lorentzian_line
line = lorentzian_line(f0=100, amplitude=1e-21, fwhm=10)
新 (v0.1.1):
from gwexpy.noise.peaks import lorentzian_line
# Note: gamma = fwhm / 2
line = lorentzian_line(f0=100, amplitude=1e-21, gamma=5)
2. Spectral Fitting (Generalized Least Squares)#
stride パラメータは fit_bootstrap_spectrum() から削除されました。これは内部の scipy.signal.periodogram 呼び出しでエラーを引き起こす、サポートされていないキーワード引数だったためです。
移行方法#
fit_bootstrap_spectrum の呼び出しから stride キーワード引数を削除するだけです。この関数は現在、fftlength と overlap を通じてデータのセグメント分割を正しく管理します。
旧 (v0.1.0):
from gwexpy.fitting import fit_bootstrap_spectrum
results = fit_bootstrap_spectrum(series, fftlength=4, overlap=2, stride=4) # Error!
新 (v0.1.1):
from gwexpy.fitting import fit_bootstrap_spectrum
# stride is no longer required or supported
results = fit_bootstrap_spectrum(series, fftlength=4, overlap=2)
3. SegmentTable Lazy Loading#
SegmentTable.add_series_column() の loader 引数は、インデックスを取るファクトリ(loader(i))ではなく、単一の segment 引数を取る呼び出し可能オブジェクト(loader(segment))を期待するようになりました。
移行方法#
loader 関数を、行の segment(区間)を直接受け取るよう更新してください。
旧 (v0.1.0):
def my_factory(i):
return lambda: load_data(st.row(i)['span'])
st.add_series_column("data", loader=my_factory)
新 (v0.1.1):
def my_loader(segment):
return load_data(segment)
st.add_series_column("data", loader=my_loader)