surveillance (version 1.22.1)

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

Description

To sample points from isotropic spatial 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)

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.

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.

Author

Sebastian Meyer

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