我正在使用GIS扩展程序开发NetLogo模型以导入道路网络shapefile。当我在约5x5 km的小区域工作时,该模型工作正常。但是,我想允许模型的潜在用户确定他们的区域/兴趣范围。为了这个目标,我必须加载非常大(> 2GB)的完整道路形状文件,因为它覆盖整个国家区域。 我的想法是导入这个shapefile并使用用户定义的参数(使用"输入"按钮)来设置世界的包络。当然,我面临着GC开销限制"导入大型shapefile时出现问题...
我想知道是否有人会建议处理这个问题。我想到了向R发送命令的R扩展,用于切割感兴趣的区域并将子区域发送回NetLogo,但我不确定扩展是否真的是为此做的。
感谢您的帮助,
凯文答案 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)