spatstat (version 1.56-1)

rMatClust: Simulate Matern Cluster Process


Generate a random point pattern, a simulated realisation of the Matern Cluster Process.


rMatClust(kappa, scale, mu, win = owin(c(0,1),c(0,1)),
           nsim=1, drop=TRUE, 
           saveLambda=FALSE, expand = scale, ...,
           poisthresh=1e-6, saveparents=TRUE)



Intensity of the Poisson process of cluster centres. A single positive number, a function, or a pixel image.


Radius parameter of the clusters.


Mean number of points per cluster (a single positive number) or reference intensity for the cluster points (a function or a pixel image).


Window in which to simulate the pattern. An object of class "owin" or something acceptable to as.owin.


Number of simulated realisations to be generated.


Logical. If nsim=1 and drop=TRUE (the default), the result will be a point pattern, rather than a list containing a point pattern.


Logical. If TRUE then the random intensity corresponding to the simulated parent points will also be calculated and saved, and returns as an attribute of the point pattern.


Numeric. Size of window expansion for generation of parent points. Defaults to scale which is the cluster radius.

Passed to clusterfield to control the image resolution when saveLambda=TRUE.


Numerical threshold below which the model will be treated as a Poisson process. See Details.


Logical value indicating whether to save the locations of the parent points as an attribute.


A point pattern (an object of class "ppp") if nsim=1, or a list of point patterns if nsim > 1.

Additionally, some intermediate results of the simulation are returned as attributes of this point pattern (see rNeymanScott). Furthermore, the simulated intensity function is returned as an attribute "Lambda", if saveLambda=TRUE.


This algorithm generates a realisation of Matern's cluster process, a special case of the Neyman-Scott process, inside the window win.

In the simplest case, where kappa and mu are single numbers, the algorithm generates a uniform Poisson point process of “parent” points with intensity kappa. Then each parent point is replaced by a random cluster of “offspring” points, the number of points per cluster being Poisson (mu) distributed, and their positions being placed and uniformly inside a disc of radius scale centred on the parent point. The resulting point pattern is a realisation of the classical “stationary Matern cluster process” generated inside the window win. This point process has intensity kappa * mu.

The algorithm can also generate spatially inhomogeneous versions of the Matern cluster process:

  • The parent points can be spatially inhomogeneous. If the argument kappa is a function(x,y) or a pixel image (object of class "im"), then it is taken as specifying the intensity function of an inhomogeneous Poisson process that generates the parent points.

  • The offspring points can be inhomogeneous. If the argument mu is a function(x,y) or a pixel image (object of class "im"), then it is interpreted as the reference density for offspring points, in the sense of Waagepetersen (2007). For a given parent point, the offspring constitute a Poisson process with intensity function equal to mu/(pi * scale^2) inside the disc of radius scale centred on the parent point, and zero intensity outside this disc. Equivalently we first generate, for each parent point, a Poisson (\(M\)) random number of offspring (where \(M\) is the maximum value of mu) placed independently and uniformly in the disc of radius scale centred on the parent location, and then randomly thin the offspring points, with retention probability mu/M.

  • Both the parent points and the offspring points can be inhomogeneous, as described above.

Note that if kappa is a pixel image, its domain must be larger than the window win. This is because an offspring point inside win could have its parent point lying outside win. In order to allow this, the simulation algorithm first expands the original window win by a distance expand and generates the Poisson process of parent points on this larger window. If kappa is a pixel image, its domain must contain this larger window.

The intensity of the Matern cluster process is kappa * mu if either kappa or mu is a single number. In the general case the intensity is an integral involving kappa, mu and scale.

The Matern cluster process model with homogeneous parents (i.e. where kappa is a single number) can be fitted to data using kppm. Currently it is not possible to fit the Matern cluster process model with inhomogeneous parents.

If the pair correlation function of the model is very close to that of a Poisson process, deviating by less than poisthresh, then the model is approximately a Poisson process, and will be simulated as a Poisson process with intensity kappa * mu, using rpoispp. This avoids computations that would otherwise require huge amounts of memory.


Matern, B. (1960) Spatial Variation. Meddelanden fraan Statens Skogsforskningsinstitut, volume 59, number 5. Statens Skogsforskningsinstitut, Sweden.

Matern, B. (1986) Spatial Variation. Lecture Notes in Statistics 36, Springer-Verlag, New York.

Waagepetersen, R. (2007) An estimating function approach to inference for inhomogeneous Neyman-Scott processes. Biometrics 63, 252--258.

See Also

rpoispp, rThomas, rCauchy, rVarGamma, rNeymanScott, rGaussPoisson, kppm, clusterfit.


Run this code
 # homogeneous
 X <- rMatClust(10, 0.05, 4)
 # inhomogeneous
 ff <- function(x,y){ 4 * exp(2 * abs(x) - 1) }
 Z <-, owin())
 Y <- rMatClust(10, 0.05, Z)
 YY <- rMatClust(ff, 0.05, 3)
# }

Run the code above in your browser using DataLab