2014-02-06 49 views
3

我试图打开R A shape文件,但我收到以下错误消息:错误时shape文件

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新手,制作地图,经过广泛的谷歌搜索和论坛阅读后,我仍然陷入困境。

+0

'readOGR(“/ Users/Suz/Desktop/DWH卫星地图”,“20100517_Composite”)'工作吗? ('readOGR'在'rgdal'包中)。 – jbaums

+0

另外,你可否请在你的文章中列出'list.files('/ Users/Suz/Desktop/DWH卫星地图')的输出?其次,你可以尝试一个可信的shapefile,例如[这里](http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/110m/cultural/ne_110m_admin_1_states_provinces.zip)。最后,你是否知道'getinfo.shape'只能读取shapefile的头文件,并且实际上没有读取数据 - 是你的意图? – jbaums

+0

我尝试了你建议的shapefile:getinfo.shape(“/ Users/Suz/Desktop/ne_110m_admin_1_states_provinces.shp”),并且仍然收到相同的错误信息。我开始认为我的问题是愚蠢的,我没有开放所有必要的图书馆或什么东西..?我有sp,地图工具,rgdal和rgeos。 – user3281487

回答

0

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

注:我在Linux上,但我认为file.choose()应该适用于Mac。

0

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

readShapeSpatial() 

此外,简单地改变wd也可以。

setwd("directory_path") 

我想我应该把这个作为这里建议@jbaums,因为这将有救了我一些时间解决这个问题。

0

我有同样的问题,直到我删除.shp扩展名。

所以不是

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

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

去如果你都在工作目录中它应该工作就像一个魅力的文件。

1

我刚刚有同样的问题。通常使用SHP文件来添加其他文件。如果他们缺少文件不能被加载。

因此,搜索是否有任何其他文件分机。与“20100517_Composite”在源头上你有你的文件。

不能评论,但我想要的PPL节省时间,如果这是问题。

0

的简单的方法来读出中的R shape文件是

要么(以获得空间*)对象

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) 

要在目录中获取shape文件的列表,你可以做

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

提出这个问题的人和这个人都是: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中正常工作。