J'essaie d'extraire les résidus d'une régression pixel par pixel sur une pile raster de NDVI/précipitation. Mon script fonctionne quand je l'exécute avec une petite partie de mes données. Mais quand j'essaie d'exécuter toute ma zone d'étude j'obtiens: "Erreur dans setValues (out, x): les valeurs doivent être numériques, entiers, logiques ou factorielles"extraction des résidus de la régression pixel par pixel
Le lm fonctionne, puisque je peux extraire les deux pente et intercepter. Je ne peux tout simplement pas extraire les résidus.
Une idée de la façon dont cela pourrait être résolu?
Voici mon script:
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)
Et voici mes données: https://1drv.ms/u/s!AhwCgWqhyyDclJRjhh6GtentxFOKwQ
Hum, peut-être il y a quelque chose de mal avec votre argument formule? J'appellerais les colonnes explicitement. –
Le lien vers vos données est obsolète. – Borealis