Simulation of Random Fields
This function simulates unconditional random fields:
univariate and multivariate, spatial and spatio-temporal Gaussian random fields
fields based on Gaussian fields such as Chi2 fields or Binary fields, see RP.
It also simulates conditional random fields for
univariate and multivariate, spatial and spatio-temporal Gaussian random fields
Here, only the simulation of Gaussian random fields is described. For other kinds of random fields (binary, max-stable, etc.) or more sophisticated approaches see RFsimulateAdvanced.
RFsimulate(model, x, y=NULL, z=NULL, T=NULL, grid=NULL, distances, dim, data, given=NULL, err.model, params, err.params, n=1, ...)
model,params |
object of class |
x |
vector of x coordinates, or object of class |
y,z |
optional vectors of y (z) coordinates, which should not be given if |
T |
optional vector of time coordinates, |
grid |
logical; the function finds itself the correct value in nearly all cases, so that usually |
distances,dim |
another alternative for the argument |
data |
For conditional simulation and random imputing only. If
matrix, data.frame or object of class If the argument
|
given |
optional, matrix or list. If |
err.model,err.params |
For conditional simulation and random
imputing only. |
n |
number of realizations to generate. For a very advanced feature, see the notes in RFsimulateAdvanced. |
... |
for advanced use: further options and control arguments for the simulation that are passed to and processed by |
By default, all Gaussian random fields have zero mean.
Simulating with trend can be done by including RMtrend
in the model, see the examples below.
If data
is passed, conditional simulation based on
simple kriging 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.
RFspatialGridDataFrame
if the space-time dimension is greater than 1
and the coordinates are on a grid,
RFgridDataFrame
if the space-time dimension equals 1 and the coordinates are on a grid,
RFspatialPointsDataFrame
if the space-time dimension is greater than 1 and the coordinates are not on a grid,
RFpointsDataFrame
if the space-time dimension equals 1 and the coordinates are not on a
grid.
In case of a multivariate
If n > 1
the repetitions make the last dimension.
See RFsimulateAdvanced for additional options.
Martin Schlather, schlather@math.uni-mannheim.de, https://www.wim.uni-mannheim.de/schlather/
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.
See RFsimulateAdvanced for more specific literature.
RFoptions(seed=0) ## *ANY* simulation will have the random seed 0; set ## RFoptions(seed=NA) to make them all random again ############################################################# ## ## ## ONLY TWO VERY BASIC EXAMPLES ARE GIVEN HERE ## ## see ## ## ?RMsimulate.more.examples ## ## and ## ## ?RFsimulateAdvanced ## ## for more examples ## ## ## ############################################################# ############################################################# ## ## ## Unconditional simulation ## ## ## ############################################################# ## first let us look at the list of implemented models RFgetModelNames(type="positive definite", domain="single variable", iso="isotropic") ## our choice is the exponential model; ## the model includes nugget effect and the mean: model <- RMexp(var=5, scale=10) + # with variance 4 and scale 10 RMnugget(var=1) + # nugget RMtrend(mean=0.5) # and mean ## define the locations: from <- 0 to <- 20 x.seq <- seq(from, to, length=200) y.seq <- seq(from, to, length=200) simu <- RFsimulate(model, x=x.seq, y=y.seq) plot(simu) ############################################################# ## ## ## Conditional simulation ## ## ## ############################################################# # first we simulate some random values at # 100 random locations: n <- 100 x <- runif(n=n, min=-1, max=1) y <- runif(n=n, min=-1, max=1) dta <- RFsimulate(model = RMexp(), x=x, y=y, grid=FALSE) plot(dta) # let simulate a field conditional on the above data L <- if (interactive()) 100 else 5 x.seq.cond <- y.seq.cond <- seq(-1.5, 1.5, length=L) model <- RMexp() cond <- RFsimulate(model, x=x.seq.cond, y=y.seq.cond, data=dta) plot(cond, dta)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.