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

导入栅格图层时R崩溃(ERROR elf_dynamic_array_reader.h:61)求助

Ubuntu 22.04下R/terra导入栅格文件崩溃的解决方法

问题场景

  • 系统:Ubuntu 22.04
  • R版本:4.4.0
  • RStudio版本:2024.4.1.748
  • 触发操作:调用terra::rast()或raster::raster()导入tif格式栅格文件时,R直接崩溃,抛出错误:
[24697:24697:20240606,175745.757656:ERROR elf_dynamic_array_reader.h:61] tag not found
[24697:24697:20240606,175745.757843:ERROR elf_dynamic_array_reader.h:61] tag not found
[24697:24698:20240606,175745.781125:ERROR directory_reader_posix.cc:42] opendir: No such file or directory (2)

排查与修复步骤

  • 核对GDAL依赖路径一致性

    1. 终端执行gdalinfo --version获取系统GDAL版本
    2. 在R中运行以下命令,查看R调用的GDAL信息:
      terra::gdal()
      Sys.getenv(c("GDAL_DATA", "PROJ_LIB"))
      
    3. 若路径不匹配,手动设置环境变量(替换<GDAL版本号>为实际版本,比如3.4.1):
      Sys.setenv(GDAL_DATA = "/usr/share/gdal/<GDAL版本号>")
      Sys.setenv(PROJ_LIB = "/usr/share/proj")
      
    4. 重启RStudio后重新测试导入
  • 源码编译安装terra包

    1. 卸载现有terra包:
      remove.packages("terra")
      
    2. 终端安装GDAL、PROJ、GEOS的开发依赖:
      sudo apt-get update && sudo apt-get install libgdal-dev libproj-dev libgeos-dev
      
    3. 回到R中从源码安装terra:
      install.packages("terra", type = "source")
      
  • 排查RStudio环境变量冲突

    1. 关闭RStudio,在终端直接启动R(执行R命令),尝试导入栅格文件
    2. 若终端中正常运行,说明RStudio环境存在冲突:检查~/.Renviron、~/.bashrc或~/.profile中是否有错误的GDAL/PROJ路径配置,修正后重启RStudio
  • 验证文件路径与权限

    1. 用绝对路径替代相对路径测试:
      rast("/home/your-user/path/to/file.tif")
      
    2. 检查文件是否存在且可读:
      file.exists("/home/your-user/path/to/file.tif")
      file.access("/home/your-user/path/to/file.tif", 4) == 0
      
    3. 若权限不足,终端执行sudo chmod +r /home/your-user/path/to/file.tif赋予读取权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:33:21