Rgdal readOGR 错误所有功能 NULL MacOS
Rgdal readOGR error all Features NULL MacOS
我正在尝试指导一位同事使用 sf 和 rgdal 包在 R 中处理 Shapefile。我提供的示例代码:
dz_boundaries <- readOGR(dsn="~/Downloads/SG_DataZoneBdry_2011", layer="SG_DataZone_Bdry_2011")
示例 ESRI Shapefile 下载自:https://data.gov.uk/dataset/ab9f1f20-3b7f-4efa-9bd2-239acf63b540/data-zone-boundaries-2011
我能够在家用 Mac 和 Windows 机器上读取并操作此 Shapefile,没有任何问题。但是,我的同事在尝试使用他们的 Mac:
遵循代码时遇到了错误
Error in readOGR: no features found
ogrInfo:all features NULL
我试图通过以下方式解决此问题:
- 使用自动选项卡确保路径正确
- 确保 RStudio 有权访问文件和文件夹
- 改用 sf 包中的 st_read() - 错误消息说文件不存在
- 已确认 ESRI Shapefile gdb 文件夹存在并且所有组件元素都存在且大小正确
- 按照类似问题中的建议使用 dsn=path.expand('path') 审核
- 正在降级到之前稳定版本的 R (3.6.1)
- 更新包和调整版本
- 重新启动并重新下载 ESRI Shapefile
- 检查他们的 MacOS 版本是否与我的相同
但是他们的机器似乎无法确认文件的存在。
如果我在您提供的 link“ESRI Shapefile 下载”中使用 URL,sf::read_sf
和 rgdal::readOGR
对我有用。
# Download shapefile
path <- "http://sedsh127.sedsh.gov.uk/Atom_data/ScotGov/ZippedShapefiles/SG_DataZoneBdry_2011.zip"
temp_shapefile <- tempfile()
download.file(path, temp_shapefile)
temp_dir <- tempdir()
unzip(temp_shapefile, exdir = temp_dir)
# sf
DataZone_sf <- sf::read_sf(file.path(temp_dir,'SG_DataZone_Bdry_2011.shp'))
plot(head(DataZone_sf['ResPop2011']))
# rgdal
DataZone_rgdal <- rgdal::readOGR(dsn=temp_dir, layer="SG_DataZone_Bdry_2011")
plot(head(DataZone_rgdal))
我的会话信息。在 PC 上,但希望上面的代码在 Mac.
上提供了一个更容易重现的示例
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17134)
rgdal_1.5-10
sf_0.9-4
我正在尝试指导一位同事使用 sf 和 rgdal 包在 R 中处理 Shapefile。我提供的示例代码:
dz_boundaries <- readOGR(dsn="~/Downloads/SG_DataZoneBdry_2011", layer="SG_DataZone_Bdry_2011")
示例 ESRI Shapefile 下载自:https://data.gov.uk/dataset/ab9f1f20-3b7f-4efa-9bd2-239acf63b540/data-zone-boundaries-2011
我能够在家用 Mac 和 Windows 机器上读取并操作此 Shapefile,没有任何问题。但是,我的同事在尝试使用他们的 Mac:
遵循代码时遇到了错误Error in readOGR: no features found
ogrInfo:all features NULL
我试图通过以下方式解决此问题:
- 使用自动选项卡确保路径正确
- 确保 RStudio 有权访问文件和文件夹
- 改用 sf 包中的 st_read() - 错误消息说文件不存在
- 已确认 ESRI Shapefile gdb 文件夹存在并且所有组件元素都存在且大小正确
- 按照类似问题中的建议使用 dsn=path.expand('path') 审核
- 正在降级到之前稳定版本的 R (3.6.1)
- 更新包和调整版本
- 重新启动并重新下载 ESRI Shapefile
- 检查他们的 MacOS 版本是否与我的相同
但是他们的机器似乎无法确认文件的存在。
如果我在您提供的 link“ESRI Shapefile 下载”中使用 URL,sf::read_sf
和 rgdal::readOGR
对我有用。
# Download shapefile
path <- "http://sedsh127.sedsh.gov.uk/Atom_data/ScotGov/ZippedShapefiles/SG_DataZoneBdry_2011.zip"
temp_shapefile <- tempfile()
download.file(path, temp_shapefile)
temp_dir <- tempdir()
unzip(temp_shapefile, exdir = temp_dir)
# sf
DataZone_sf <- sf::read_sf(file.path(temp_dir,'SG_DataZone_Bdry_2011.shp'))
plot(head(DataZone_sf['ResPop2011']))
# rgdal
DataZone_rgdal <- rgdal::readOGR(dsn=temp_dir, layer="SG_DataZone_Bdry_2011")
plot(head(DataZone_rgdal))
我的会话信息。在 PC 上,但希望上面的代码在 Mac.
上提供了一个更容易重现的示例R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17134)
rgdal_1.5-10
sf_0.9-4