Simulate Thomas Process

Generate a random point pattern, a realisation of the Thomas cluster process.

spatial, datagen
rThomas(kappa, sigma, mu, win = owin(c(0,1),c(0,1)))
Intensity of the Poisson process of cluster centres. A single positive number, a function, or a pixel image.
Standard deviation of random displacement (along each coordinate axis) of a point from its cluster centre.
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.

This algorithm generates a realisation of the (`modified') Thomas 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 isotropic Gaussian displacements from the cluster parent location. The resulting point pattern is a realisation of the classical stationary Thomas process generated inside the window win. This point process has intensity kappa * mu.

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

  • The parent points can be spatially inhomogeneous. If the argumentkappais afunction(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 argumentmuis afunction(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 tomu * f, wherefis the Gaussian probability density centred at the parent point. Equivalently we first generate, for each parent point, a Poisson (mumax) random number of offspring (where$M$is the maximum value ofmu) with independent Gaussian displacements from the parent location, and then randomly thin the offspring points, with retention probabilitymu/M.
  • Both the parent points and the offspring points can be spatially 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 4 * sigma 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 Thomas 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 f.

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


  • The simulated point pattern (an object of class "ppp").

    Additionally, some intermediate results of the simulation are returned as attributes of this point pattern. See rNeymanScott.


Diggle, P. J., Besag, J. and Gleaves, J. T. (1976) Statistical analysis of spatial point patterns by means of distance methods. Biometrics 32 659--667.

Thomas, M. (1949) A generalisation of Poisson's binomial limit for use in ecology. Biometrika 36, 18--25.

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

See Also

rpoispp, rMatClust, rGaussPoisson, rNeymanScott, thomas.estK, thomas.estpcf, kppm

  • rThomas
  X <- rThomas(10, 0.2, 5)
  Z <- as.im(function(x,y){ 5 * exp(2 * x - 1) }, owin())
  Y <- rThomas(10, 0.2, Z)
Documentation reproduced from package spatstat, version 1.34-1, License: GPL (>= 2)

Community examples

Looks like there are no examples yet.