Anisotropy matrix given by angle
RMangle delivers an anisotropy matrix for the
argument Aniso in RMmodel in two dimensions.
RMangle requires one or two stretching values, passed by
ratio or diag, and an angle.
In two dimensions and with
angle equal to a and diag equal to (d1, d2) the
anisotropy matrix A is
A = diag(d1, d2) %*% matrix(ncol=2, c(cos(a), sin(a), -sin(a), cos(a)))
In three dimensions and with
angle equal to a, second angle L
and diag equal to (d1, d2, d3) the
anisotropy matrix A is
A = diag(d1, d2, d3) %*% matrix(ncol=3, c(cos(a) * cos(L), sin(a) * cos(L), sin(L), -sin(a), cos(a), 0, -cos(a) * sin(L), -sin(a) * sin(L), cos(L)
))
i.e. Ax turns a vector x first in the x-z plane, then
in the x-y plane.
RMangle(angle, lat.angle, ratio, diag)
angle |
angle |
lat.angle |
second angle; in 3 dimensions only |
ratio |
equivalent to |
diag |
the diagonal components of the matrix |
Martin Schlather, schlather@math.uni-mannheim.de, https://www.wim.uni-mannheim.de/schlather/
RFoptions(seed=0) ## *ANY* simulation will have the random seed 0; set ## RFoptions(seed=NA) to make them all random again model <- RMexp(Aniso=RMangle(angle=pi/4, ratio=3)) plot(model, dim=2) x <- seq(0, 2, 0.05) z <- RFsimulate(x, x, model=model) plot(z) model <- RMexp(Aniso=RMangle(angle=pi/4, lat.angle=pi/8, diag=c(1,2,3))) x <- seq(0, 2, 0.2) z <- RFsimulate(x, x, x, model=model) plot(z, MARGIN.slices=3) ## next model gives an example how to estimate the parameters back n <- 20 x <- runif(n, 0, 10) y <- runif(n, 0, 10) coords <- expand.grid(x, y) model <- RMexp(Aniso=RMangle(angle=pi/4, diag=c(1/4, 1/12))) d <- RFsimulate(model, x=coords[, 1], y=coords[, 2], n=10) estmodel <- RMexp(Aniso=RMangle(angle=NA, diag=c(NA, NA))) system.time(RFfit(estmodel, data=d, modus_operandi='sloppy'))
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.