R更新后执行栅格分析出现CertGetCertificateChain信任错误(GDAL错误1)求助
问题描述
执行栅格分析时出现以下警告:
- PROJ: 无法打开 https://cdn.proj.org/us_noaa_cohpgn.tif: schannel: CertGetCertificateChain 信任错误 CERT_TRUST_IS_UNTRUSTED_ROOT (GDAL error 1)
- 访问远程资源时出现网络错误 (GDAL error 1)
使用的代码
library(raster) library(trend) library(terra) library(zyp) p.val.func <- function(x,na.rm=T) { if(sum(is.na(x)) == length(x)) return(NA) if(na.rm) x <- x[!is.na(x)] unlist(sens.slope(x)[3]) } sen.slope.func <- function(x,na.rm=T) { if(sum(is.na(x)) == length(x)) return(NA) if(na.rm) x <- x[!is.na(x)] unlist(sens.slope(x)[1]) } sens.int.func<- function(x,na.rm=T){ if(sum(is.na(x)) == length(x)) return(NA) if(na.rm) x <- x[!is.na(x)] y<-c() y<-c(1:nlyr(x)) zyp.sen(x~y)$coefficients[1] } # 指向所有栅格文件 cov_rasters<- list.files("D:\\RAP_CO_ALL\\InputCoverStacks", full.names=T, pattern=".tif$") r1<-rast(cov_rasters[1]) #加载一个栅格用于投影 shp shp<- vect("C:\\tmp\\GIS_projects_tmp\\UFO_test\\AlakaliCrkAllotsHUC10_AOI") shp<- terra::project(shp, crs(r1)) # 投影操作
会话信息
- R版本:4.3.1 (2023-06-16 ucrt)
- 平台:x86_64-w64-mingw32/x64 (64位)
- 运行环境:Windows 10 x64 (版本19045)
- 区域设置:
- LC_COLLATE=English_United States.1252
- LC_CTYPE=English_United States.1252
- LC_MONETARY=English_United States.1252
- LC_NUMERIC=C
- LC_TIME=English_United States.1252
- 时区:America/Denver
- 已加载包:
- 基础包:stats、graphics、grDevices、utils、datasets、methods、base
- 其他已加载包:rgdal_1.6-7、zyp_0.11-1、Kendall_2.2.1、terra_1.7-39、trend_1.1.5、raster_3.6-23、sp_2.0-0
- 命名空间加载(未附加):R6_2.5.1、codetools_0.2-19、lattice_0.21-8、remotes_2.4.2.1、grid_4.3.1、compiler_4.3.1、extraDistr_1.9.1、httr_1.4.7、boot_1.3-28.1、tools_4.3.1、curl_5.0.2、Rcpp_1.0.11
已尝试重启会话,问题未解决。
解决方案
该错误是PROJ尝试下载远程栅格文件时触发的证书信任问题,可通过以下方式解决:
- 禁用PROJ远程资源访问
在代码开头添加环境变量设置,强制PROJ仅使用本地投影数据库,不再访问远程资源:
Sys.setenv(PROJ_NETWORK="OFF")
- 手动放置所需文件
若确实需要该远程栅格文件,可手动下载us_noaa_cohpgn.tif,并放置到PROJ本地数据目录。执行以下命令查看目录路径:
system("projinfo --path")
- 更新Windows根证书
这是Windows系统根证书信任问题,可通过以下操作更新:
- 打开「Internet选项」→「内容」→「证书」→「受信任的根证书颁发机构」
- 点击「导入」,或通过Windows Update自动更新证书库
- 更新GDAL/PROJ相关R包
尝试更新terra、rgdal等依赖包,新版本可能修复了证书兼容性问题:
update.packages(c("terra", "rgdal", "raster"))
内容的提问来源于stack exchange,提问作者b_squared
相关产品推荐
相关产品推荐

