simulate_gaussian.RdReturns a function that simulates spatially correlated Gaussian random fields using a variogram model.
simulate_gaussian(
vgm = NULL,
psill = 1,
model = "Sph",
range = NULL,
nugget = 0,
beta = 0,
nmax = 30,
indicators = FALSE,
seed = NULL
)A variogram model object (variogramModel or gstatVariogramModel).
If NULL, one is built from model, psill, range, and nugget.
Partial sill (default: 1). Ignored if vgm is provided.
Variogram model type (e.g., "Sph", "Exp", "Gau", "Nug").
Ignored if vgm is provided.
Spatial range parameter. Required if vgm is NULL.
Nugget effect (default: 0). Ignored if vgm is provided.
Mean of the Gaussian field (default: 0). Passed to gstat::gstat().
The number of nearest observations used for kriging simulation (default: 30).
Passed to gstat::gstat().
Indicator thresholds (default: FALSE). Passed to
stats::predict(). Use TRUE for default thresholds or a numeric vector
for custom thresholds.
Optional random seed for reproducibility. Set this to ensure that the same random field is generated every time the returned function is called.
A function that accepts rast_grid and n and returns a SpatRaster
rast_grid = terra::rast(ncols = 300, nrows = 100,
xmin = 0, xmax = 300, ymin = 0, ymax = 100)
# Direct usage
sim_fn = simulate_gaussian(range = 25)
sf1 = sim_covariates(rast_grid, n = 4, method = sim_fn)
# With custom variogram
vgm = gstat::vgm(model = "Exp", psill = 1, range = 10)
sim_fn2 = simulate_gaussian(vgm = vgm)
sf2 = sim_covariates(rast_grid, n = 4, method = sim_fn2)
terra::plot(sf1)
terra::plot(sf2)