R中读取shapefile时出错,在QGIS中工作正常

问题描述 投票:0回答:1

我在同时使用readOGR和read_sf读取R中的此形状文件时遇到错误:

http://45.56.98.26/madrid-divisiones/Termino_1612.shp

readOGR错误:

Warning in ogrFIDs(dsn = dsn, layer = layer) : no features found
Error in readOGR(dsn = "http://45.56.98.26/madrid-divisiones/Termino_1612.shp") : 
  no features found

read_sf错误:

Warning in CPL_read_ogr(dsn, layer, query, as.character(options), quiet,  :
  GDAL Error 1: JSON parsing error: continue (at offset 0)

它在QGIS中很好地打开。我可以使用我的R设置正常(通常使用read_sf)来正常读取其他shapefile,并且以前从未见过此错误。这是我正在使用的代码:

madrid1612 <- read_sf("http://45.56.98.26/madrid-divisiones/Termino_1612.shp",quiet=TRUE,as_tibble = FALSE,stringsAsFactors = TRUE)

madrid1612 <- readOGR(dsn="http://45.56.98.26/madrid-divisiones/Termino_1612.shp")

我已经查看了所有“读取R中的shapefile时出错”的问题,但找不到能解决我问题的任何东西。我尝试在QGIS中将其打开并导出为geojson文件,但出现此错误:

madrid1612<-fromJSON(txt ="http://45.56.98.26/madrid-divisiones/Termino_1612.geojson")

Warning: Error in polygonData.default: Don't know how to get path data from object of class list


r shapefile qgis
1个回答
0
投票

将您的代码直接链接到单个.shp文件后,R {sf}无法确定所需文件(.shx, .dbf, .prj)的位置。

您可以将这些文件下载到本地磁盘:

library(sf)

library(downloader)

loc = "http://45.56.98.26/madrid-divisiones/"
shape_name = "Termino_1612"
ext_name = c(".shp", ".shx", ".dbf", ".prj")

i=1
for (i in 1:4){
  download(paste0(loc, shape_name, ext_name[i]), 
           destfile= paste0("./", shape_name, ext_name[i]), mode = "wb")
  i = i +1
} 

madrid1612 <- read_sf("./Termino_1612.shp")
plot(madrid1612) 

如果需要直接下载,请选择geojson

madrid1612 <- read_sf("http://45.56.98.26/madrid-divisiones/Termino_1612.geojson")
plot(madrid1612)
© www.soinside.com 2019 - 2024. All rights reserved.