Skip to content

Commit 03a50ab

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

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
@@ -931,6 +931,29 @@ def setOptimizationOptions(
931931
datatype="optimization-option",
932932
overridedata=None)
933933

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

0 commit comments

Comments
 (0)