surveillance (version 1.12.1)

siaf.simulatePC: Simulation from an Isotropic Spatial Kernel via Polar Coordinates

Description

To sample points from isotropic power-law kernels $f_2(s) = f(||s||)$ such as siaf.powerlaw on a bounded domain (i.e., $||s|| < \code{ub}$), it is convenient to switch to polar coordinates $(r,\theta)$, which have a density proportional to $r f_2((r \cos(\theta), r \sin(\theta))) = r f(r)$ (independent of the angle $\theta$ due to isotropy). The angle is thus simply drawn uniformly in $[0,2\pi)$, and $r$ can be sampled by the inversion method, where numeric root finding is used for the quantiles (since the quantile function is not available in closed form).

Usage

siaf.simulatePC(intrfr)

Arguments

intrfr
a function computing the integral of $r f(r)$ from 0 to R (first argument, not necessarily named R). Parameters of the function are passed as its second argument and a third argument is the event type.

Value

  • a function with arguments (n, siafpars, type, ub), which samples n points from the spatial kernel $f_2(s)$ within the disc of radius ub, where siafpars and type are passed as second and third argument to intrfr. The environment of the returned function will be the caller's environment.

Examples

Run this code
simfun <- siaf.powerlaw()$simulate
## is internally generated as siaf.simulatePC(intrfr.powerlaw)

set.seed(1)
simfun(n=10, siafpars=log(c(sigma=1, d=2)), ub=5)

Run the code above in your browser using DataLab