spatstat (version 1.16-1)

rThomas: Simulate Thomas Process


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


rThomas(kappa, sigma, mu, win = owin(c(0,1),c(0,1)))


Intensity of the Poisson process of cluster centres. A single positive number.
Standard deviation of displacement of a point from its cluster centre.
Expected number of points per cluster.
Window in which to simulate the pattern. An object of class "owin" or something acceptable to as.owin.


  • 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.


This algorithm generates a realisation of the Thomas process, a special case of the Neyman-Scott process. 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 points, the number of points per cluster being Poisson (mu) distributed, and their positions being isotropic Gaussian displacements from the cluster parent location.

This classical model can be fitted to data by the method of minimum contrast, using thomas.estK or kppm. 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 (2006). For a given parent point, the offspring constitute a Poisson process with intensity function equal tomu(x,y) * f(x,y)wherefis the Gaussian density centred at the parent point.
When the parents are homogeneous (kappa is a single number) and the offspring are inhomogeneous (mu is a function or pixel image), the model can be fitted to data using kppm, or using thomas.estK applied to the inhomogeneous $K$ function.


Waagepetersen, R. (2006) An estimating function approach to inference for inhomogeneous Neyman-Scott processes. Submitted for publication.

See Also

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


Run this code
  X <- rThomas(10, 0.2, 5)
  Z <-,y){ 5 * exp(2 * x - 1) }, owin())
  Y <- rThomas(10, 0.2, Z)

Run the code above in your browser using DataCamp Workspace