Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

rpoint

Generate N Random Points


Description

Generate a random point pattern containing n independent, identically distributed random points with any specified distribution.

Usage

rpoint(n, f, fmax=NULL, win=unit.square(),
        ..., giveup=1000, verbose=FALSE,
        nsim=1, drop=TRUE, forcewin=FALSE)

Arguments

n

Number of points to generate.

f

The probability density of the points, possibly un-normalised. Either a constant, a function f(x,y,...), or a pixel image object.

fmax

An upper bound on the values of f. If missing, this number will be estimated.

win

Window in which to simulate the pattern. (Ignored if f is a pixel image, unless forcewin=TRUE).

...

Arguments passed to the function f.

giveup

Number of attempts in the rejection method after which the algorithm should stop trying to generate new points.

verbose

Flag indicating whether to report details of performance of the simulation algorithm.

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.

forcewin

Logical. If TRUE, then simulations will be generated inside win in all cases. If FALSE (the default), the argument win is ignored when f is a pixel image.

Details

This function generates n independent, identically distributed random points with common probability density proportional to f.

The argument f may be

a numerical constant:

uniformly distributed random points will be generated.

a function:

random points will be generated in the window win with probability density proportional to f(x,y,...) where x and y are the cartesian coordinates. The function f must accept two vectors of coordinates x,y and return the corresponding vector of function values. Additional arguments ... of any kind may be passed to the function.

a pixel image:

if f is a pixel image (object of class "im", see im.object) then random points will be generated with probability density proportional to the pixel values of f. To be precise, pixels are selected with probabilities proportional to the pixel values, and within each selected pixel, a point is generated with a uniform distribution inside the pixel.

The window of the simulated point pattern is determined as follows. If forcewin=FALSE (the default) then the argument win is ignored, and the simulation window is the window of the pixel image, Window(f). If forcefit=TRUE then the simulation window is win.

The algorithm is as follows:

  • If f is a constant, we invoke runifpoint.

  • If f is a function, then we use the rejection method. Proposal points are generated from the uniform distribution. A proposal point (x,y) is accepted with probability f(x,y,...)/fmax and otherwise rejected. The algorithm continues until n points have been accepted. It gives up after giveup * n proposals if there are still fewer than n points.

  • If f is a pixel image, then a random sequence of pixels is selected (using sample) with probabilities proportional to the pixel values of f. Then for each pixel in the sequence we generate a uniformly distributed random point in that pixel.

The algorithm for pixel images is more efficient than that for functions.

Value

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

Author(s)

Adrian Baddeley Adrian.Baddeley@curtin.edu.au, Rolf Turner r.turner@auckland.ac.nz and Ege Rubak rubak@math.aau.dk.

See Also

Examples

# 100 uniform random points in the unit square
 X <- rpoint(100)

 # 100 random points with probability density proportional to x^2 + y^2
 X <- rpoint(100, function(x,y) { x^2 + y^2}, 1)

 # `fmax' may be omitted
 X <- rpoint(100, function(x,y) { x^2 + y^2})

 # irregular window
 X <- rpoint(100, function(x,y) { x^2 + y^2}, win=letterR)

 # make a pixel image 
 Z <- setcov(letterR)
 # 100 points with density proportional to pixel values
 X <- rpoint(100, Z)

spatstat.core

Core Functionality of the 'spatstat' Family

v2.1-2
GPL (>= 2)
Authors
Adrian Baddeley [aut, cre], Rolf Turner [aut], Ege Rubak [aut], Kasper Klitgaard Berthelsen [ctb], Achmad Choiruddin [ctb], Jean-Francois Coeurjolly [ctb], Ottmar Cronie [ctb], Tilman Davies [ctb], Julian Gilbey [ctb], Yongtao Guan [ctb], Ute Hahn [ctb], Kassel Hingee [ctb], Abdollah Jalilian [ctb], Marie-Colette van Lieshout [ctb], Greg McSwiggan [ctb], Tuomas Rajala [ctb], Suman Rakshit [ctb], Dominic Schuhmacher [ctb], Rasmus Plenge Waagepetersen [ctb], Hangsheng Wang [ctb]
Initial release
2021-04-17

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.