ionworks-api Python パッケージは、モデルとパラメータ化モデルをプログラムから管理するためのサブクライアントを提供します。インストールと認証についてはPython API クライアントページを参照してください。
モデル
client.model を使用してモデルの作成、一覧、更新、削除を行います。
モデルの一覧
from ionworks import Ionworks
client = Ionworks()
# List all models
models = client.model.list()
for model in models:
print(f"{model.name} (type: {model.model_type})")
# Filter by name
models = client.model.list(name="SPM")
# Paginate results
models = client.model.list(limit=10, offset=0)
サポートされるフィルター: name、name_exact、created_by_email、created_after、created_before、updated_after、updated_before、order_by、order。
モデルの取得
model = client.model.get("your-model-id")
print(model.config)
モデルの作成
model = client.model.create({
"name": "Custom SPM",
"config": {"model_type": "SPM"},
"description": "Single Particle Model with custom variables",
})
モデルの更新
model = client.model.update("your-model-id", {
"name": "Custom SPM v2",
"description": "Updated description",
})
カスタム変数の追加
model = client.model.add_custom_variable("your-model-id", {
"name": "Total energy [W.h]",
"expression": "Voltage [V] * Current [A] * Time [s] / 3600",
})
モデルの削除
client.model.delete("your-model-id")
パラメータ化モデル
client.parameterized_model を使用してパラメータ化モデルの作成、一覧、更新を行います。パラメータ化モデルはセル仕様にスコープされます。
パラメータ化モデルの一覧
# List parameterized models for a cell specification
param_models = client.parameterized_model.list("your-cell-spec-id")
for pm in param_models:
print(f"{pm.name} (ID: {pm.id})")
# Paginate results
param_models = client.parameterized_model.list("your-cell-spec-id", limit=10, offset=0)
パラメータ化モデルの取得
param_model = client.parameterized_model.get("your-parameterized-model-id")
パラメータ化モデルの作成
param_model = client.parameterized_model.create("your-cell-spec-id", {
"name": "NMC622 Fitted Parameters",
"model_id": "your-model-id",
"description": "Parameters from 1C discharge fitting",
"parameters": {
"Negative electrode diffusivity [m2.s-1]": 3.3e-14,
},
})
パラメータ化モデルの更新
param_model = client.parameterized_model.update(
"your-cell-spec-id",
"your-parameterized-model-id",
{"name": "NMC622 Fitted Parameters v2"},
)
パラメータ値の取得
すべてのパラメータ値を辞書として取得します。データフィッティングや最適化ワークフローのベースラインパラメータとして便利です。
params = client.parameterized_model.get_parameter_values("your-parameterized-model-id")
print(params)
# {"Negative electrode diffusivity [m2.s-1]": 3.3e-14, ...}
変数名の取得
パラメータ化モデルから利用可能なスカラー変数名を一覧表示します。
variables = client.parameterized_model.get_variable_names("your-parameterized-model-id")
print(variables)
# ["Terminal voltage [V]", "Current [A]", ...]
どのリソースの ID も、Ionworks Studio Web アプリから確認できます。リソースの詳細ページに移動すると、URL に ID が表示されます。