NetLogo GIS:处理大型形状文件

NetLogo GIS:处理大型形状文件,gis,netlogo,shapefile,overhead,Gis,Netlogo,Shapefile,Overhead,我正在开发一个NetLogo模型,使用GIS扩展导入道路网络形状文件。当我在大约5x5公里的小范围内工作时,该模型运行良好。然而,我想让模型的潜在用户自己确定他们感兴趣的领域/范围。为此,我必须加载整个道路形状文件,该文件非常大(>2GB),因为它覆盖整个国家地区。 我的想法是导入这个shapefile并使用用户定义的参数(使用“输入”按钮)来设置世界的包络。当然,在导入大型shapefile时,我面临“GC开销限制”问题 我想知道是否有人会提出处理这个问题的建议。我考虑过R扩展向R发送一个命令

我正在开发一个NetLogo模型,使用GIS扩展导入道路网络形状文件。当我在大约5x5公里的小范围内工作时,该模型运行良好。然而,我想让模型的潜在用户自己确定他们感兴趣的领域/范围。为此,我必须加载整个道路形状文件,该文件非常大(>2GB),因为它覆盖整个国家地区。 我的想法是导入这个shapefile并使用用户定义的参数(使用“输入”按钮)来设置世界的包络。当然,在导入大型shapefile时,我面临“GC开销限制”问题

我想知道是否有人会提出处理这个问题的建议。我考虑过R扩展向R发送一个命令,用于切割感兴趣的区域并将分区发送回NetLogo,但我不确定该扩展是否真的用于此

谢谢你的帮助


Kevin

我认为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)