NetLogo GIS:处理大型 shapefile
Posted
技术标签:
【中文标题】NetLogo GIS:处理大型 shapefile【英文标题】:NetLogo GIS: dealing with large shapefile 【发布时间】:2018-06-03 23:06:55 【问题描述】:我正在开发一个 NetLogo 模型,使用 GIS 扩展来导入道路网络 shapefile。当我在大约 5x5 公里的小区域工作时,该模型运行良好。但是,我想允许模型的潜在用户自行确定他们感兴趣的区域/范围。为此,我必须加载非常大(> 2GB)的完整道路形状文件,因为它覆盖了整个国家区域。 我的想法是导入这个 shapefile 并使用用户定义的参数(使用“输入”按钮)来设置世界的包围。当然,在导入大型 shapefile 时,我会遇到“GC 开销限制”问题...
我想知道是否有人会提出处理这个问题的建议。我想过 R 扩展向 R 发送命令以切割感兴趣的区域并将子区域发送回 NetLogo,但我不确定扩展是否真的为此而设计。
感谢您的帮助,
凯文
【问题讨论】:
【参考方案1】:我认为 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)
【讨论】:
以上是关于NetLogo GIS:处理大型 shapefile的主要内容,如果未能解决你的问题,请参考以下文章
GIS开发Esri Shapefile(.shp)矢量数据文件读取(C++Python)
中国行政区划,道路等shapefile格式的GIS数据在哪里下载?还有中国人口数据,1km*1km栅格形式的。