gpt4 book ai didi

java - Netlogo Api Controller - 获取 TableView

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:05:15 27 4
gpt4 key购买 nike

我正在使用 Netlogo Api Controller 和 spring boot这是我的代码(我从 link 得到的)

HeadlessWorkspace workspace = HeadlessWorkspace.newInstance();
try {
workspace.open("models/Residential_Solar_PV_Adoption.nlogo",true);

workspace.command("set number-of-residences 900");
workspace.command("set %-similar-wanted 7");
workspace.command("set count-years-simulated 14");
workspace.command("set number-of-residences 500");
workspace.command("set carbon-tax 13.7");
workspace.command("setup");
workspace.command("repeat 10 [ go ]");
workspace.command("reset-ticks");
workspace.dispose();

workspace.dispose();
}
catch(Exception ex) {
ex.printStackTrace();
}

我在控制台中得到了这个结果:

enter image description here

但我想获取 TableView 并保存到数据库。我可以使用哪个命令来获取 TableView ?

表格 View :

enter image description here

有什么帮助吗?

最佳答案

如果您能弄清楚为什么要尝试以这种方式生成数据,我或其他人可能会给出更好的建议。

没有单独的 NetLogo 命令或 NetLogo API 方法来生成该表,您必须使用 BehaviorSpace 来获取它。以下是一些选项,按照从最简单到最难的粗略顺序列出。

选项 1

如果可能,我建议您只从命令行运行 BehaviorSpace 实验来生成您的表格。这将为您提供与您正在寻找的完全相同的输出。您可以在 the NetLogo manual's BehaviorSpace guide 中找到有关如何执行此操作的信息。 .如有必要,您可以从 Java 程序中的命令行 headless 运行 NetLogo,只需查找有关从 Java 调用外部程序的资源,也许使用 ProcessBuilder

如果您在 Java 中运行以设置和更改您的 BehaviorSpace 实验的参数,而您无法在该程序中执行此操作,您可以改为在 Java 中生成实验 XML 文件以传递给 NetLogo命令行。参见 the docs on the XML format .

选项 2

您可以在模型中使用 CSV 扩展重新创建表格的内容,并添加更多命令来生成数据。这不会创建完全相同的表格,但会以计算机和人类可读的格式输出数据。

在纯 NetLogo 代码中,您需要如下所示的内容。请注意,在 Java 代码中运行 setupgo 之前,您可以通过运行其他预实验命令来控制更多行为(如文件名或所需变量)。您还可以使用控制 API 从 Java 运行特定于 CSV 的文件代码并保持模型不变,但是您需要编写自己的 csv:to-row 原语的 NetLogo 代码版本。

globals [
;; your model globals here

output-variables
]

to setup
clear-all

;;; your model setup code here

file-open "my-output.csv"
; the given variables should be valid reporters for the NetLogo model
set output-variables [ "ticks" "current-price" "number-of-residences" "count-years-simulated" "solar-PV-cost" "%-lows" "k" ]
file-print csv:to-row output-variables

reset-ticks
end

to go
;;; the rest of your model code here

file-print csv:to-row map [ v -> runresult v ] output-variables
file-flush
tick
end

选项 3

如果您确实需要准确地重现 BehaviorSpace 表导出,您可以尝试直接从 Java 运行 BehaviorSpace 实验。表生成by this code但如您所见,它与 LabProtocol 类相关联,这意味着您必须通过 BehaviorSpace 设置和运行模型,而不是像在您的示例代码。

一个很好的例子可能是 the Main.scala object ,它从预期的命令行参数中提取一些实验设置,然后将它们与 lab.run() 方法一起使用以运行 BehaviorSpace 实验并生成输出。那是 Scala 代码而不是 Java,但希望它不会太难翻译。同样,您必须设置一个 org.nlogo.nvm.LabInterface.Settings 实例并将其传递给 HeadlessWorkspace.newLab.run() 以使事情顺利进行。

关于java - Netlogo Api Controller - 获取 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58317724/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com