打开shapefile时出错

时间:2014-02-06 21:29:25

标签: r import shapefile

我正在尝试在R中打开shapefile,但是我收到以下错误消息:

Error in getinfo.shape(filen) : Error opening SHP file

我已检查过其他响应,并且通过确保.dbf和.shx文件位于同一文件夹中,似乎已解决了大多数问题。我把它们都放在同一个文件夹中(以及其他一些扩展)但我仍然收到错误消息。我在Mac上工作。 这是我的代码:

getinfo.shape("/Users/Suz/Desktop/DWH satellite maps/20100517_Composite.shp")

我在没有.shp扩展名的情况下尝试了它,并使用其他命令,例如readShapePoints等。到目前为止,没有任何工作。请帮助,我是R的新手并制作地图,经过广泛的谷歌搜索和论坛阅读后,我仍然被卡住了。

7 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。通常带有SHP文件的其他文件。如果它们丢失了,则无法加载文件。

所以搜索是否有任何其他文件分机。与" 20100517_Composite"在源头你得到了你的文件。

还没有发表评论,但如果这是问题,我希望人们节省时间。

答案 1 :(得分:0)

您可以尝试getinfo.shape(file.choose())通过弹出窗口选择文件。如果这样可行则可能是输入字符串的问题。

注意:我在linux上,但我认为file.choose()适用于mac。

答案 2 :(得分:0)

在遇到同样的问题之后,我做了一些挖掘,找到了一个很好的线程[这里]。1 事实证明,在检查list.files()命令后发现我的文件不在那里,并且 即使我在原始代码中包含了文件路径,它仍然会产生问题中显示的错误。然后我将所有文件移动到工作目录中,然后下面的命令工作。

readShapeSpatial()

同样简单地改变wd也会有效。

setwd("directory_path")

我想我会把它放在@jbaums建议的地方,因为它可以节省我一些时间来解决这个问题。

答案 3 :(得分:0)

在删除.shp扩展程序之前,我遇到了同样的问题。

所以而不是

readShapeSpatial("/Users/Suz/Desktop/DWH satellite maps/20100517_Composite.shp")

跟着

readShapeSpatial("/Users/Suz/Desktop/DWH satellite maps/20100517_Composite")

如果您拥有工作目录中的所有文件,它应该像魅力一样。

答案 4 :(得分:0)

在R中读取shapefile的简便方法是

(获得Spatial *)对象

library(raster)
x <- shapefile("/Users/Suz/Desktop/DWH satellite maps/20100517_Composite.shp")

或(获取sf对象)

library(sf)
st_read("/Users/Suz/Desktop/DWH satellite maps/20100517_Composite.shp")

(但是使用已弃用的(不完整和过时的)函数readShapeSpatial

行动中:

library(raster)
library(sf)

f <- system.file("external/lux.shp", package="raster")
s1 <- shapefile(f) 
s2 <- st_read(f)

如果这不起作用,您需要检查您的文件是否存在:

file.exists(f)

要获取目录中的shapefile列表,可以执行

path <- "c:/temp"  # change with your directory name
ff <- list.files(path, pattern='\\.shp$', full.names=TRUE)

答案 5 :(得分:0)

这仍然是一个问题。我更直接地解决了使用shapefile调用file.choose()并手动选择文件的问题。希望这对任何人都有帮助。

library (rgdal)
a = readOGR (file.choose()) #then selecting the shape file manually 

答案 6 :(得分:-1)

提出这个问题的人和这个问题的人:readOGR() cannot open file都在使用来自naturalearthdata.com的文件。我发布这个答案是因为有很多人使用该网站来获取基础层数据。至少我下载的两个层都有点古怪。当使用getinfo.shape在r中查询时,shapefile显示正常,但readOGR失败。以下步骤适用于我,但需要访问ESRI软件。

在ArcMap中打开文件。他们开了没有问题。

将shapefile导出到地理数据库图层。

返回r,从地理数据库导入图层。这里有说明:https://gis.stackexchange.com/questions/151613/how-to-read-feature-class-in-file-geodatabase-using-r

之后导入的空间数据在r。

中正常工作