r - R 中使用 PBSmapping 包的 importShapefile 出错

标签 r gis shapefile polygons

我在 RStudio (0.97.318) 的 PBSmapping(版本 2.63.37)中收到一条关于 importShapefile 的偶发错误消息,运行 R 版本 2.15.2,平台:i386-w64-mingw32/i386(32 位)。我在运行以前版本的 R 和 RStudio 时也收到了错误。

> ST6 = importShapefile("Data/pvi_stat_2002_utm.shp", projection="UTM", readDBF = TRUE)
Error in 1:nrow(dbf) : argument of length 0

> traceback()
2: cbind(1:nrow(dbf), dbf)
1: importShapefile("Data/pvi_stat_2002_utm.shp", projection = "UTM",readDBF = TRUE)

我只是偶尔收到此错误 - 也许每 10 次运行代码就有 1 次。但是一旦在 session 中发生错误,它就会重复发生,并且直到我完全关闭R并重新打开它之后才会成功执行命令。有一次,我不得不重新启动计算机才能使其工作,因为连续重新打开 R 没有帮助。

我认为这可能是内存问题,但有时当工作区中没有对象时我会收到错误消息。通常,即使我加载了大型对象,代码也可以正常运行。为了响应该错误,我已从工作区中删除了所有对象,甚至随后使用了 gc(),但无济于事。

这是我收到错误的唯一 shapefile,但由于它是我定期使用的唯一 shapefile,并且由于我无法预测错误何时会发生,因此我对其他 shapefile 的努力尚无定论。不确定是否将 shapefile 上传到 Stack Overflow。压缩文件约为 9MB。

最佳答案

查看 shape 文件所在的文件夹。实际上有 .dbf 文件吗?如果有,听起来像是空的、损坏的或命名错误的。您是否希望您的形状文件具有带有属性的多边形。您可以尝试 importShapefile(... readDBF = FALSE ) 吗?也许您可以通过保管箱链接或其他方式提供我们的数据?

或者您是否尝试过rgdal:::readOGR或者我个人最喜欢的maptools:::readShapePoly()。我个人认为 readShapePoly() 非常强大,并且有一些方法可以将 SpatialPolygonsDataFrame 从 sp 强制转换为 PolySet > 来自 PBS。

如果你真的必须使用 PBS,你尝试过吗...

require( maptools )
require( sp )
myshp <- readShapePoly("Data/pvi_stat_2002_utm")
myshpPBS <- SpatialPolygons2PolySet( myshp )

我假设您的 shapefile 中有一个 .prj 文件,用于描述投影信息?

关于r - R 中使用 PBSmapping 包的 importShapefile 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15392469/

相关文章:

r - 让这个简单的循环在 R 中更加高效?

r - ggplot2:在准时间轴上绘制时间序列和多点预测

performance - MapServer 性能缓慢

javascript - OpenLayers - 获取几何投影

r - R 中的交点和多边形

python - 如何使用 geopandas 和 python 连接/合并多个压缩的 shapefile?

来自自定义 shapefile 的 R Highcharter map

r - 使用 ggplot2 绘制 2D 极坐标网格

r - 在 R 中划分数据和拟合

R:计算两个点层之间的最短距离