Netlogo gis(道路网络):从gis复制距离(特征)到netlogo中的道路链接

时间:2019-04-17 09:13:24

标签: netlogo

我有一个由路网组成的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
]]]]

0 个答案:

没有答案