从工作区和至工作区¶
在本演示中,我们将介绍使用 From Workspace 和 To Workspace 块的具体方法。我们的目标是展示如何向模型输入数据或从模型读取数据。为此,我们实施了一个简单的模型,如下图所示。
接下来,我们将插入组成 WorkspaceArray 数据结构所需的库。
首先,我们将创建一个包含时间和数据列的 DataFrame 结构。
然后,我们将创建一个 WorkspaceArray 对象,其第一个参数是数据库的内部名称,第二个参数是 DataFrame 结构中的数据。
In [ ]:
using DataFrames
In [ ]:
# Задаем данные:
t = [1.0, 2.0, 4.0];
d = rand(Float64, size(t));
In [ ]:
df = DataFrame(time=t, value=d)
Out[0]:
In [ ]:
wa = WorkspaceArray(string(rand()), df)
Out[0]:
让我们继续运行我们的模型。
In [ ]:
function run_model( name_model, path_to_folder )
Path = path_to_folder * "/" * name_model * ".engee"
if name_model in [m.name for m in engee.get_all_models()] # Проверка условия загрузки модели в ядро
model = engee.open( name_model ) # Открыть модель
model_output = engee.run( model, verbose=true ); # Запустить модель
else
model = engee.load( Path, force=true ) # Загрузить модель
model_output = engee.run( model, verbose=true ); # Запустить модель
engee.close( name_model, force=true ); # Закрыть модель
end
return model_output
end
Out[0]:
In [ ]:
run_model("from_to_workspace", @__DIR__)
在输出结果中,我们还将得到 WorkspaceArray 结构。让我们查看其字段,并与输入数据进行比较。
In [ ]:
dump(out)
In [ ]:
data = collect(out)
Out[0]:
In [ ]:
using Plots
plot(df.time,df.value) # Входные данные
plot!(data.time,data.value) # Выходные данные
Out[0]:
从比较结果中我们可以看到,我们输入模型的数据增加了一倍。
结论¶
我们已经演示了将数据从工作区传输到模型并返回的选项。环境的这些功能大大简化了您与模型的交互。