首页 > 解决方案 > Netlogo:SHP胶印世界展示

问题描述

我正在为城市模拟加载城市网格 SHP 文件,但显示偏离世界窗口,如下图所示:

在此处输入图像描述

红色箭头表示意外的额外空间,蓝色箭头表示被更多城市网格占据但未被世界窗口覆盖的区域。这是设置代码:

to setup
  clear-all
  ask patches [set pcolor [225 226 228]]
  load-dataset

  draw-ins_industr20_a
  draw-curva_nivel20_l
  draw-cuerpo_agua20_a
  draw-corriente_ag20_l
  draw-carretera20_l
  draw-camino20_l
  draw-camellon20_a
  draw-manzana20_a
  draw-movilidad

  copy-values-to-patch
  fitness
  set threshold 4
  reset-ticks
end

这是加载数据集的过程:

to load-dataset
  set ins_industr20_a-dataset gis:load-dataset "datos/ins_industr20_a.shp"
  set manzana20_a-dataset gis:load-dataset "datos/manzana20_a.shp"
  set curva_nivel20_l-dataset gis:load-dataset "datos/curva_nivel20_l.shp"
  set cuerpo_agua20_a-dataset gis:load-dataset "datos/cuerpo_agua20_a.shp"
  set corriente_ag20_l-dataset gis:load-dataset "datos/corriente_ag20_l.shp"
  set carretera20_l-dataset gis:load-dataset "datos/carretera20_l.shp"
  set camino20_l-dataset gis:load-dataset "datos/camino20_l.shp"
  set camellon20_a-dataset gis:load-dataset "datos/camellon20_a.shp"
  set area_cultivo20_a-dataset gis:load-dataset "datos/area_cultivo20_a.shp"
  set movilidad-dataset gis:load-dataset "datos/Movilidad.shp"
end

和相关的prj文件在这里

结果,模拟输出红色箭头灰色区域的城市增长,这是错误的。如何解决此问题,以便模拟不考虑灰色区域,并将所有城市网格对齐到世界显示的限制?

标签: gisnetlogo

解决方案


这解决了这个问题:

set envelope gis:load-dataset "data/polygon.shp" 
gis:set-world-envelope gis:envelope-of envelope

polygon.shp 等于要在世界窗口中显示的视图范围。然后,为了消除额外的灰色空间,在模型设置对话框中使用 max-pxcor 和 max-pycor 值,直到窗口视图与 shp 文件的范围相匹配。信封命令保证将始终显示 shp 文件的范围。


推荐阅读