You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用rmapshaper::ms_simplify时出现ogrInfo错误求助

解决rmapshaper::ms_simplify报"Cannot open data source"错误的方案

我之前也碰到过这个一模一样的错误!大概率是rmapshaper依赖的外部工具mapshaper的配置问题,或者是空间数据的格式兼容性问题,给你几个实用的排查和解决方向:

  • 检查mapshaper是否正确安装
    rmapshaper本质是调用Node.js环境下的mapshaper工具来处理空间数据,所以首先得确保你已经安装了Node.js和mapshaper:

    1. 先确认终端里能运行node -v和npm -v,如果不行先安装Node.js;
    2. 执行npm install -g mapshaper全局安装mapshaper;
    3. 安装完成后在终端敲mapshaper -v,如果能输出版本号,说明工具本身没问题。
  • 手动指定mapshaper的路径给R
    有时候R找不到已经安装的mapshaper,这时候可以手动配置路径:

    1. 在终端里执行which mapshaper,得到工具的绝对路径(比如/usr/local/bin/mapshaper);
    2. 在R里运行以下代码配置:
      options(rmapshaper.path = "/usr/local/bin/mapshaper") # 替换成你得到的实际路径
      

    之后再尝试运行ms_simplify。

  • 转换空间数据为sf格式后再处理
    旧版本的空间数据对象(比如sp类)可能和rmapshaper的兼容性不好,转换成sf对象试试:

    library(sf)
    # 处理rworldmap的countriesLow
    countries_sf <- st_as_sf(rworldmap::countriesLow)
    foo <- rmapshaper::ms_simplify(countries_sf)
    
    # 处理本地shp文件
    local_sf <- st_read("你的本地shp文件路径.shp")
    simplified_local <- rmapshaper::ms_simplify(local_sf)
    
  • 升级R和相关包版本
    你的R版本是3.4.3,属于比较旧的版本,很多新包的功能和兼容性在旧版本R上会出问题:

    1. 升级R到4.x系列的稳定版本;
    2. 更新相关依赖包:
      update.packages(c("rmapshaper", "rworldmap", "sf"), ask = FALSE)
      

如果以上方法都没解决,可以先在终端里直接用mapshaper处理你的shp文件,验证工具本身是否正常工作:

mapshaper 你的本地shp文件路径.shp -simplify 30% -o 输出文件路径.shp

如果这个命令能成功生成简化后的shp,那问题肯定出在R和mapshaper的衔接上,再回头检查路径配置即可。

内容的提问来源于stack exchange,提问作者James Grecian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:57:54