R中下载CHIRPS数据时报错arguments imply differing number of rows如何解决
问题原因
- 该错误并非你的操作失误导致,是
chirps旧版本的API适配故障:CHIRPS官方查询接口在2023年前后调整了返回数据的字段结构,CRAN收录的0.1.4及更早版本的chirps包未同步适配该调整,导致返回数据拼接时行列数不匹配,因此哪怕运行官方示例代码也会抛出arguments imply differing number of rows错误。 - 若你专门查询月度降水数据,还有一个额外触发点:旧版
get_chirps默认拉取日度数据,如果你传入的dates参数为整月起止日期,服务器返回的月度聚合数据和坐标点的对应逻辑和包内预设逻辑不匹配,也会触发该报错。
解决方案
- 方案1:安装最新开发版
chirps包(优先推荐)
包开发者已经在GitHub开发版修复了API适配问题,安装后即可直接解决示例运行报错:
安装完成后重新运行你的示例代码即可正常返回结果。# 先卸载本地旧版本 remove.packages("chirps") # 若未安装devtools先安装 if(!require(devtools)) install.packages("devtools") # 安装GitHub最新开发版 devtools::install_github("ropensci/chirps") - 方案2:明确指定月度数据产品参数
若你需要下载月度降水数据,不需要手动将日期范围设置为整月起止,直接指定product = "chirps-monthly"参数即可,包会自动完成时间聚合:library(chirps) lonlat <- data.frame(lon = c(-55.0281,-54.9857), lat = c(-2.8094, -2.8756)) # 传入需要查询的月份区间即可 dates <- c("2017-12-01", "2018-02-01") dt <- get_chirps(lonlat, dates, product = "chirps-monthly") - 方案3:逐天查询自行聚合(备选)
若无法安装开发版包,可以将查询时间范围调整为单天,逐天拉取数据后自行做月度聚合,也能规避行列不匹配的报错。
内容的提问来源于stack exchange,提问作者seak23
相关产品推荐
相关产品推荐

