我正在使用GIS扩展开发一个NetLogo模型来导入道路网络shapefile。当我在大约5x5千米的小区域上工作时,该模型工作得很好。但是,我希望允许模型的潜在用户确定自己感兴趣的区域/范围。为此,我必须加载完整的道路shapefile,它非常大(> 2 2GB),因为它覆盖了整个国家。我的想法是导入这个shapefile并使用用户定义的参数(使用“输入”按钮)来设置世界的包络。当然,在导入大型shapefile时,我面临着"GC开销限制“的问题……
我想知道是否有人会有一个建议来处理这个问题。我考虑过R扩展,以便向R发送一个命令来剪切感兴趣的区域,并将分区发送回NetLogo,但我不确定扩展是否真的是为此而创建的。
谢谢你的帮忙,
凯文
发布于 2018-10-12 18:08:54
我认为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)https://stackoverflow.com/questions/47922119
复制相似问题