我是一个新的网络标志,我正在努力解决以下问题,在空间环境下的意见动态模型的实现。我使用以下代码导入了一个具有四个不同土地利用类(值1-4)的GIS光栅:
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和这个补丁与他们自己的位置之间的距离。
因此,我的想法是创建一个字典或并行列表来存储键的位置以及相应的意见。
然而,在尝试了几天之后,我比刚开始的时候更加困惑,我感到完全迷失了。请,如果有人有任何想法,如何解决这个问题。我将非常感谢
谢谢你,简
发布于 2015-01-16 03:15:53
简,听起来好像地理信息系统的数据对你的问题并不重要。下列内容正确吗?你想要为每一对补丁存储一个值--一个意见,人。这个观点有两方面的作用:一个是人的品种,另一个是人与斑块的距离。以下是我想到的一些想法。下面的一些可能是有用的。
我看到了一些自然的方法来存储这些信息:
opinions的单独品种的海龟。(这可能不是你想要的。)1、2或3是最有用的取决于程序的其余部分需要做什么。例如,如果我的程序主要是对人进行操作,那么在人中存储意见可能是最方便的。例如,我可以使用ask people [...]访问每个人的意见。
另一个因素是:
如果您在人中存储意见,那么在每个人的内部,都会有一个数据结构,其中包含您必须能够通过pxcors和pycors访问的意见,这可能是一个列表列表,或者您可以使用NetLogo通过扩展提供的一种二维数据结构:数组、表和矩阵。
如果您将意见存储在修补程序中,您可能可以将它们存储在列表中,但您必须找到列表中的正确元素。也许每个人都可以有一个特殊的索引号,指出每个补丁的意见列表中的哪个元素是对应于该人的元素。
如果使用选项4,则可能需要创建一个三维数据结构(pxcor、pycor和person)。
发布于 2015-01-18 12:37:00
谢谢你对火星和赛斯的建议。
我终于用了下面的方法.
我在安装程序中安装了一个计数器,用于为每个修补程序分配一个id:
让计数器0设置计数器+1组id计数器
我用距离来计算每只海龟的初始意见。在这里,测试模型的代码:
让执行部分0
让值>0的虚拟补丁
问海龟[
让tx让ty显示"##############################################“询问虚拟(如果dist <?)让dist距离ty显示id显示值显示dist?价值=?陷害行动?如果是<?价值=?陷害行动?如果是<?价值=?陷害行动?如果是<?价值=?陷害行动?
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的序列,以及基于距离和补丁值的意见。以及所有海龟和斑块之间的计算距离。
https://stackoverflow.com/questions/27967318
复制相似问题