wmap <- readOGR(dsn="~/R/funwithR/data/ne_110m_land", layer="ne_110m_land")
此代码未加载形状文件,并生成错误为
Error in ogrInfo(dsn = dsn, layer = layer, encoding = encoding, use_iconv = use_iconv, :
Cannot open file
我确信目录是正确的。在最后/也不在那里,层名也是正确的。
在ne_110m_land目录文件中,我有:
ne_110m_land.dbf
ne_110m_land.prj
ne_110m_land.shp
ne_110m_land.shx
ne_110m_land.VERSION.txt
ne_110m_land.README.html
8条答案
按热度按时间3pvhb19x1#
你可以证明你有正确的道路:
不妨试试:
或者一个更简单的替代方案,它围绕着:
更新日期:
rgdal
做了一些修改,你不再需要分离路径和图层了(至少对于某些格式是这样)。(可能仍在使用path.expand)
另外,如果你还在使用
readOGR
,你就有点落后了,最好使用terra::vect
或sf::st_read
。lb3vh1jj2#
我也遇到了同样的错误。要读取shapefile,你的文件夹中需要有三个文件:.shp、.dbf和.shx文件。
2izufjch3#
对于我来说,当我包含
dsn
和layer
标记时,命令返回Cannot open layer
错误。因此,当我把它作为
readOGR('~/R/funwithR/data/ne_110m_land/ne_110m_land.shp')
包含进来时,它起作用了。请注意,我的文件是一个gjson,所以我只在
readOGR('~/R/funwithR/data/ne_110m_land/ne_110m_land.gjson')
中看到过这种情况oxiaedzo4#
强制文件应全部位于同一目录中
.shp -形状格式
.shx -形状索引格式;
.dbf -属性格式;
那么我们可以给予路径作为函数的参数。
bbmckpt75#
以下是对我有效的方法(有一个真实的例子)
确切的数据可在here(下载名为“州和地区ASGC Ed 2011数字边界在MapInfo交换格式”的.zip文件)
ylamdve66#
语法:library(raster)
s <- shapefile("~/R/funwithR/data/ne_110m_land/ne_110m_land.shp")
工作得很好!todah rabah!sauutmhj7#
正如我在其他帖子中所评论的(打开shapefile时出错),使用file.choose()并手动选择将有助于在需要选择一个文件的情况下。显然与NaturalEarth shapefile有关
7gcisfzg8#
在我看来,这是解决方案,至少在将其上传到云之前是这样