使用R自动化下载GADM数据(level 0)遇服务器维护报错求助
解决GADM数据自动化下载区域限制问题
首先纠正代码里的笔误:你写的lapplyy是拼写错误,应该改为lapply,这个小错误可能引发额外异常。
针对你怀疑的区域访问限制问题,给出以下可行解决办法:
切换替代数据源
geodata包支持多数据源,默认GADM服务器访问受限时,可切换到geoboundaries数据源,它同样提供高精度行政边界数据,用法和原代码几乎一致:# 修正笔误+切换数据源的代码 gadm_list <- lapply(iso3, function(x){ tryCatch({ geodata::gadm(country = x, level = 0, path = tempdir(), source = "geoboundaries") }, error = function(e){ message(paste("Skipping country due to error:", e$message)) return(NULL) }) })批量导入手动下载的文件
既然你已能手动下载数据,可将所有GADM文件(通常为.gpkg格式)放在同一文件夹,用以下代码批量导入:# 设置手动下载文件的存放路径 data_path <- "你的文件存放路径" # 获取所有gpkg格式文件 gadm_files <- list.files(data_path, pattern = "\\.gpkg$", full.names = TRUE) # 批量导入数据 gadm_list <- lapply(gadm_files, function(file){ sf::st_read(file, quiet = TRUE) })配置网络代理
如果是所在区域网络限制导致无法访问GADM服务器,可在R中配置代理:# 替换为你的代理地址和端口 library(httr) set_config(use_proxy(host = "你的代理IP", port = 代理端口)) # 配置完成后执行原下载代码更新geodata包到最新版本
旧版本geodata包可能存在服务器地址未更新的问题,执行以下命令更新:update.packages("geodata")
内容的提问来源于stack exchange,提问作者Gerald
相关产品推荐
相关产品推荐

