Learn R Programming

RandomFields (version 3.0.5)

RMangle: Anisotropy matrix given by angle

Description

RMangle delivers an anisotropy matrix for the argument Aniso in RMmodel in two dimensions. RMangle requires one two strechting 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 $x-z$ plane, then in the $x-y$ plane.

Usage

RMangle(angle, lat.angle, ratio, diag)

Arguments

angle
anglea
lat.angle
second angle; in 3 dimensions only
ratio
equivalent to diag=c(1, 1/ratio); in 2 dimensions only
diag
the diagonal components of the matrix

Value

See Also

RMtrafo, RMmodel

Examples

Run this code
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, if (interactive()) 0.05 else 1)
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, if (interactive()) 0.2 else 1)
z <- RFsimulate(x, x, x, model=model)
plot(z, MARGIN.slices=3)

FinalizeExample()

Run the code above in your browser using DataLab