我试图从回归运行中逐像素提取NDVI /降水栅格叠加中的残差。当我用我的一小部分数据运行它时,我的脚本就可以工作。但是,当我尝试运行整个研究区域时,我得到:“setValues(out,x)中的错误:值必须是数字,整数,逻辑或因子”从像素逐像素回归中提取残差
因为我可以提取斜率和拦截。我只是不能提取残差。
任何想法如何解决这个问题?
这里是我的脚本:
setwd("F:/working folder/test")
gimms <- list.files(pattern="*ndvi.tif")
ndvi <- stack(gimms)
precip <- list.files(pattern="*pre.tif")
pre <- stack(precip)
s <- stack(ndvi,pre)
residualfun = function(x) { if (is.na(x[1])){ NA } else { m <- lm(x[1:6] ~ x[7:12], na.action=na.exclude)
r <- residuals.lm(m)
return (r)}}
res <- calc(s,residualfun)
这里是我的数据:https://1drv.ms/u/s!AhwCgWqhyyDclJRjhh6GtentxFOKwQ
嗯,也许有一些错误的公式参数?我会明确地调用列。 –
您的数据链接已过时。 – Borealis