From Workspace и To Workspace¶
В данной демонстрации опишем особенности использования блоков From Workspace и To Workspace. Наша цель – показать, как мы можем подать данные в модель или считать их из неё. Для этого реализована простая модель, показанная на рисунке ниже.
Далее мы подключим библиотеку, необходимую для формирования структуры данных WorkspaceArray.
Для начала создадим структуру DataFrame со столбцами временных отметок и данных.
После этого создаем объект WorkspaceArray, первый параметр которого – это внутреннее имя базы данных, а второй – данные из структуры DataFrame.
using DataFrames
# Задаем данные:
t = [1.0, 2.0, 4.0];
d = rand(Float64, size(t));
df = DataFrame(time=t, value=d)
wa = WorkspaceArray(string(rand()), df)
Перейдём к запуску нашей модели.
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
run_model("from_to_workspace", @__DIR__)
На выходе мы также получим структуру WorkspaceArray. Выполним просмотр её полей и сравним с входными данными.
dump(out)
data = collect(out)
using Plots
plot(df.time,df.value) # Входные данные
plot!(data.time,data.value) # Выходные данные
Как мы видим из сравнения, в результате данные, которые мы подали в модель, были увеличены в два раза.
Вывод¶
Мы продемонстрировали опции передачи данных из рабочей области в модели и обратно. Эти возможности среды существенно упрощают ваше взаимодействие с моделями.