4

我有一个包含所有法国行政限制的五个文件的包(可在此处获得)。所有这五个文件 LIMITE_DEPARTEMENT.SHP/DBF/AVL/PRJ/SHX 都在文件夹 /home/jonathan/R 中。

我使用这段代码:

library(maptools)
setwd('/home/jonathan/R')
france<-readShapeSpatial("LIMITE_DEPARTEMENT", proj4string=CRS("+proj=longlat"))

这让我:

Error in read.dbf(filen1) : unable to open DBF file

我在 R (3.0.1) 和 Rstudio (0.97.551) 中尝试过。我也读过这篇文章这篇文章。但是,现在我不知道我能做什么......

谢谢你的帮助。

4

4 回答 4

4

该错误与 dbf 文件的扩展名 is.DBF和 not相关.dbf,因此一种解决方法就是重命名它。

最好使用该rgdal::readOGR函数读取 R 中的 shapefile。

我的文件/tmp夹中有形状文件,因此将其更改为您的实际路径使其工作

require(rgdal)
file.copy(from = "/tmp/LIMITE_DEPARTEMENT.DBF", 
          to = "/tmp/LIMITE_DEPARTEMENT.dbf")
file.remove("/tmp/LIMITE_DEPARTEMENT.DBF")
depart <- readOGR(dsn = "/tmp", layer = "LIMITE_DEPARTEMENT")
str(depart, max.level = 2)
## Formal class 'SpatialLinesDataFrame' [package "sp"] with 4 slots
##   ..@ data       :'data.frame':  330 obs. of  2 variables:
##   ..@ lines      :List of 330
##   .. .. [list output truncated]
##   ..@ bbox       : num [1:2, 1:2] 99226 6049647 1242375 7110524
##   .. ..- attr(*, "dimnames")=List of 2
##   ..@ proj4string:Formal class 'CRS' [package "sp"] with 1 slots
于 2013-06-26T16:01:42.673 回答
1

我也从 R(法语……)开始,我遇到了类似的问题,你得到的信息相同。而且我发现了一个解决方案:我刚刚将精确的方式插入到 .shp 文件中。例如,在我的 Mac 上:/Applications/R/DEPARTEMENT/DEPARTEMENT.SHP。GEOFLAT 2014 剧目(包含文件“DEPARTEMENT.SHP”)已从 IGN 网站(国家地理研究所)下载。第一次,我将 'SHP' 更改为 'shp'(并在 R consol 中这样写:'DEPARTEMENT.shp'):没有结果。第二次,我想到了文件的完整路径:和成功。

我使用了 'maps' 和 'maptools' 扩展名(有 'sp' 等等)。

请尝试一下,然后回答我。

于 2014-12-23T23:08:41.267 回答
0

看看readOGR(dsn = "/path/to/data", layer = "LIMITE_DEPARTEMENT", ...)随之而来的rgdal。.dbf 文件通常没有问题。

于 2013-06-26T15:51:33.057 回答
-1

也许您必须打开外部包才能读取 .dbf 文件。

于 2013-06-26T14:56:26.260 回答