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

Windows环境下R中GDAL Error1及节点栈溢出问题求助

问题描述
  • 操作系统:Windows
  • 使用st_transform转换栅格文件CRS后绘图,触发GDAL Error 1警告;将矢量要素转换为该栅格新CRS后,用ggplot绘制sf点数据时再次触发GDAL Error 1,错误提示PostgreSQL目录下的proj.db版本不兼容,存在多PROJ版本冲突,最终出现Error: node stack overflow错误。
  • 已安装PostGIS、R、QGIS,R中PROJ包版本为0.4.0;尝试重装R、rgdal无效,R Studio和VS Code中均会出现该问题。
  • 咨询:是否需要清理安装GDAL?若需要,如何在不卸载PostGIS的情况下操作?
解决方案

1. 是否需要清理安装GDAL?

需要,但无需完全卸载现有GDAL,核心是让R优先调用兼容的PROJ/GDAL版本,规避和PostGIS自带版本的冲突。

2. 不卸载PostGIS的操作步骤

  • 步骤1:确认R当前使用的GDAL/PROJ路径
    在R中运行以下命令,查看当前加载的GDAL和PROJ路径,确认是否指向PostgreSQL目录(如C:\Program Files\PostgreSQL\XX\bin):

    library(sf)
    sf_extSoftVersion()
    
  • 步骤2:安装独立的GDAL/PROJ包
    下载OSGeo4W的64位安装包,安装到非PostGIS的独立目录(比如C:\OSGeo4W64),安装时勾选gdal、proj、geos相关组件。

  • 步骤3:调整系统环境变量优先级

    1. 打开Windows「环境变量」设置(右键此电脑→属性→高级系统设置→环境变量)。
    2. 在系统变量的Path中,将OSGeo4W的bin目录(如C:\OSGeo4W64\bin)移到PostgreSQL的bin目录之前。
    3. 添加两个新的系统变量:
      • PROJ_LIB:值设为C:\OSGeo4W64\share\proj(对应你的OSGeo4W安装路径)
      • GDAL_DATA:值设为C:\OSGeo4W64\share\gdal(对应你的OSGeo4W安装路径)
  • 步骤4:重新安装R的地理相关包
    先卸载现有冲突包:

    remove.packages(c("sf", "rgdal", "proj"))
    

    重启R后重新安装,确保包链接到新的GDAL/PROJ:

    install.packages("sf")
    install.packages("rgdal")
    install.packages("proj")
    

    再次运行sf_extSoftVersion()确认路径已切换到OSGeo4W目录。

  • 步骤5:验证问题是否解决
    重新执行之前的st_transform转换和ggplot绘图代码,检查GDAL错误与栈溢出问题是否消失。

额外注意事项

  • 不要删除PostGIS自带的PROJ/GDAL,PostGIS依赖其运行,仅调整优先级让R使用独立版本即可。
  • 若QGIS出现版本冲突,可修改QGIS快捷方式的「目标」字段,添加OSGeo4W环境变量,确保QGIS使用自身默认的GDAL版本(QGIS通常默认安装在OSGeo4W目录下,一般不会冲突)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:02:39