library(sp)
library(raster)
library(gstat)
library(randomForest)
library(quantregForest)
library(plotKML)
library(scales)
## Load the Meuse data set:
demo(meuse, echo=FALSE)
## Example with soil organic matter:
classes <- cut(meuse$om, breaks=seq(0, 17, length=8))
## are these optimal splits?
grid.dist <- buffer.dist(meuse["om"], meuse.grid[1], classes)
plot(stack(grid.dist))
## quantregForest as a 'replacement' for kriging:
dn <- paste(names(grid.dist), collapse="+")
fm <- as.formula(paste("om ~", dn))
m <- fit.gstatModel(meuse, fm, grid.dist,
method="quantregForest", rvgm=NULL)
plot(m)
dev.off()
## Residual variogram shows no spatial structure
rk.m <- predict(m, grid.dist)
plot(rk.m)
dev.off()
## prediction error:
plot(sqrt(raster(rk.m@predicted[2])))
points(meuse, pch="+")
## Not run:
# plotKML(rk.m@predicted["om"], colour_scale = SAGA_pal[[1]])
# kml(meuse, file.name="om_points.kml", colour=om, labels=meuse$om)
# kml_View("om_points.kml")
# meuse$classes <- classes
# plotKML(meuse["classes"])
# ## End(Not run)
## Not run:
# ## Combining geographical and feature space covariates:
# meuse.gridT <- meuse.grid
# meuse.gridT@data <- cbind(meuse.grid@data, grid.dist@data)
# fm1 <- as.formula(paste("om ~", dn, "+soil+dist+ffreq"))
# m1 <- fit.gstatModel(meuse, fm1, meuse.gridT,
# method="quantregForest", rvgm=NULL)
# ## no need to fit variogram in this case
# plot(m1)
# dev.off()
# rk.m1 <- predict(m1, meuse.gridT)
# plot(rk.m1)
# varImpPlot(m1@regModel)
# dev.off()
# plotKML(rk.m1@predicted["om"],
# file.name="rk_combined.kml",
# colour_scale = SAGA_pal[[1]])
# ## End(Not run)
## Not run:
# ## Example with zinc:
# classes2 <- cut(meuse$zinc,
# breaks=seq(min(meuse$zinc), max(meuse$zinc), length=10))
# grid.dist2 <- buffer.dist(meuse["zinc"], meuse.grid[1], classes2)
# dn2 <- paste(names(grid.dist2), collapse="+")
# meuse.gridT2 <- meuse.grid
# meuse.gridT2@data <- cbind(meuse.grid@data, grid.dist2@data)
# fm2 <- as.formula(paste("zinc ~", dn2, "+soil+dist+ffreq"))
# m2 <- fit.gstatModel(meuse, fm2, meuse.gridT2,
# method="quantregForest", rvgm=NULL)
# varImpPlot(m2@regModel)
# rk.m2 <- predict(m2, meuse.gridT2)
# plot(rk.m2)
# dev.off()
# ## prediction error:
# plot(raster(rk.m2@predicted[2]))
# plotKML(rk.m2@predicted["zinc"],
# file.name="rk_combined_zinc.kml",
# colour_scale = SAGA_pal[[1]])
# kml(meuse, colour=zinc,
# file.name="zinc_points.kml", labels=meuse$zinc)
# kml_View("zinc_points.kml")
# ## End(Not run)
Run the code above in your browser using DataLab