首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NetLogo -如何读取和存储数据从地理信息系统光栅在一个字典或两个平行列表?

NetLogo -如何读取和存储数据从地理信息系统光栅在一个字典或两个平行列表?
EN

Stack Overflow用户
提问于 2015-01-15 15:46:02
回答 2查看 384关注 0票数 1

我是一个新的网络标志,我正在努力解决以下问题,在空间环境下的意见动态模型的实现。我使用以下代码导入了一个具有四个不同土地利用类(值1-4)的GIS光栅:

代码语言:javascript
复制
to loadData                                                                                    
    clear-patches
    initLandCharacter
      show "loading landCharacter from file luw6604.asc"
      set landUse gis:load-dataset landUseDataSet
      show word "rows : "gis:height-of landUse
      show word "columns: "gis:width-of landUse
      gis:set-world-envelope-ds gis:envelope-of landUse
      gis:apply-raster landUse value
      resize-world 0 gis:width-of landUse (gis:height-of landUse - ( 2 * gis:height-of landUse)) 0

在我的模型3,静态品种的人应该有不同的观点,在每个补丁在世界上根据土地使用价值在某些pxcor pycor和这个补丁与他们自己的位置之间的距离。

因此,我的想法是创建一个字典或并行列表来存储键的位置以及相应的意见。

然而,在尝试了几天之后,我比刚开始的时候更加困惑,我感到完全迷失了。请,如果有人有任何想法,如何解决这个问题。我将非常感谢

谢谢你,简

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-16 03:15:53

简,听起来好像地理信息系统的数据对你的问题并不重要。下列内容正确吗?你想要为每一对补丁存储一个值--一个意见,人。这个观点有两方面的作用:一个是人的品种,另一个是人与斑块的距离。以下是我想到的一些想法。下面的一些可能是有用的。

我看到了一些自然的方法来存储这些信息:

  1. 把意见储存在人身上。
  2. 以补丁的形式存储意见。
  3. 两种方式都储存意见。这需要小心点。
  4. 将意见存储在单独的数据结构中,可以使用修补程序和人员对进行访问。
  5. 创建一种叫做opinions的单独品种的海龟。(这可能不是你想要的。)

1、2或3是最有用的取决于程序的其余部分需要做什么。例如,如果我的程序主要是对人进行操作,那么在人中存储意见可能是最方便的。例如,我可以使用ask people [...]访问每个人的意见。

另一个因素是:

如果您在人中存储意见,那么在每个人的内部,都会有一个数据结构,其中包含您必须能够通过pxcors和pycors访问的意见,这可能是一个列表列表,或者您可以使用NetLogo通过扩展提供的一种二维数据结构:数组、表和矩阵。

如果您将意见存储在修补程序中,您可能可以将它们存储在列表中,但您必须找到列表中的正确元素。也许每个人都可以有一个特殊的索引号,指出每个补丁的意见列表中的哪个元素是对应于该人的元素。

如果使用选项4,则可能需要创建一个三维数据结构(pxcorpycor和person)。

票数 1
EN

Stack Overflow用户

发布于 2015-01-18 12:37:00

谢谢你对火星和赛斯的建议。

我终于用了下面的方法.

我在安装程序中安装了一个计数器,用于为每个修补程序分配一个id:

让计数器0设置计数器+1组id计数器

我用距离来计算每只海龟的初始意见。在这里,测试模型的代码:

让执行部分0

让值>0的虚拟补丁

问海龟[

让tx让ty显示"##############################################“询问虚拟(如果dist <?)让dist距离ty显示id显示值显示dist?价值=?陷害行动?如果是<?价值=?陷害行动?如果是<?价值=?陷害行动?如果是<?价值=?陷害行动?

代码语言:javascript
复制
if dist > ? and dist < ? and value = ? [set op ?] 
   if dist > ? and dist < ? and value = ? [set op ?]
      if dist > ? and dist < ? and value = ? [set op ?]
         if dist > ? and dist < ? and value = ? [set op ?]

if dist > ? and value = ? [set op ?]
   if dist > ? and value = ? [set op ?]
      if dist > ? and value = ? [set op ?]
         if dist > ? and value = 4 [set op ?]
show op                   

]]

结果是提供补丁id的序列,以及基于距离和补丁值的意见。以及所有海龟和斑块之间的计算距离。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27967318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档