variogram {gstat}R Documentation

Calculate Sample or Residual Variogram or Variogram Cloud

Description

Calculates the sample variogram from data, or in case of a linear model is given, for the residuals, with options for directional, robust, and pooled variogram, and for irregular distance intervals.

Usage

## S3 method for class 'formula':
variogram(object, ...)
## S3 method for class 'gstat':
variogram(formula, locations, data, ...)
## Default S3 method:
variogram(y, locations, X, cutoff, width = cutoff/15, alpha =
        0, beta = 0, tol.hor = 90/length(alpha), tol.ver =
        90/length(beta), cressie = FALSE, dX = numeric(0), boundaries =
        numeric(0), cloud = FALSE, trend.beta = NULL, debug.level = 1,
        cross = TRUE, grid, map = FALSE, g = NULL, ..., projected = TRUE, lambda = 1.0)
## S3 method for class 'line':
variogram(..., deprecate = TRUE)
## S3 method for class 'gstatVariogram':
print(v, ...)
## S3 method for class 'variogramCloud':
print(v, ...)

Arguments

object object of class gstat; in this form, direct and cross (residual) variograms are calculated for all variables and variable pairs defined in object
formula formula defining the response vector and (possible) regressors, in case of absence of regressors, use e.g. z~1
data data frame where the names in formula are to be found
locations spatial data locations. For variogram.formula: a formula with only the coordinate variables in the right hand (explanatory variable) side e.g. ~x+y; see examples.
For variogram.default: list with coordinate matrices, each with the number of rows matching that of corresponding vectors in y; the number of columns should match the number of spatial dimensions spanned by the data (1 (x), 2 (x,y) or 3 (x,y,z)).
... any other arguments that will be passed to variogram.default (ignored)
y list with for each variable the vector with responses
X (optional) list with for each variable the matrix with regressors/covariates; the number of rows should match that of the correspoding element in y, the number of columns equals the number of regressors (including intercept)
cutoff spatial separation distance up to which point pairs are included in semivariance estimates; as a default, the length of the diagonal of the box spanning the data is divided by three.
width the width of subsequent distance intervals into which data point pairs are grouped for semivariance estimates
alpha direction in plane (x,y), in positive degrees clockwise from positive y (North): alpha=0 for direction North (increasing y), alpha=90 for direction East (increasing x); optional a vector of directions in (x,y)
beta direction in z, in positive degrees up from the (x,y) plane;
tol.hor horizontal tolerance angle in degrees
tol.ver vertical tolerance angle in degrees
cressie logical; if TRUE, use Cressie's robust variogram estimate; if FALSE use the classical method of moments variogram estimate
dX include a pair of data points $y(s_1),y(s_2)$ taken at locations $s_1$ and $s_2$ for sample variogram calculation only when $||x(s_1)-x(s_2)|| < dX$ with and $x(s_i)$ the vector with regressors at location $s_i$, and $||.||$ the 2-norm. This allows pooled estimation of within-strata variograms (use a factor variable as regressor, and dX=0.5), or variograms of (near-)replicates in a linear model (addressing point pairs having similar values for regressors variables)
boundaries numerical vector with distance interval boundaries; values should be strictly increasing
cloud logical; if TRUE, calculate the semivariogram cloud
trend.beta vector with trend coefficients, in case they are known. By default, trend coefficients are estimated from the data.
debug.level integer; set gstat internal debug level
cross logical; if FALSE, no cross variograms are calculated when object is of class gstat and has more than one variable
v object of class variogram or variogramCloud to be printed
grid grid parameters, if data are gridded
map logical; if TRUE, and cutoff and width are given, a variogram map is returned. This requires package sp. Alternatively, a map can be passed, of class SpatialDataFrameGrid (see sp docs)
deprecate logical; if TRUE, a message will be printed to say that this function is deprecated. Function variogram.line will be deprecated in favour of the identical variogramLine
g NULL or object of class gstat; may be used to pass settable parameters and/or variograms; see example
projected logical; if FALSE, data are assumed to be unprojected, meaning decimal longitude/latitude. For projected data, Euclidian distances are computed, for unprojected great circle distances (km). In variogram.formula or variogram.gstat, for data deriving from class Spatial, projection is detected automatically using is.projected
lambda test feature; not working (yet)

Value

If map is TRUE (or a map is passed), a grid map is returned containing the (cross) variogram map(s). See package sp.
In other cases, an object of class "gstatVariogram" with the following fields:

np the number of point pairs for this estimate; in case of a variogramCloud see below
dist the average distance of all point pairs considered for this estimate
gamma the actual sample variogram estimate
dir.hor the horizontal direction
dir.ver the vertical direction
id the combined id pair
left for variogramCloud: data id (row number) of one of the data pair
right for variogramCloud: data id (row number) of the other data in the pair


In the past, gstat returned an object of class "variogram"; however, this resulted in confusions for users of the package geoR: the geoR variog function also returns objects of class "variogram", incompatible to those returned by this function. That's why I changed the class name.

Note

variogram.line is DEPRECATED; it is and was never meant as a variogram method, but works automatically as such by the R dispatch system. Use variogramLine instead.

Author(s)

Edzer J. Pebesma

References

Cressie, N.A.C., 1993, Statistics for Spatial Data, Wiley.

http://www.gstat.org/

Pebesma, E.J., 2004. Multivariable geostatistics in S: the gstat package. Computers & Geosciences, 30: 683-691.

See Also

print.gstatVariogram, plot.gstatVariogram, plot.variogramCloud; for variogram models: vgm, to fit a variogram model to a sample variogram: fit.variogram

Examples

data(meuse)
# no trend:
coordinates(meuse) = ~x+y
variogram(log(zinc)~1, meuse)
# residual variogram w.r.t. a linear trend:
variogram(log(zinc)~x+y, meuse)
# directional variogram:
variogram(log(zinc)~x+y, meuse, alpha=c(0,45,90,135))

# GLS residual variogram:
v = variogram(log(zinc)~x+y, meuse)
v.fit = fit.variogram(v, vgm(1, "Sph", 700, 1))
v.fit
set = list(gls=1)
v
g = gstat(NULL, "log-zinc", log(zinc)~x+y, meuse, model=v.fit, set = set)
variogram(g)

if (require(rgdal)) {
  proj4string(meuse) = CRS("+init=epsg:28992")
  meuse.ll = spTransform(meuse, CRS("+proj=longlat"))
# variogram of unprojected data, using great-circle distances, returning km as units
  variogram(log(zinc) ~ 1, meuse.ll)
}


[Package gstat version 0.9-66 Index]