[R-sig-Geo] Predict gam in a loop on multiple raster stacks and keeping identical layer names

Kristin nessnjor at gmail.com
Tue May 5 17:54:59 CEST 2015


I have a gam model with predictor names (variables) par, chl, sst, lat and
lon. The model I called "gammodel".
Then I have predictors for 96 day period in raster stacks: "stackpar",
"stackchl", "stacksst"
-that is 3 different raster stacks  - each one with 96 layers.
lat and lon are fixed in time and are each a separated raster with the
central value of each cell as a value in the raster. 
All stacks and rasters have same extent, dimention, projection etc. 
dim (84 840  96)

I want predict for each day for each pixel in a loop and create an output as
a raster stack of predictions for each of the 96 days
Something like this: 

Stack <- stack()
lenght(Stack) <-96              

for(i in 1:96) {
  Predictors <- stack(stackchl[[i]],stacksst[[i]],stackpar[[i]],lat, lon)
  Pred <- predict(Predictors,gammodel, na.rm=TRUE, type="response")
  Stack[i] <- Pred
}

I´m not sure I´m doing the loop correct? Any suggestions of improvement?

BUT the main problem is that the layers for each predictive varaible have
names which 
do not fit with the model. When I run it outside the loop for a single
layer:
 
Error in eval(expr, envir, enclos) : object 'par' not found
In addition: Warning message:
In predict.gam(model, blockvals, ...) :
  not all required variables have been supplied in  newdata!

I have tried to rename the layers in each raster stack like this: 
names (par)=rep("par",96) 
But the names are changed to: par.1, par.2, par.3, etc..
So they do not fit the variable name in the gam model itself. 

all the best and thanks in advance


 





--
View this message in context: http://r-sig-geo.2731867.n2.nabble.com/Predict-gam-in-a-loop-on-multiple-raster-stacks-and-keeping-identical-layer-names-tp7588176.html
Sent from the R-sig-geo mailing list archive at Nabble.com.



More information about the R-sig-Geo mailing list