pokeTBM.Rd
\name{pokeTBM}
\alias{pokeTBM}
\title{Transfer of initialisation details}
\description{
The function allows to transfer the initialisation details of the Out
register into the In register in case both registers are initialised
by the same TBM method.
The function is intended to be replaced by a more general, user
friendly method.
}
\usage{
pokeTBM(Out, In)
}
\arguments{
\item{Out}{register from which the initialisation is taken}
\item{In}{register to which the initialisation parameters are transfered}
}
\value{
integer value of the error code. If no error has occurred, 0 is
returned.
Side effect is that the Out register is deleted.
}
\details{
This function is intended to specialists use only.
The function is useful if a random field is to be simulated
for various sets of points (usually grids)
such that the value of the random field at identical points of the
various sets are the same.
The use of pokeTBM avoids the tedious definition of the ensemble of
points obtained by a superposition of
grids as an ensemble of arbitrary points.
See the example below.
}
\note{
Both grids should be centred at the origin and have the same grid
length. These conditions are not checked.
Further, it is not checked whether the simulated
segment on the turning bands of the Out register is large enough
to cover all the points given in the In register.
This has to be ensured by the user. If this condition is not
satisfied
R may crash.
}
\seealso{
\code{\link{GaussRF}}, \code{\link{RFparameters}} \code{\link{RFMethods}}
}
\examples{
###### initialisation
runif(1)
rs <- get(".Random.seed", envir=.GlobalEnv, inherits = FALSE)
DeleteAllRegisters()
col <- "red"
model <- "exponential"
param <- c(0, 1, 0, 10)
meth <- "TBM2"
x2 <- seq(-50, 50, 1)
x1 <- seq(-150,150,1)
y1 <- seq(-15, 15, 1)
r1x <- range(x2)
r1y <- range(y1)
r2x <- range(x2)
r2y <- range(y1)
###### simulation of a random field on long thing stripe
z1 <- GaussRF(x1, y1, model=model, param=param, grid=TRUE, register=1,
method=meth)
get(getOption("device"))(height=1.55, width=12)
par(mar=c(2.2, 2.2, 0.1, 0.1))
image(x1, y1, z1, col=rainbow(100))
polygon(r1x[c(1,2,2,1)], r1y[c(1,1,2,2)], border=col)
###### definition of a random field on a square
InitGaussRF(x2, x2, model=model, param=param, grid=TRUE, register=2,
method=meth)
###### carry over the TBM details from the stripe
if (err <- pokeTBM(1, 2)) stop(paste(err))
##### simulate with the same random seed and the identical TBM details
assign(".Random.seed", rs, envir=.GlobalEnv)
z2 <- DoSimulateRF(register=2)
get(getOption("device"))(height=4.3, width=4.3)
par(mar=c(2.2, 2.2, 0.1, 0.1))
image(x2, x2, z2, zlim=range(z1), col=rainbow(100))
polygon(r2x[c(1,2,2,1)], r2y[c(1,1,2,2)], border=col)
}
\author{Martin Schlather, \email{schlath@hsu-hh.de}
\url{http://www.unibw-hamburg.de/WWEB/math/schlath/schlather.html}}
\keyword{spatial}