Skip to content

Commit 7822295

Browse files
committed
add toInputs() - convert pandas DataFrame.to_dict(orient='list') output to OMPython input
based on code written by joewa (see #447 (comment))
1 parent 4b57911 commit 7822295

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

OMPython/modelica_system_abc.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -937,6 +937,29 @@ def setOptimizationOptions(
937937
datatype="optimization-option",
938938
overridedata=None)
939939

940+
@staticmethod
941+
def toInputs(data: dict[str, list[float]]) -> dict[str, list[tuple[float, float]]]:
942+
"""
943+
Converts a dictionary of lists (from pandas DataFrame.to_dict(orient='list'))
944+
into the OMPython setInputs input format.
945+
946+
Example: mod.setInputs(**toInputs(pdf.to_dict(orient='list')))
947+
948+
Assumes the dictionary contains a key named 'time'.
949+
"""
950+
if "time" not in data:
951+
raise ValueError("The provided data must contain a 'time' key.")
952+
953+
time_series = data["time"]
954+
955+
inputs = {
956+
var_name: list(zip(time_series, values))
957+
for var_name, values in data.items()
958+
if var_name != "time"
959+
}
960+
961+
return inputs
962+
940963
def setInputs(
941964
self,
942965
*args: Any,

0 commit comments

Comments
 (0)