我有一个包含所有法国管理限制的五个文件包(可用here)。 所有这五个文件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)中尝试过。 我还读过这个post和one。但是,现在我不知道我能做什么......
感谢您的帮助。
答案 0 :(得分:4)
该错误与dbf文件的扩展名为.DBF
而非.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
答案 1 :(得分:1)
我也从R开始(用法语...),我遇到了类似的问题,你得到了同样的信息。我发现了一个解决方案:我只是将精确的方式插入到.shp文件中。例如,使用我的Mac:/Applications/R/DEPARTEMENT/DEPARTEMENT.SHP。 GEOFLAT 2014(包含文件'DEPARTEMENT.SHP')已从IGN网站(Institutgéographiqueinternational)下载。在第一次,我改变了'SHP'为'shp'(并在R consol中写了这样的代码:'DEPARTEMENT.shp'):没有结果。在第二次,我认为意味着文件的完整路径:和成功。
我使用'maps'和'maptools'扩展名('sp'等等)。
请试试,然后回答我。
答案 2 :(得分:0)
查看readOGR(dsn = "/path/to/data", layer = "LIMITE_DEPARTEMENT", ...)
附带的rgdal
。它通常没有.dbf文件的问题。
答案 3 :(得分:-1)
也许你必须打开外包才能读取.dbf文件。