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栅格形式的。

gis个人数据库要素类可以变为要素类吗

在ARCGIS软件下,创建shapefile数据和文件数据库的步骤

计算 shapefile 的面积

Arcgis保存shapefile文件 输出名称无效