Learn R Programming

spatstat (version 1.48-0)

rthin: Random Thinning

Description

Applies independent random thinning to a point pattern.

Usage

rthin(X, P, ..., nsim=1, drop=TRUE)

Arguments

X
A point pattern (object of class "ppp") that will be thinned.
P
Data giving the retention probabilities, i.e. the probability that each point in X will be retained. Either a single number, or a vector of numbers, or a function(x,y), or a pixel image (object of class "im").
...
Additional arguments passed to P, if it is a function.
nsim
Number of simulated realisations to be generated.
drop
Logical. If nsim=1 and drop=TRUE (the default), the result will be a point pattern, rather than a list containing a point pattern.

Value

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

Reproducibility

The algorithm for random thinning was changed in spatstat version 1.42-3. Set spatstat.options(fastthin=FALSE) to use the previous, slower algorithm, if it is desired to reproduce results obtained with earlier versions.

Details

In a random thinning operation, each point of the pattern X is randomly either deleted or retained (i.e. not deleted). The result is a point pattern, consisting of those points of X that were retained.

Independent random thinning means that the retention/deletion of each point is independent of other points.

The argument P determines the probability of retaining each point. It may be

If P is a function, it should be ‘vectorised’, that is, it should accept vector arguments x,y and should yield a numeric vector of the same length. The function may have extra arguments which are passed through the ... argument.

Examples

Run this code
  data(redwood)
  plot(redwood, main="thinning")
  
  # delete 20% of points
  Y <- rthin(redwood, 0.8)
  points(Y, col="green", cex=1.4)

  # function
  f <- function(x,y) { ifelse(x < 0.4, 1, 0.5) }
  Y <- rthin(redwood, f)

  # pixel image
  Z <- as.im(f, Window(redwood))
  Y <- rthin(redwood, Z)

Run the code above in your browser using DataLab