在RStudio中打开SHP文件

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个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
4
错误与dbf文件的扩展名是.DBF而不是.dbf有关,因此一种解决方法是将其重命名。
在R中读取shapefile最好使用rgdal::readOGR函数。
我在/tmp文件夹中有shape文件,因此请将其更改为您的实际路径以使其工作。
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

太棒了!这么简单...(又有点棘手)谢谢,谢谢,谢谢... :) - jonathan

1
我也使用R(在法语中...),并且遇到了类似的问题,得到了与您相同的消息。 我发现了一个解决方案:我只需插入.shp文件的确切路径。 例如,在我的Mac上:/Applications/R/DEPARTEMENT/DEPARTEMENT.SHP。 GEOFLAT 2014目录(包含文件'DEPARTEMENT.SHP')已从IGN网站(国家地理研究所)下载。 首先,我将'SHP'更改为'shp'(并在R控制台中写成'DEPARTEMENT.shp'):没有结果。 第二次,我想到了意味着完成文件路径:成功了。 我使用了'maps'和'maptools'扩展(使用'sp'等)。 请尝试一下,并回答我。

0
请查看带有rgdalreadOGR(dsn = "/path/to/data", layer = "LIMITE_DEPARTEMENT", ...)。它通常不会出现.dbf文件的问题。

-1

也许你需要打开外部包才能读取 .dbf 文件。


外部包现在已经打开,但没有任何变化。我还尝试了« france<-read.dbf("LIMITE_DEPARTEMENT", package="foreign") »。 - jonathan
我尝试使用shape<-readShapeSpatial("path_to_shape/shape.shp"),它可以正常工作。 - matteo
嗷...这里发生了什么?如果我将文件重命名为"shape.shp"和"shape.dbf",错误就变成了"打开SHP文件时出错"。//你使用其他的软件包吗?sp/gripd/lattice/gpclib? - jonathan
实际上不是这样的..我已经安装了sp和maptools。 - matteo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,