NetLogo GIS:处理大型shapefile

时间:2017-12-21 09:46:15

标签: gis netlogo shapefile overhead

我正在使用GIS扩展程序开发NetLogo模型以导入道路网络shapefile。当我在约5x5 km的小区域工作时,该模型工作正常。但是,我想允许模型的潜在用户确定他们的区域/兴趣范围。为了这个目标,我必须加载非常大(> 2GB)的完整道路形状文件,因为它覆盖整个国家区域。 我的想法是导入这个shapefile并使用用户定义的参数(使用"输入"按钮)来设置世界的包络。当然,我面临着GC开销限制"导入大型shapefile时出现问题...

我想知道是否有人会建议处理这个问题。我想到了向R发送命令的R扩展,用于切割感兴趣的区域并将子区域发送回NetLogo,但我不确定扩展是否真的是为此做的。

感谢您的帮助,

凯文

1 个答案:

答案 0 :(得分: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)