Netlogo:从GIS矢量要素制作列表

Netlogo:从GIS矢量要素制作列表,gis,netlogo,Gis,Netlogo,我正在使用Netlogo的GIS扩展。这是在QGis中查看的SHP文件的属性表: 我希望获取列SUBSECTOR的所有值以生成此列表:[Ch8 Ch9 M1 M1 M11 M1 M1 M13 M14 M15 M16 M17…Mn],并将其传递给名为My list的全局变量,其代码如下: to list-subsectors foreach gis:feature-list-of Subsectors-dataset [vector-feature -> set My-list g

我正在使用Netlogo的GIS扩展。这是在QGis中查看的SHP文件的属性表:

我希望获取列SUBSECTOR的所有值以生成此列表:[Ch8 Ch9 M1 M1 M11 M1 M1 M13 M14 M15 M16 M17…Mn],并将其传递给名为My list的全局变量,其代码如下:

to list-subsectors
 foreach gis:feature-list-of Subsectors-dataset [vector-feature ->
   set My-list gis:property-value vector-feature "SUBSECTOR"]
end

但是
我的列表
只填充了一个值。怎么能全部列出?Netlogo文件可以下载

我没有办法测试它,也不知道它是否有效,但是看看你的代码,你在使用
foreach
进行迭代时,使用
设置
作为列表(创建新的列表),而不是
lput
fput
(添加项目)。以下情况会发生什么:

to list-subsectors
let My-list []
 foreach gis:feature-list-of Subsectors-dataset [vector-feature ->
   set My-list lput gis:property-value vector-feature "SUBSECTOR" My-list]
end

我无法测试这一点,也不知道它是否有效,但看看您的代码,您正在使用
set
作为列表(创建新列表),而不是
lput
fput
(添加一项),因为您使用
foreach
进行迭代。以下情况会发生什么:

to list-subsectors
let My-list []
 foreach gis:feature-list-of Subsectors-dataset [vector-feature ->
   set My-list lput gis:property-value vector-feature "SUBSECTOR" My-list]
end

通过使用GIS扩展的功能,您可以定义以下辅助功能:

to-report extract-column [column]
  report map [vector-feature -> gis:property-value vector-feature column ] (gis:feature-list-of Subsectors-dataset )
end
然后,您可以通过编写以下内容从数据文件中提取所需的任何列:

set My-list extract-column "SUBSECTOR"
show My-list
我希望这对你有用,
Fernando

通过使用GIS扩展的功能,您可以定义以下辅助功能:

to-report extract-column [column]
  report map [vector-feature -> gis:property-value vector-feature column ] (gis:feature-list-of Subsectors-dataset )
end
然后,您可以通过编写以下内容从数据文件中提取所需的任何列:

set My-list extract-column "SUBSECTOR"
show My-list
我希望这对你有用,
Fernando

您对全局变量和局部变量使用了相同的名称,因此它表示错误。尽管如此,他还是做出了必要的改变,但结果是一样的。我已经通过上传文件编辑了这篇文章,如果你想试试的话。ThanksI没有意识到这是一个全局变量。但这并没有改变我的答案-您需要在代码中包含
lput
,因为您对全局变量和局部变量使用了相同的名称,所以它声明了一个错误。尽管如此,他还是做出了必要的改变,但结果是一样的。我已经通过上传文件编辑了这篇文章,如果你想试试的话。ThanksI没有意识到这是一个全局变量。但这并没有改变我的答案——你需要在代码中有
lput