java Repast Simphony:关闭批处理运行中的数据收集
我们一直在开发Repast Simphony,现在正在尝试扩大模拟规模。 GUI对于测试来说非常棒,但是,我们不需要那些数据集来进行更大的运行。 我假设我们可以通过从GUI中删除数据集或删除*来停止数据收集。定义它们的xml文件,但这将使切换回小型测试变得困难
如果模拟处于批处理模式,是否有停止Repast数据收集的方法? 差不多-
public class myBuilder implements ContextBuilder<Object> {
@Override
public Context build(Context<Object> context) {
// some very intelligent code
// with excellent commenting
if(RunEnvironment.getInstance().isBatch()) {
// what can I put here?
// something like this?
AbstractDataSetManager.getInstance.clearDataSets();
}
} // end build()
}// end myBuilder class
是否有类似于运行环境的数据集类? 还是通过主上下文访问数据聚合器的方法
# 1 楼答案
不幸的是,在调用
ContextBuilder.build
时,删除数据集已经太晚了,因为它们已经初始化。您可以从场景中手动删除数据集。例如xml如果您保留两个副本—一个用于批处理,另一个用于GUI,并在它们之间进行交换(将适当的副本复制到
scenario.xml
),这应该会满足您的需要。我会避免使用一个文件并在必要时取消注释。如果在GUI中加载带有注释的数据集的场景并进行编辑和保存,那么这些数据集就不再被注释掉,而根本就不会被写入,因此这并不特别健壮