Given a pixel image, calculate an estimate of the spatial covariance function. Given two pixel images, calculate an estimate of their spatial cross-covariance function.
spatcov(X, Y=X, ..., correlation=FALSE, isotropic = TRUE,
        clip = TRUE, pooling=TRUE)If isotropic=TRUE (the default), the result is a function value
  table (object of class "fv") giving the estimated values of the
  covariance function or spatial correlation function
  for a sequence of values of the spatial lag
  distance r.
If isotropic=FALSE, the result is a pixel image
  (object of class "im") giving the estimated values of the
  spatial covariance function or spatial correlation function
  for a grid of values of the spatial lag vector.
A pixel image (object of class "im").
Optional. Another pixel image.
Logical value specifying whether to standardise so that the spatial correlation function is returned.
Logical value specifying whether to assume the covariance is isotropic, so that the result is a function of the lag distance.
Logical value specifying whether to restrict the results to the range of spatial lags where the estimate is reliable.
Logical value specifying the estimation method when isotropic=TRUE.
Ignored.
Adrian Baddeley Adrian.Baddeley@curtin.edu.au
In normal usage, only the first argument X is given.
  Then the pixel image X is treated as a realisation of a stationary
  random field, and its spatial covariance function is estimated.
Alternatively if Y is given,
  then X and Y are assumed to be
  jointly stationary random fields, and their spatial cross-covariance
  function is estimated.
For any random field X, the spatial covariance
  is defined for any two spatial locations \(u\) and \(v\) by
  $$
    C(u,v) = \mbox{cov}(X(u), X(v))
  $$
  where \(X(u)\) and \(X(v)\) are the values of the random field
  at those locations. Here\(\mbox{cov}\) denotes the
  statistical covariance, defined for any random variables
  \(A\) and \(B\) by
  \(\mbox{cov}(A,B) = E(AB) - E(A) E(B)\)
  where \(E(A)\) denotes the expected value of \(A\).
If the random field is assumed to be stationary (at least second-order stationary) then the spatial covariance \(C(u,v)\) depends only on the lag vector \(v-u\): $$ C(u,v) = C_2(v-u) $$ $$ C(u,v) = C2(v-u) $$ where \(C_2\) is a function of a single vector argument.
If the random field is stationary and isotropic, then the spatial covariance depends only on the lag distance \(\| v - u \|\): $$ C_2(v-u) = C_1(\|v-u\|) $$ where \(C_1\) is a function of distance.
The function spatcov computes estimates of the
  covariance function \(C_1\) or \(C_2\) as follows:
If isotropic=FALSE, an estimate of the 
    covariance function \(C_2\) is computed,
    assuming the random field is stationary, using the naive
    moment estimator,
    C2 = imcov(X-mean(X))/setcov(Window(X)).
    The result is a pixel image.
If isotropic=TRUE (the default)
    an estimate of the covariance function \(C_1\)
    is computed, assuming the random field is stationary and isotropic.
When pooling=FALSE, the estimate of \(C_1\)
      is the rotational average of the naive estimate of \(C_2\).
When pooling=TRUE (the default), the  estimate of \(C_1\)
      is the ratio of the rotational averages of the numerator and
      denominator which form the naive estimate of  \(C_2\).
The result is a function object (class "fv").
If the argument Y is given, it should be a pixel image
  compatible with X. An estimate of the spatial cross-covariance function
  between X and Y will be computed.
imcov, setcov
if(offline <- !interactive()) op <- spatstat.options(npixel=32)
  D <- density(cells)
  plot(spatcov(D))
if(offline) spatstat.options(op)
Run the code above in your browser using DataLab