# NOT RUN {
library(plotKML)
library(spatstat)
library(RSAGA)
library(gstat)
library(raster)
data(eberg)
data(eberg_grid)
data(eberg_grid25)
library(sp)
coordinates(eberg) <- ~X+Y
proj4string(eberg) <- CRS("+init=epsg:31467")
m <- vgm(psill=320, model="Exp", range=1200, nugget=160)
plot(variogram(SNDMHT_A~1, eberg[!is.na(eberg$SNDMHT_A),]), m)
## prediction locations:
gridded(eberg_grid) <- ~x+y
proj4string(eberg_grid) <- CRS("+init=epsg:31467")
gridded(eberg_grid25) <- ~x+y
proj4string(eberg_grid25) <- CRS("+init=epsg:31467")
## prepare prediction locations for spline.krige:
grd <- resample.grid(locations=eberg["SNDMHT_A"], t_cellsize=25,
newdata=eberg_grid25, optN=5, quant.nndist=.9)
## plot resampled grid:
plot(raster(grd$density))
plot(grd$newlocs)
points(eberg, pch=19, col="red", cex=.7)
env <- rsaga.env()
if(exists("env") & env$version=="2.1.0"){
## compare processing time:
system.time( SND.sok <- spline.krige(locations=eberg["SNDMHT_A"],
t_cellsize=25, newdata=eberg_grid25,
newlocs=grd$newlocs, model=m, nmax=30) )
system.time( SND.ok <- krige(SNDMHT_A~1,
eberg[!is.na(eberg$SNDMHT_A),],
newdata=eberg_grid, m,
debug.level = -1, nmax=30) )
system.time( SND.ok25 <- krige(SNDMHT_A~1,
eberg[!is.na(eberg$SNDMHT_A),],
newdata=eberg_grid25, m,
debug.level = -1, nmax=30) )
## compare outputs visually:
par(mfrow=c(1,3))
plot(raster(SND.sok[1]), main="spline.krige (25 m)")
plot(raster(SND.ok25[1]), main="krige (25 m)")
plot(raster(SND.ok[1]), main="krige (100 m)")
}
# }
# NOT RUN {
## conclusion: spline.krige produces less artifacts,
## and is at order of magnitude faster than simple 'krige'
# }
Run the code above in your browser using DataLab