R语言chirps包get_chirps()函数返回全-9999值问题求助
常见诱因及排查方案
- API访问异常
get_chirps()默认调用CHIRPS公共API拉取数据,当网络无法连通数据源服务器、或API请求频率过高被限制时,服务器会返回缺测占位符-9999。可在调用函数时显式指定官方稳定服务器:添加参数server = "CHC",降低访问异常概率。 - 坐标匹配失败
该函数仅支持WGS84坐标系下的十进制度经纬度输入,若传入坐标为其他投影格式(如UTM米级坐标、度分秒未转换为十进制),会匹配不到对应网格数据,返回缺测。可添加as.data.frame = TRUE参数,查看返回结果的经纬度列是否和输入一致,确认坐标匹配正常。你提供的示例坐标属于合法范围,不存在格式问题,可排除该诱因。 - 时间范围不合法
CHIRPS日值数据集最早覆盖时间为1981年1月1日,若传入的时间范围早于该节点、或时间格式不符合YYYY-MM-DD规范,也会返回全缺测。可先缩小测试时间范围,比如取1个月内的合法区间测试,排除时间参数问题。 - 包版本过旧
旧版本chirps包调用的API接口已被官方下线,会导致全量返回缺测值。可运行packageVersion("chirps")查看本地版本,当前最新稳定版为0.1.4,版本低于该值时建议重新安装最新版本后重试。
测试代码示例
library(chirps) lonlat <- data.frame(lon = -67.5, lat = -24.5) # 缩小时间范围、显式指定参数 dates <- c("2020-01-01", "2020-01-10") data <- get_chirps(lonlat, dates, server = "CHC", as.data.frame = TRUE) # 打印降水值验证返回结果 print(data$chirps)
内容的提问来源于stack exchange,提问作者Bondo
相关产品推荐
相关产品推荐

