NetLogo GIS: 如何处理大型shapefile文件

4
我正在使用GIS扩展编写NetLogo模型,导入道路网络shapefile。当我处理一个约5×5公里的小区域时,该模型运行良好。但是,我希望允许潜在的模型用户自己确定他们感兴趣的区域/范围。为此,我必须加载完整的道路shapefile,该文件非常大(> 2GB),因为它覆盖了整个国家地区。
我的想法是导入这个shapefile,并使用用户定义的参数(使用“input”按钮)来设置世界的范围。当然,在导入大型shapefile时,我遇到了“GC超过限制”的问题...
我想知道是否有人有处理这个问题的建议。我考虑使用R扩展名将命令发送到R以裁剪感兴趣的区域并将子区域发送回NetLogo,但我不确定该扩展名是否真的适用于此。
谢谢你的帮助,
Kevin
1个回答

0

我认为R或Python扩展程序可以很好地解决这个问题。

r:put "minX" extent_minX
r:put "minY" extent_minY
r:put "maxX" extent_maxX
r:put "maxY" extent_maxY

;Write a little function that takes the coordinates and returns the path to the clipped vector.
r:eval "PathVector = ClipFunction(minX, minY, maxX, maxY)"

set PathToVector r:get "PathVector"

;load the dataset. Something like
set roads gis:load-dataset PathToVector
gis:set-world-envelope (gis:envelope-of roads)
;etc. I've only ever loaded rasters, not vector, but you have this code. 

然后,无论是立即删除向量文件,还是在运行结束时进行删除,您都需要删除向量文件。

r:eval "deletefile(PathVector)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接