java - 如何在 Gams 中从 API Java 运行 gms 模型并在文件中设置包含数据的文件夹
问题描述
我正在尝试通过 API Java 在 GAMS 中执行 GMS 模型。当我直接从 Gams Studio 执行该模型时,它运行良好。但是当我通过 API 运行模型时,我得到了很多错误。我已经搜索过,我认为我需要将输入数据添加到工作或工作区(我不知道他们中的哪些人需要知道输入数据)。我有一个文件夹,其中有很多包含数据的文件,当我运行 GMS 模型时,这些文件是从 GAMS Studio 处理的。
我相信我也需要在Java Api中添加这些文件,但是我不知道如何添加文件夹或是否需要一个一个添加以及如何添加。
我的代码很简单:
GAMSWorkspace workspace = new GAMSWorkspace();
workspace.setDebugLevel(DebugLevel.KEEP_FILES);
GAMSJob jobGams = workspace.addJobFromFile("fileModelGms");
jobGams.run();
解决方案
我已经用 Lutz 的用户助手解决了这个问题。我需要在模型使用的输入中包含一个目录。
这是我每行注释的代码,以了解 API Gams 的工作原理。我也使用了特定的工作区,因为 API 在您运行新作业时会在临时文件中创建一个文件夹。我也使用数据库 GDX 来运行我的模型。
//specific workspace information is created example: C:/Desktop/Workspace
GAMSWorkspaceInfo workspaceInfo = new GAMSWorkspaceInfo();
workspaceInfo.setWorkingDirectory("specificPathWorkspace");
//A new workspace is created with workspaceInfo.
GAMSWorkspace workspace = new GAMSWorkspace(workspaceInfo);
workspace.setDebugLevel(DebugLevel.KEEP_FILES);
//Options where you're going to set input file data.
GAMSOptions options = workspace.addOptions();
//Set path with input Data example: C:/Desktop/InputDate
options.IDir.add("PathWithInputData");
//Using a database where is data to be processed example: db.gdx
GAMSDatabase gdxdb = workspace.addDatabaseFromGDX("db.gdx");
// Creating a JOB to execute the model.
GAMSJob jobGams = workspace.addJobFromFile(entradasModeloGamsDTO.getPathModeloGams());
//Running model
jobGams.run(options,gdxdb);
推荐阅读
- python - 当“无论用户是否登录时运行”打开时,无法使用 python 在任务调度程序上发送电子邮件
- json - FormatException:意外字符(在第 2 行,第 13 个字符)。Dart/Flutter json解码
- java - Java 递归范围变量
- r - read.table 忽略空格并转换为字符
- git - Git 接收后挂钩
- python - LSTM-CNN 对图像序列进行分类
- css - SassError:无效的 CSS 预期表达式(例如 1px,粗体)
- xamarin - 如何使用 Xamarin MessagingCenter 让一页订阅来自多个不同页面的消息?
- python - 使用 docker-compose 'command:' 运行时,Supervisord 退出 Docker 容器,但从 bash 运行时不会退出
- xcode - IOS - 有没有办法在 xcode 中使用 NFC 权利进行调试而无需支付开发人员帐户费用(不分发)