## 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)")
# }
# ## End(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