我有一个由路网组成的netlogo gis模型。 .shp文件的属性长度用于测量道路的距离。组成.shp文件中道路的折线会爆炸,因此可以找到每个顶点之间的距离。 而不是使用netlogo来计算距离(我假设它使用坐标来计算顶点之间的距离),这将导致以netlogo单位表示距离值。我想知道是否有可能将gis文件中的length属性复制到相应的链接?这将给出道路上的实际距离
任何想法如何做到这一点?
谢谢
在netlogo模型中,我遍历了每个功能列表,并复制了.shp文件中的“距离”。然后在顶点上循环,创建顶点(节点),然后在先前顶点和当前顶点(节点)之间形成链接。 即节点/顶点列表:顶点137顶点141顶点150顶点205 .... 即链接列表:链接137 141(end1:顶点137 end2:顶点141),链接150205(end1:顶点150 end2:顶点205)...
这个想法是让一些变量,例如米距作为链接拥有变量。此变量将存储链接的距离值。
breed [vertices vertex]
links-own [distance_in_meters]
foreach gis:feature-lists-of roads[
i ->
set dist_meters gis:property-value i "LENGTH"
foreach gis:vertex-list-of i[
j ->
let first-node nobody
let previous-node nobody
foreach j[
k ->
let location gis:location-of k
if not empty? location[
ifelse any? vertices with [xcor = item 0 location and ycor = item 1
location]
[]
[
create-vertices 1[
set xcor item 0 location
set ycor item 1 location
set shape "circle"
set size 0.2
]
]
let node-here (vertices with [xcor = item 0 location and ycor = item 1
location]
if-else previous-node-point = nobody
[set first-node node-here]
[let who-node 0
let who-prev 0
as node-here
[create-link-with previous-node
set who-node who]
ask previous-node-point [set who-prev who]
]
set previous-node one-of nodes-here
]]]]