ionworks-api Python パッケージは、モデルとパラメータ化モデルをプログラムから管理するためのサブクライアントを提供します。インストールと認証についてはPython API クライアントページを参照してください。
モデル
client.model を使用してモデルの作成、一覧、更新、削除を行います。
モデルの一覧
name、name_exact、created_by_email、created_after、created_before、updated_after、updated_before、order_by、order。
モデルの取得
config フィールド(例: {"type": "SPMe"})は get レスポンスに含まれます。create のレスポンスでは None になる場合があるため、必要な場合は get で再取得してください。
モデルの作成
config の type は PyBaMM のモデルクラス名です(SPM、SPMe、DFN)。
モデルの更新
カスタム変数の追加
モデルの削除
Ionworks モデルを PyBaMM モデルとしてダウンロード
client.model.download() を使うと、Ionworks モデル
(ECM、LumpedSPMR、LumpedSPMeR、MSMR モデル、GITTModel など) をすぐに使える
PyBaMM モデルとして取得できます。サーバー側でライセンス付き ionworkspipeline
パッケージからモデルを構築し、シリアライズされた形で返すため、ローカルでは
pybamm のみインストールされていれば実行可能です(ionworkspipeline の
ライセンスは不要です)。
options= で指定でき、path= で
シリアライズ後の JSON をディスクに保存して後で再読み込みしたり、
カスタムモデルとして再アップロードしたりできます:
client.pybamm_models() が返す
"ionworks_models" 配下のエントリと一致します。標準の PyBaMM モデル
(SPM、SPMe、DFN など)はこのエンドポイントでは提供されません —
直接 pybamm でインスタンス化してください。
シリアライズはモデルの数学的構造(rhs、代数方程式、変数、イベント、
初期条件)を保持しますが、
set_initial_state などの Python ヘルパー
メソッドや classmethod は保持しません。path を指定した場合、ファイル内に Infinity/NaN トークンが含まれる
ことがあります(PyBaMM は無限大の境界やイベントしきい値を使用するため)。
Python の json および Serialise.load_custom_model はこれを問題なく
読み込めますが、厳格なパーサ(JSON.parse、jq など)は拒否します。client.model.serialize() を使うと PyBaMM を
経由せずに dict を取得できます:
ジオメトリとメッシュは保持されます
ダウンロードされたモデルは、元の Ionworks モデルが構築されたときのgeometry、var_pts、spatial_methods、submesh_types を
シリアライズした形で保持しています。これをカスタムモデルとして
再アップロードした場合 — あるいは parse_model を経由するパイプラインに
渡した場合 — これらの値はモデルの default_geometry、default_var_pts、
default_spatial_methods、default_submesh_types として復元されるため、
下流の pybamm.Simulation が空のデフォルトにフォールバックすることなく
正しいメッシュで離散化を行います。ジオメトリを手動で再構築する必要は
ありません。
パラメータ化モデル
client.parameterized_model を使用してパラメータ化モデルの作成、一覧、更新を行います。パラメータ化モデルはセル仕様にスコープされます。
パラメータ化モデルの一覧
パラメータ化モデルは、単一のセル仕様にスコープして一覧表示することも、プロジェクト内のすべてのセル仕様にまたがって一覧表示することもできます。list_by_project を使用します。project_id を省略した場合、クライアントに設定された project_id がデフォルトとして使用されます(API クライアントを参照)。
list_by_project は最大 1000 件までの limit 値を受け付けるため、UI セレクターの初期化やモデルの一括処理時に、プロジェクト内のすべてのモデルを 1 回のリクエストで読み込むことができます。パラメータ化モデルの取得
パラメータ化モデルの作成
パラメータ化モデルの作成または取得
セットアップスクリプトを安全に再実行可能にするには、create_or_get を使用します。同じセル仕様に対して同じ名前のパラメータ化モデルが既に存在する場合、409 Conflict エラーを発生させる代わりに既存のものを返します。
client.cell_spec、client.cell_instance、client.cell_measurement で既に利用可能な create_or_get の動作を踏襲しています。セルデータに対する同じパターンについては、べき等なアップロード を参照してください。
パラメータ化モデルの更新
パラメータ値の取得
すべてのパラメータ値を辞書として取得します。データフィッティングや最適化ワークフローのベースラインパラメータとして便利です。変数名の取得
パラメータ化モデルから利用可能なスカラー変数名を一覧表示します。ECM パラメータ化
client.ecm を使用して、サイクリングデータに等価回路モデル (R0 + N 個の RC ペア、および任意の OCV) をフィットし、その結果をパラメータ化モデルとして永続化します。認証済みのフィットはバックグラウンドジョブとして実行されます — fit_from_measurements と fit_from_file はすぐに EcmFitJob ハンドルを返し、wait_for_completion がワーカーの完了までブロックします (通常 10–60 秒)。
ocv_soc_curve を使った容量同時フィット、セグメントごとの SOC シード、ノット解像度のチューニングを含む完全なガイドは ECM パラメータ化を参照してください。
保存された測定からフィットする
ローカルファイルからフィットする
fit_from_file は CSV、parquet、ionworksdata が検出できるすべてのサイクラー形式を受け付けます。フィット前にファイルをプレビューするには client.ecm.detect_and_read(file) を使用します。
フィット結果をパラメータ化モデルとして保存
parameterized_model_id は client.simulation.protocol(...) で parameterized_model として使用できます。