Simulation of Random Fields – Advanced
This function simulates unconditional random fields:
univariate and multivariate, spatial and spatio-temporal Gaussian random fields
It also simulates conditional random fields for
univariate and multivariate, spatial and spatio-temporal Gaussian random fields.
For basic simulation of Gaussian random fields, see RFsimulate. See RFsimulate.more.examples and RFsimulate.sophisticated.examples for further examples.
model |
object of class
|
x |
matrix of coordinates, or vector of x coordinates, or object
of class |
y |
optional vector of y coordinates, ignored if |
z |
optional vector of z coordinates, ignored if |
T |
optional vector of time coordinates,
|
grid |
logical; determines whether the vectors Note: If
|
data |
matrix, data.frame or object of class |
err.model |
same as |
distances |
object of class If |
dim |
integer; space or space-time dimension of the field |
n |
number of realizations to generate |
... |
further options and control arguments for the simulation
that are passed to and processed by |
RFsimulate
simulates different classes of random fields,
controlled by the wrapping model.
If the wrapping function of the model
argument is a covariance
or variogram model, i.e., one of the list obtained by
RFgetModelNames(type="variogram",
group.by="type")
, by default, a Gaussian field
with the corresponding covariance structure is simulated.
By default, the simulation method is chosen automatically through internal algorithms.
The simulation method can be set explicitly by enclosing the
covariance function with a method specification.
If other than Gaussian fields are to be simulated, the model
argument must be enclosed by a function specifying the type of the
random field.
There are different possibilities of passing the locations at which
the field is to be simulated. If grid=FALSE
, all coordinate
vectors (except for the time component T) must have the same
length and the field is only simulated at the locations given by the
rows of x or of cbind(x, y, z)
. If T is not
missing, the field is simulated for all combinations
(x[i, ], T[k]) or (x[i], y[i], z[i], T[k]),
i=1, ..., nrow(x)
, k=1, ..., length(T)
,
even if model
is not explicitly a space-time model.
If grid=TRUE
, the vectors x
,
y
, z
and T
or the columns of x
and
T
are
interpreted as a grid definition, i.e. the field is simulated at all
locations (x_i, y_j, z_k, T_l), as given by
expand.grid(x, y, z, T)
.
Here, “grid” means “equidistant in each direction”, i.e. all
vectors must be equidistant and in ascending order.
In case of more than 3 space dimensions, the coordinates must be
given in matrix notation. To enable different grid lengths for each
direction in combination with the matrix notation, the
“gridtriple” notation c(from, stepsize, len)
is used:
If x
, y
,
z
, T
or the columns of x
are of length 3, they
are internally replaced by seq(from=from,
to=from+(len-1)*stepsize, by=stepsize)
, i.e. the field
is simulated at all locationsexpand.grid(seq(x$from, length.out=x$len, by=x$stepsize),
seq(y$from, length.out=y$len, by=y$stepsize),
seq(z$from, length.out=z$len, by=z$stepsize),
seq(T$from, length.out=T$len, by=T$stepsize))
If data
is passed, conditional simulation is performed.
If of class RFsp
,
ncol(data@coords)
must equal the dimension of the index
space. If data@data
contains only a single variable,
variable names are optional. If data@data
contains
more than one variable, variables must be named and model
must be given in the tilde notation resp ~ ...
(see
RFformula
) and "resp"
must be contained
in names(data@data)
.
If data
is a matrix or a data.frame, either ncol(data)
equals (dimension of index space + 1) and the order of the
columns is (x, y, z, T, response) or, if data
contains
more than one
response variable (i.e. ncol(data) > (dimension of index
space + 1)
), colnames(data)
must contain
colnames(x)
or those of "x", "y", "z", "T"
that
are not missing. The response variable name is matched with
model
, which must be given in the tilde notation. If
"x", "y", "z", "T"
are missing and data
contains
NA
s, colnames(data)
must contain an element which starts
with ‘data’; the corresponding column and those behind it are
interpreted as the given data and those before the corresponding
column are interpreted as the coordinates.
If x
is missing, RFsimulate
searches for
NA
s in the data and performs a conditional simulation
for them.
Specification of err.model
:
In geostatistics we have two different interpretations of a nugget
effect: small scale variability and measurement error.
The result of conditional simulation usually does not include the
measurement error. Hence the measurement error err.model
must be given separately. For sake of generality, any model (and not
only the nugget effect) is allowed.
Consequently, err.model
is ignored
when unconditional simulation is performed.
By default,
an object of the virtual class
RFsp
;
result is of class
RFspatialGridDataFrame
if [space-time-dimension > 1] and the coordinates are on a grid,
result is of class
RFgridDataFrame
if [space-time-dimension = 1] and the coordinates are on a grid,
result is of class
RFspatialPointsDataFrame
if [space-time-dimension > 1] and the coordinates are not on a grid,
result is of class
RFpointsDataFrame
if [space-time-dimension = 1] and the coordinates are not on a
grid.
The output format can be switched to the "old" array format using
RFoptions
, either by globally setting
RFoptions(spConform=FALSE)
or by passing spConform=FALSE
in the call of RFsimulate
.
Then the object returned by RFsimulate
depends on the arguments n
and grid
in the following way:
If vdim > 1
the vdim
-variate vector makes the first dimension.
If grid=TRUE
an array of the dimension of the
random field makes the next dimensions. Here, the dimensions
are ordered in the sequence x
, y
, z
, T
(if given).
Else if no time component is given, then the values are passed as a single vector. Else if the time component is given the next 2 dimensions give the space and the time, respectively.
If n > 1
the repetitions make the last dimension.
Note: Conversion between the sp
format and the conventional format can be
done using the method RFspDataFrame2conventional
and the
function conventional2RFspDataFrame
.
InitRFsimulate
returns 0 if no error has occurred and a positive value
if failed.
Advanced options are
spConform
(suppressed return of S4 objects)
practicalrange
(forces range of covariances to be one)
exactness
(chooses the simulation method by precision)
seed
(sets .Random.seed
locally or
globally)
See RFoptions
for further options.
Martin Schlather, schlather@math.uni-mannheim.de, https://www.wim.uni-mannheim.de/schlather/
General
Lantuejoul, Ch. (2002) Geostatistical simulation. New York: Springer.
Schlather, M. (1999) An introduction to positive definite functions and to unconditional simulation of random fields. Technical report ST 99-10, Dept. of Maths and Statistics, Lancaster University.
Original work:
Circulant embedding:
Chan, G. and Wood, A.T.A. (1997) An algorithm for simulating stationary Gaussian random fields. J. R. Stat. Soc., Ser. C 46, 171-181.
Dietrich, C.R. and Newsam, G.N. (1993) A fast and exact method for multidimensional Gaussian stochastic simulations. Water Resour. Res. 29, 2861-2869.
Dietrich, C.R. and Newsam, G.N. (1996) A fast and exact method for multidimensional Gaussian stochastic simulations: Extensions to realizations conditioned on direct and indirect measurement Water Resour. Res. 32, 1643-1652.
Wood, A.T.A. and Chan, G. (1994) Simulation of stationary Gaussian processes in [0,1]^d J. Comput. Graph. Stat. 3, 409-432.
The code used in RandomFields is based on Dietrich and Newsam (1996).
Intrinsic embedding and Cutoff embedding:
Stein, M.L. (2002) Fast and exact simulation of fractional Brownian surfaces. J. Comput. Graph. Statist. 11, 587–599.
Gneiting, T., Sevcikova, H., Percival, D.B., Schlather, M. and Jiang, Y. (2005) Fast and Exact Simulation of Large Gaussian Lattice Systems in R^2: Exploring the Limits J. Comput. Graph. Statist. Submitted.
Markov Gaussian Random Field:
Rue, H. (2001) Fast sampling of Gaussian Markov random fields. J. R. Statist. Soc., Ser. B, 63 (2), 325-338.
Rue, H., Held, L. (2005) Gaussian Markov Random Fields: Theory and Applications. Monographs on Statistics and Applied Probability, no 104, Chapman \& Hall.
Turning bands method (TBM), turning layers:
Dietrich, C.R. (1995) A simple and efficient space domain implementation of the turning bands method. Water Resour. Res. 31, 147-156.
Mantoglou, A. and Wilson, J.L. (1982) The turning bands method for simulation of random fields using line generation by a spectral method. Water. Resour. Res. 18, 1379-1394.
Matheron, G. (1973) The intrinsic random functions and their applications. Adv. Appl. Probab. 5, 439-468.
Schlather, M. (2004) Turning layers: A space-time extension of turning bands. Submitted
Random coins:
Matheron, G. (1967) Elements pour une Theorie des Milieux Poreux. Paris: Masson.
RFoptions(seed=0) ## *ANY* simulation will have the random seed 0; set ## RFoptions(seed=NA) to make them all random again
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.