【问题标题】:NetLogo: how to read values from a data set, assigning values at each tick?NetLogo:如何从数据集中读取值,在每个刻度上分配值?
【发布时间】:2014-11-18 15:32:17
【问题描述】:

我正在对鲑鱼种群动态进行建模,并且我有一个关于温度和流量的真实数据集。我想在每个刻度期间分配这两个参数的每日值,将第一个刻度设置为数据集中的第一天并使其继续读取文件。

我该怎么做?

雅各布

【问题讨论】:

  • 文件中的数据是如何表示的? .csv?你能提供一个小样本数据吗?

标签: file-io netlogo


【解决方案1】:

NetLogo 具有相当广泛的文本文件 IO 功能(因此也适用于 CSV)。您显然将数据保存在一个简单的 CSV 文件中,因此您需要使用这些功能。简单的IO例子见https://subversion.american.edu/aisaac/notes/netlogo-intro.xhtml#file-based-io网上也有很多读取CSV文件的例子(比如http://netlogoabm.blogspot.com/2014/01/reading-from-csv-file.html)。不幸的是,NetLogo 不提供 CSV 阅读器。

您建议您要反复读取该文件。然后,您必须在整个模拟过程中保持文件打开。您可以从每个打开的文件中读取每个刻度线。

除非它是一个非常大的数据集,否则我宁愿一开始就将所有数据读入两个全局列表(例如,temparaturesflows)。既然您说要更新每个刻度的值,请使用当前刻度值索引到这些列表中。例如,set temp item ticks temperatures。 (这里我假设您只使用tick 来推进滴答计数器,以便获得连续的整数。另外,如果您在开始读取数据之前使用tick,则需要使用ticks - 1。)

【讨论】:

  • 嗨。我的数据包含在两个不同的数据集中:一个用于每日温度,另一个用于自 2002 年以来的每日流量。基本上,它们的第一列包含日期,第二列包含每日值。如何使用刻度值进行 idexing?
  • 已添加详细信息以回答。
  • 这可以是一个示例 Date Time,SG [m] 2002-01-01,0.80 2002-01-01,0.80 2002-01-01,0.80 2002-01-01,0.80 2002- 01-01,0.80 2002-01-01,0.80 2002-01-01,0.80 2002-01-01,0.80 2002-01-01,0.80 2002-01-01,0.80 2002-01-01,0.80 2002-01 -01,0.79
  • 已添加详细信息以回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 2011-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多