Simulate a GRF

Share:

Description

Simulates a Gaussian Random Field with specified dimensions and covariance structure.

Usage

1
Sim.3D.GRF(d, voxdim, sigma, ksize, mask = NULL, type = c("field", "max"))

Arguments

d

A vector specifying the dimensions of a 3D or 4D array.

voxdim

The dimensions of each voxel.

sigma

The 3D covariance matrix of the field.

ksize

The size (in voxels) of the kernel with which to filter the independent field.

mask

A 3D mask for the field.

type

If type == "field" then the simulated field together with the maximum of the field is returned. If type == "max" then the maximum of the field is returned.

Details

The function works by simulating a Gaussian r.v at each voxel location and then smoothing the field with a discrete filter to obtain a field with the desired covariance structure.

Value

mat

Contains the simulated field if type == "field", else NULL

max

The maximum value of the simulated field.

Author(s)

J. L. Marchini

See Also

GaussSmoothArray,GaussSmoothKernel

Examples

1
2
3
4
5
6
7
d <- c(64, 64, 21)
FWHM <- 9
sigma <- diag(FWHM^2, 3) / (8 * log(2))
voxdim <- c(2, 2, 4)
msk <- array(1, dim = d)

field <- Sim.3D.GRF(d = d, voxdim = voxdim, sigma = sigma, ksize = 9, mask = msk, type = "max")

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.