【问题标题】:rgeos/rgdal bug only when rgdal but not rgeos is loadedrgeos/rgdal 错误仅在加载 rgdal 而不是加载 rgeos 时
【发布时间】:2017-05-24 11:00:35
【问题描述】:

我在 R 中遇到了导致程序崩溃的问题。我终于能够将问题缩小到以下范围。

我发现以下工作:

library(rgeos)
x = readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))")
gIsValid(x)
[1] TRUE

但是,以下情况会导致崩溃:

library(rgdal)
x = rgeos::readWKT("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))")
rgeos::gIsValid(x)

在我正在处理的 R 包中,rgdal 在描述文件的“依赖”下指定,rgeos 在“导入”下指定。所以我的代码表现得更像第二种(崩溃)场景。

以下是一些可能有用的信息:

> library(rgeos)
rgeos version: 0.3-23, (SVN revision 546)
 GEOS runtime version: 3.6.1-CAPI-1.10.1 r0 
 Linking to sp version: 1.2-4 
 Polygon checking: TRUE 

> library(rgdal)
Loading required package: sp
rgdal: version: 1.2-7, (SVN revision 660)
 Geospatial Data Abstraction Library extensions to R successfully loaded
 Loaded GDAL runtime: GDAL 1.11.5, released 2016/07/01
 Path to GDAL shared files: /usr/local/Cellar/gdal/1.11.5_2/share/gdal
 Loaded PROJ.4 runtime: Rel. 4.9.3, 15 August 2016, [PJ_VERSION: 493]
 Path to PROJ.4 shared files: (autodetected)
 Linking to sp version: 1.2-4 
> sessionInfo()
R version 3.4.0 (2017-04-21)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Sierra 10.12.5

Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] rgdal_1.2-7  sp_1.2-4     rgeos_0.3-23

loaded via a namespace (and not attached):
[1] compiler_3.4.0  grid_3.4.0      lattice_0.20-35

关于如何避免这种情况的任何想法?这是geos中的错误吗?格达尔?

【问题讨论】:

  • 你是像上面那样喂它一个小集合还是要运行一大堆点?
  • 我在提供具有更多顶点的多边形时发现了相同的行为,如果这就是您的意思的话。
  • 解决方法当然是先加载 rgeos 包。
  • 是的,我会建议先加载rgeos。它真的不应该只是崩溃,但如果它占用了大量内存并且 R 觉得需要在它工作时创建 mondo 数据集的多个副本,我可以看到可能有问题,但我从来没有这发生在我自己身上,我在具有大量 RAM 和 8 个内核的同一版本的 Sierra 上使用 Darwin。
  • 是的,它与示例中所示的小型数据集一起崩溃,因此似乎不是内存过载。

标签: r gdal geos


【解决方案1】:

最后,重新启动计算机,重新安装rgeos 和rgdal 包导致此代码不再崩溃R。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 2018-12-02
    • 2019-10-02
    • 2016-06-05
    • 2011-12-12
    • 2016-01-27
    相关资源
    最近更新 更多