Interop / 変換ガイド
ページ種別: ガイド
このページは、gwexpy の interop 専用ガイド です。
ここでいう interop は、to_*() / from_*() を中心とした 変換・橋渡し を指します。
このページで扱うもの:
to_*()/from_*()によるオブジェクト変換外部ライブラリや外部データモデルへの橋渡し
object 単位の file-bridge helper
対称でない変換 API
一部クラスにしか適用されない変換
このページで扱わないもの:
Class.read(..., format=...)obj.write(..., format=...)ローカルファイル形式の採用判断そのもの
ローカルファイルの .read() / .write() / fetch() 系の入口は ファイル I/O 対応フォーマットガイド を参照してください。
直接 I/O 名
以下は gwexpy で使う direct I/O の正規名です。
移行期間中は旧 alias も使えますが、新しい例では下の正規名を優先してください。
正規名 |
旧 alias |
代表的な direct I/O 入口 |
外部パッケージ / スキーマ |
|---|---|---|---|
|
|
|
ObsPy |
|
|
|
|
|
|
|
ndscope HDF5 schema |
|
|
|
DiagGUI / DTT XML |
このページでわかること
項目 |
内容 |
|---|---|
対象読者 |
|
前提 |
|
こんなときに読む |
|
検索キーワード |
interop, conversion, |
検索ヒント: interop, conversion, to_*, from_*, xarray, pandas, ROOT, Zarr, NetCDF4, PyTorch
セクション移動
まず最初に: 読み方
状態ラベル
A. 保存形式・コンテナ変換
B. 解析ライブラリ・オブジェクト変換
C. 機械学習・高速化・配列基盤
D. 物理・ドメイン特化ライブラリ
優先的に見るべき対象
まず最初に: 読み方
手元のオブジェクトを保存形式やコンテナに写したいなら A を見てください。
pandas / xarray / astropy / dask のような解析オブジェクトに写したいなら B を見てください。
PyTorch / TensorFlow / JAX / CuPy に渡したいなら C を見てください。
ROOT / ObsPy / LAL / PyCBC などの分野別ライブラリに接続したいなら D を見てください。
Field を xarray / NetCDF4 / Zarr に
to_*()/from_*()で渡したい場合は、I/O ではなく interop として扱います。
状態ラベル
公開済み: 実装があり、reference/api/interopから到達できる実装済み: 実装はあるが、このページ上の導線や参照整理がまだ残っている実装済み(一部経路は対応中): 主経路は使えるが、一部変換経路の完成度が不足している対応中: 専用の実装面または公開面の整理が未完対応予定: 設計対象として明示するが、まだ実装がない
オプション依存関係の方針
Interop bridge は runtime optional backend を遅延 import します。runtime backend が未導入の場合、import gwexpy の時点ではなく、該当 bridge を呼び出した時点でインストール案内付きの ImportError を送出します。
import 中心の adapter の一部は、外部 package が生成した object や dict を受け取りますが、その producer package 自体は import しません。たとえば from_pyoma_results(), from_mtspec(), from_mtspec_array(), from_uff_dataset55(), from_uff_dataset58(), from_sdynpy_*(), from_metpy_dataarray(), from_wrf_variable(), from_harmonica_grid() は、呼び出し側が渡す pyOMA, multitaper, mtspec, pyuff, SDynPy, MetPy, wrf-python, Harmonica 形式の object を消費します。これらの package は source object を作る必要がある場合に導入してください。adapter が直接 import するためではありません。
方針 |
依存関係 |
インストール案内 |
|---|---|---|
GWexpy extras で宣言済み |
|
PyPI 公開までは インストールガイド のソース導入形式を使います。例: |
個別 package install |
|
bridge が直接 import する場合、または受け渡す source object を作る必要がある場合に、該当 backend を個別に導入してください。 |
gwexpy[all] は GWexpy が宣言している extra をまとめて導入するための
convenience bundle です。すべての public interop backend を導入するもの
ではありません。個別 package install の行にある backend は、bridge が直接
import する場合や受け渡す source object を作る場合に、個別に導入してください。
xarray 系の interop bridge は、GWexpy が独立した xarray extra を公開していないため netcdf4 extra を案内します。メモリ上の xarray 変換だけが必要で netCDF4 を入れたくない場合は、xarray を個別に導入してください。
A. 保存形式・コンテナ変換
ここでは、相手が ファイル形式・保存表現・ストレージ表現 である変換を扱います。
「どの保存形式 / コンテナに写すか」を見る区分です。
目的: 保存表現を相手にする object-level bridge の入口を見分ける
入力:
gwexpyオブジェクトと、保存先のコンテナやストレージ表現出力:
to_*()/from_*()による変換結果や保存向けオブジェクト
連携先 |
API / 入口 |
状態 |
補足 |
詳細 |
|---|---|---|---|---|
|
公開済み |
object-level 変換 |
||
HDF5 FrequencySeries |
|
公開済み |
FrequencySeries HDF5 ヘルパー |
|
JSON |
|
公開済み |
JSON 文字列との相互変換 |
|
Python dict |
|
公開済み |
dict との相互変換 |
— |
|
公開済み |
object-level bridge |
||
|
公開済み |
array/store bridge |
||
|
公開済み |
object-level bridge |
B. 解析ライブラリ・オブジェクト変換
ここでは、相手が Python ライブラリのオブジェクトモデル である変換を扱います。
保存形式そのものではなく、どの解析ライブラリのオブジェクトに写すかを見る区分です。
目的: 解析ライブラリ向けの橋渡し先を選ぶ
入力:
gwexpyオブジェクト、または pandas / xarray / astropy などの外部オブジェクト出力: 解析ライブラリのオブジェクト、または
gwexpyに戻したオブジェクト
連携先 |
API / 入口 |
状態 |
補足 |
詳細 |
|---|---|---|---|---|
NumPy |
専用 |
実装済み(基盤対応) |
内部配列表現として広く利用 |
— |
|
公開済み |
Series / DataFrame |
||
pandas FrequencySeries |
|
公開済み |
FrequencySeries ⇔ pandas.Series |
|
|
公開済み |
Series / DataFrame / dict / FrequencySeries |
||
|
公開済み |
DataArray / Dataset |
||
xarray Field |
|
公開済み |
ScalarField / VectorField |
|
xarray FrequencySeries |
|
公開済み |
FrequencySeries ⇔ xarray.DataArray |
|
|
公開済み |
|
||
|
公開済み |
dask array bridge |
C. 機械学習・高速化・配列基盤
ここでは、加速計算や ML ワークフローへの橋渡しを扱います。
配列型だけ移るのか、メタデータも戻せるのかを確認してください。
目的: ML や GPU 配列への橋渡しで、何が保持されるかを見極める
入力:
gwexpyオブジェクトと、PyTorch / TensorFlow / JAX / CuPy などの連携先出力: Tensor や高速化配列、場合によっては
gwexpyへ戻すための経路
連携先 |
API / 入口 |
状態 |
補足 |
詳細 |
|---|---|---|---|---|
|
公開済み |
Tensor 変換 |
||
PyTorch Dataset |
|
公開済み |
トレーニングループ用ウィンドウデータセット |
|
|
公開済み |
Tensor 変換 |
||
|
公開済み |
JAX array 変換 |
||
|
公開済み |
GPU array 変換 |
D. 物理・ドメイン特化ライブラリ
ここでは、分野別ライブラリや専用オブジェクトとの接続を扱います。
完全往復か片方向変換か、まだ対応中の経路があるかを区別して見てください。
目的: 分野別ライブラリとの橋渡しを、直 I/O と混同せずに整理する
入力:
gwexpyオブジェクト、または ObsPy / ROOT / LAL / PyCBC などの外部オブジェクト出力: 連携先ライブラリのオブジェクト、import 結果、または限定的な往復変換
連携先 |
API / 入口 |
状態 |
補足 |
詳細 |
|---|---|---|---|---|
|
実装済み(一部経路は対応中) |
|
||
|
公開済み |
seismic bridge |
||
|
公開済み |
GW 時系列 / 周波数系列 |
||
|
公開済み |
GW 時系列 / 周波数系列 |
||
|
公開済み |
budget import |
||
|
公開済み |
optics / response |
||
|
公開済み |
FRD / response。 |
||
|
公開済み |
geophysics |
||
|
公開済み |
magnetotellurics |
||
MTpy |
専用 |
対応中 |
MTH5 周辺との整理が未完 |
— |
|
公開済み |
EEG / biosignal |
||
|
公開済み |
electrophysiology |
||
Elephant |
専用 |
対応中 |
|
— |
|
公開済み |
quantity bridge |
||
|
公開済み |
room acoustics |
||
|
公開済み |
audio object bridge |
||
|
公開済み |
export 中心 |
||
|
公開済み |
astronomy spectra |
||
|
公開済み |
spectral analysis |
||
PySpice |
|
公開済み |
import 中心 |
|
|
公開済み |
RF network analysis |
||
|
公開済み |
import 中心 |
||
multitaper |
|
公開済み |
import 中心 |
|
mtspec |
|
公開済み |
import 中心 |
|
pySDy |
|
公開済み |
import 中心 |
|
SDynPy |
|
公開済み |
import 中心 |
|
Meep |
|
公開済み |
import 中心 |
|
openEMS |
|
公開済み |
import 中心 |
|
emg3d |
|
公開済み |
EM field import/export |
|
meshio |
|
公開済み |
import 中心 |
|
MetPy |
|
公開済み |
import 中心 |
|
WRF |
|
公開済み |
import 中心 |
|
Harmonica |
|
公開済み |
import 中心 |
|
Exudyn |
|
公開済み |
import 中心 |
|
OpenSees |
|
公開済み |
import 中心 |
優先的に見るべき対象
公開面で先に理解すると効果が大きいのは次です。
ROOT:
io_formatsでは EventTable の直 I/O のみ扱い、ROOT object 変換は interop 側で説明するxarray / Field: ScalarField / VectorField の主要な機能
Zarr: direct I/O と interop の境界が混同されやすい
NetCDF4: xarray 経由のワークフローとの境界整理が必要
ObsPy: 時系列・地震波形との往復が分かりやすい
pandas / polars / astropy: 解析ワークフローの入口として頻出
関連ページ
次に読む
ファイル I/O 対応フォーマットガイド で
Class.read(..., format=...)とobj.write(...)を確認するGPS 時刻ユーティリティ で GPS 時刻やタイムゾーンの補助関数を確認する
他ライブラリ連携チュートリアル で具体例を先に見る