在RStudio中打开SHP文件

时间:2013-06-26 14:53:11

标签: r shapefile maptools

我有一个包含所有法国管理限制的五个文件包(可用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)中尝试过。 我还读过这个postone。但是,现在我不知道我能做什么......

感谢您的帮助。

4 个答案:

答案 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文件。