Learn R Programming

GSIF (version 0.5-3)

buffer.dist-methods: Derive buffer distances to a set of points

Description

Derive buffer distances using the raster::distance function, so that these can be used as predictors for spatial prediction i.e. to account for spatial proximity to low, medium and high values.

Usage

"buffer.dist"(observations, predictionDomain, classes, width, ...)

Arguments

observations
object of class "SpatialPointsDataFrame" containing observations of the target variable
predictionDomain
object of class "SpatialPixelsDataFrame"; prediction domain for which distances are estimated
classes
factor; split of the points
width
numeric; maximum search radius
...
other optional arguments that can be passed to raster::distance

See Also

fit.gstatModel

Examples

Run this code
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