Simulation and Analysis of Random Fields


The package RandomFields offers various tools for

  1. model estimation (ML) and inference (tests) for regionalized variables and data analysis,

  2. simulation of different kinds of random fields, including

    • multivariate, spatial, spatio-temporal, and non-stationary Gaussian random fields,

    • Poisson fields, binary fields, Chi2 fields, t fields and

    • max-stable fields.

    It can also deal with non-stationarity and anisotropy of these processes and conditional simulation (for Gaussian random fields, currently).

See for intermediate updates.


The following features are provided by the package:

  1. Bayesian Modelling

    • See Bayesian Modelling for an introduction to hierarchical modelling

  2. Coordinate systems

    • Cartesian, earth and spherical coordinates are recognized, see coordinate systems for details.

    • a list of valid models is given by spherical models.

  3. Data and example studies: Some data sets and published code are provided to illustrate the syntax and structure of the package functions.

    • soil : soil physical data

    • weather : UWME weather data

    • papers : code used in the papers published by the author(s)

  4. Estimation of parameters (for second-order random fields)

    • RFfit : general function for estimating parameters; (for Gaussian random fields)

    • RFhurst : estimation of the Hurst parameter

    • RFfractaldim : estimation of the fractal dimension

    • RFempiricalvariogram : calculates the empirical variogram

  5. Graphics

    • Fitting a covariance function manually RFgui

    • the generic function plot

    • global graphical parameters with RFpar

  6. Inference (for Gaussian random fields)

    • RFcrossvalidate : cross validation

    • RFlikelihood : likelihood

    • RFratiotest : likelihood ratio test

    • AIC, AICc, BIC, anova, logLik

  7. Models

    • For an introduction an general properties, see RMmodels.

    • For an overview over classes of covariance and variogram models –e.g. for geostatistical purposes– see RM. More sophisticated models and covariance function operators are included.

    • To apply the offered package procedures to mixed models – e.g. appearing in genetical data analysis– see RFformula.

    • definite models are evaluated by RFcov, RFvariogram and RFcovmatrix. For a quick impression use plot(model).

    • non-definte models are evaluated by RFfctn and RFcalc

    • RFlinearpart returns the linear part of a model

    • RFboxcox deals explicitely with Box-Cox transformations. In many cases it is performed implicitely.

  8. Prediction (for second-order random fields)

    • RFinterpolate : kriging, including imputing

  9. Simulation

    • RFsimulate: Simulation of random fields, including conditional simulation. For a list of all covariance functions and variogram models see RM. Use plot for visualisation of the result.

  10. S3 and S4 objects

    • The functions return S4 objects based on the package sp, if spConform=TRUE. This is the default.

      If spConform=FALSE, simple objects as in version 2 are returned. These simple objects are frequently provided with an S3 class. This options makes the returning procedure much faster, but currently does not allow for the comfortable use of plot.

    • plot, print, summary, sometimes also str recognise these S3 and S4 objects

    • use sp2RF for an explicite transformation of sp objects to S4 objects of RandomFields.

    • Further generic functions are available for fitted models, see ‘Inference’ above.

  11. Xtended features, especially for package programmers

    • might decide on a large variety of arguments of the simulation and estimation procedures using the function RFoptions

    • may use ‘./configure –with-tcl-config=/usr/lib/tcl8.5/ –with-tk-config=/usr/lib/tk8.5/’ to configure R


A list of major changings from Version 2 to Version 3 can be found in MajorRevisions.

Changings lists some further changings, in particular of argument and argument names.


Current updates are available through


  • Contributions to version 3.0 and following:
    Felix Ballani (TU Bergakademie Freiberg; Poisson Polygons, 2014)
    Daphne Boecker (Univ. Goettingen; RFgui, 2011)
    Katharina Burmeister (Univ. Goettingen; testing, 2012)
    Sebastian Engelke (Univ. Goettingen; RFempiricalvariogram, 2011-12)
    Sebastian Gross (Univ. Goettingen; tilde formulae, 2011)
    Alexander Malinowski (Univ. Mannheim; S3, S4 classes 2011-13)
    Juliane Manitz (Univ. Goettingen; testing, 2012)
    Johannes Martini (Univ. Goettingen; RFempiricalvariogram, 2011-12)
    Ulrike Ober (Univ. Goettingen; help pages, testing, 2011-12)
    Marco Oesting (Univ. Mannheim; Brown-Resnick processes, Kriging, Trend, 2011-13)
    Paulo Ribeiro (Unversidade Federal do Parana; code adopted from geoR, 2014)
    Kirstin Strokorb (Univ. Mannheim; help pages, 2011-13)

  • Contributions to version 2.0 and following:
    Peter Menck (Univ. Goettingen; multivariate circulant embedding)
    R Core Team, Richard Singleton (fft.c and advice)

  • Contributions to version 1 and following:
    Ben Pfaff, 12167 Airport Rd, DeWitt MI 48820, USA making available an algorithm for AVL trees (avltr*)


Patrick Brown : comments on Version 3
Paulo Riberio : comments on Version 1
Martin Maechler : advice for Version 1

Financial support

  • V3.0 has been financially supported by the German Science Foundation (DFG) through the Research Training Group 1953 ‘Statistical Modeling of Complex Systems and Processes — Advanced Nonparametric Approaches’ (2013-2018).

  • V3.0 has been financially supported by Volkswagen Stiftung within the project ‘WEX-MOP’ (2011-2014).

  • Alpha versions for V3.0 have been financially supported by the German Science Foundation (DFG) through the Research Training Groups 1644 ‘Scaling problems in Statistics’ and 1023 ‘Identification in Mathematical Models’ (2008-13).

  • V1.0 has been financially supported by the German Federal Ministry of Research and Technology (BMFT) grant PT BEO 51-0339476C during 2000-03.

  • V1.0 has been financially supported by the EU TMR network ERB-FMRX-CT96-0095 on “Computational and statistical methods for the analysis of spatial data” in 1999.


The following packages enable further choices for the optimizer (instead of optim) in RandomFields: optimx, soma, GenSA, minqa, pso, DEoptim, nloptr, RColorBrewer, colorspace


Martin Schlather,


  • Singleton, R.C. (1979). In Programs for Digital Signal Processing Ed.: Digital Signal Processing Committee and IEEE Acoustics, Speech, and Signal Processing Committe (1979) IEEE press.

  • Schlather, M., Malinowski, A., Menck, P.J., Oesting, M. and Strokorb, K. (2015) Analysis, simulation and prediction of multivariate random fields with package RandomFields. Journal of Statistical Software, 63 (8), 1-25, url = ‘’

  • see also the corresponding vignette.

See Also

See also RF, RM, RP, RR, RC, R.


RFoptions(seed=0) ## *ANY* simulation will have the random seed 0; set
##                   RFoptions(seed=NA) to make them all random again

# simulate some data first (Gaussian random field with exponential
# covariance; 6 realisations)
model <- RMexp()
x <- seq(0, 10, 0.1)
z <- RFsimulate(model, x, x, n=6)

## select some data from the simulated data
xy <- coordinates(z)
pts <- sample(nrow(xy), min(100, nrow(xy) / 2))
data <- matrix(nrow=nrow(xy), as.vector(z))[pts, ]
data <- cbind(xy[pts, ], data)
plot(z, data)

## re-estimate the parameter (true values are 1)
estmodel <- RMexp(var=NA, scale=NA)
(fit <- RFfit(estmodel, data=data))

## show a kriged field based on the estimated parameters
kriged <- RFinterpolate(fit, x, x, data=data)
plot(kriged, data)

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

comments powered by Disqus