readOGR() 无法打开文件

readOGR() cannot open file

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

你可以证明你有正确的路径:

list.files('~/R/funwithR/data/ne_110m_land', pattern='\.shp$')
file.exists('~/R/funwithR/data/ne_110m_land/ne_110m_land.shp')

也许试试:

readOGR(dsn=path.expand("~/R/funwithR/data/ne_110m_land"), layer="ne_110m_land")

或更简单的替代方案:

library(raster)
s <- shapefile("~/R/funwithR/data/ne_110m_land/ne_110m_land.shp")

更新:

rgdal 发生了一些变化,您不再需要将路径和图层分开(至少对于某些格式而言)。所以你可以做

x <- readOGR("~/R/funwithR/data/ne_110m_land/ne_110m_land.shp")

(可能还在用path.expand)

此外,如果您仍在使用 readOGR,那您就有点落伍了。最好使用 terra::vectsf::st_read.

对我来说,当我包含 dsnlayer 标签时,命令返回了 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')

这是对我有用的方法(有一个真实的例子)

require(rgdal)
shape <- readOGR(dsn = "1259030001_ste11aaust_shape/STE11aAust.shp", layer = "STE11aAust")

确切数据可用 here(下载名为 'State and Territory ASGC Ed 2011 Digital Boundaries in MapInfo Interchange Format' 的 .zip 文件)

正如我在其他 post (Error when opening shapefile) 中评论的那样,在需要选择一个文件的情况下,使用 file.choose() 并手动选择将有所帮助。显然与 NaturalEarth 形状文件有关

我有同样的错误。要读入 shapefile,您的文件夹中需要有三个文件:.shp、.dbf 和 .shx 文件。

语法:库(光栅) s <- shapefile("~/R/funwithR/data/ne_110m_land/ne_110m_land.shp") 完美! todah rabah!

在我看来,这就是解决方案,至少在将其上传到云端之前是这样

  ######################################
  #             Server
  ######################################
  #I tell R where to extract the data from
  #Le digo al R donde debe jalar la data

  dirmapas <- "E:/Tu-carpeta/Tu-sub-carpeta/ESRI" #Depende donde tengas tú tus 
                                                  #archivos de cartografía 

  setwd(dirmapas)

  #The raw map
  # El mapa de polígonos en blanco y negro
  departamentos<-readOGR(dsn="BAS_LIM_DEPARTAMENTO.shp", layer="BAS_LIM_DEPARTAMENTO")

强制文件应全部在同一目录中

.shp — 形状格式

.shx — 形状索引格式;

.dbf — 属性格式;

然后我们可以将路径作为参数提供给函数,它将起作用。

global_24h =readOGR('/Users/m-store/Desktop/R_Programing/global_24h.shp')