SPEI包penman函数出现下标越界错误的原因及解决
SPEI包penman函数下标越界错误的解决
问题现象
使用SPEI包计算潜在蒸散量(PET)时,Hargreaves函数运行正常,但调用penman函数持续报错:
Error in Tmean[2, , ] : subscript out of bounds
按函数文档要求传入Tmax、Tmin等参数,额外传入Tmean参数后仍无法解决问题。
可复现代码
U2 <- 1.7 #m/s (average) Ra <- 2.23 #MJ/day (average) RH <- 89.65 #% (average) lat <- 52.76624 Tmax <- 14.3 #(degrees C) Tmin <- 6.9 #(degrees C) penman<-penman(Tmin, Tmax, U2, Ra, lat, RH, z = 59, crop='short', na.rm = TRUE)
环境信息
- R版本:4.3.2
- R Studio版本:2023.12.1
- SPEI包及所有依赖包已正确安装配置,尝试从Excel导入数据或使用常量变量均触发相同错误
问题解决
经排查,penman算法内部逻辑要求必须传入至少3个月的时间序列数据集,仅传入单月的常量数值会导致下标越界错误,提供符合长度要求的时序数据即可正常运行。
内容的提问来源于stack exchange,提问作者Lucy Crockford
相关产品推荐
相关产品推荐

