Learn R Programming

secr (version 4.6.10)

contour: Contour Detection Probability

Description

Display contours of the net probability of detection p.(X), or the area within a specified distance of detectors. buffer.contour adds a conventional `boundary strip' to a detector (trap) array, where buffer equals the strip width.

Usage

pdot.contour(traps, border = NULL, nx = 64, detectfn = 0,
    detectpar = list(g0 = 0.2, sigma = 25, z = 1), noccasions = NULL,
    binomN = NULL, levels = seq(0.1, 0.9, 0.1), poly =
    NULL, poly.habitat = TRUE, plt = TRUE, add = FALSE, fill = NULL, ...)

buffer.contour(traps, buffer, nx = 64, convex = FALSE, ntheta = 100, plt = TRUE, add = FALSE, poly = NULL, poly.habitat = TRUE, fill = NULL, ...)

Value

Coordinates of the plotted contours are returned as a list with one component per polygon. The list is returned invisibly if plt = TRUE.

For multi-session input (traps) the value is a list of such lists, one per session.

Arguments

traps

traps object (or mask for buffer.contour)

border

width of blank margin around the outermost detectors

nx

dimension of interpolation grid in x-direction

detectfn

integer code or character string for shape of detection function 0 = halfnormal etc. -- see detectfn

detectpar

list of values for named parameters of detection function

noccasions

number of sampling occasions

binomN

integer code for discrete distribution (see secr.fit)

levels

vector of levels for p.(X)

poly

matrix of two columns, the x and y coordinates of a bounding polygon (optional)

poly.habitat

logical as in make.mask

plt

logical to plot contours

add

logical to add contour(s) to an existing plot

fill

vector of colours to fill contours (optional)

...

other arguments to pass to contour

buffer

vector of buffer widths

convex

logical, if TRUE the plotted contour(s) will be convex

ntheta

integer value for smoothness of convex contours

Details

pdot.contour constructs a rectangular mask and applies pdot to compute the p.(X) at each mask point.

If convex = FALSE, buffer.contour constructs a mask and contours the points on the basis of distance to the nearest detector at the levels given in buffer.

If convex = TRUE, buffer.contour constructs a set of potential vertices by adding points on a circle of radius = buffer to each detector location; the desired contour is the convex hull of these points (this algorithm derives from Efford, 2012).

If traps has a usage attribute then noccasions is set accordingly; otherwise it must be provided.

If traps is for multiple sessions then detectpar should be a list of the same length, one component per session, and noccasions may be a numeric vector of the same length.

Increase nx for smoother lines, at the expense of speed.

References

Efford, M. G. (2012) DENSITY 5.0: software for spatially explicit capture--recapture. Department of Mathematics and Statistics, University of Otago, Dunedin, New Zealand https://www.otago.ac.nz/density/.

See Also

pdot, make.mask

Examples

Run this code

possumtraps <- traps(possumCH)

## convex and concave buffers
plot(possumtraps, border = 270)
buffer.contour(possumtraps, buffer = 100, add = TRUE, col = "blue")
buffer.contour(possumtraps, buffer = 100, convex = TRUE, add = TRUE)

## areas
buff.concave <- buffer.contour(possumtraps, buffer = 100,
    plt = FALSE)
buff.convex  <- buffer.contour(possumtraps, buffer = 100,
    plt = FALSE, convex = TRUE)
sum (sapply(buff.concave, polyarea)) ## sum over parts
sapply(buff.convex, polyarea)

## effect of nx on area
buff.concave2 <- buffer.contour(possumtraps, buffer = 100,
    nx = 128, plt = FALSE)
sum (sapply(buff.concave2, polyarea))

if (FALSE) {

plot(possumtraps, border = 270)
pdot.contour(possumtraps, detectfn = 0, nx = 128, detectpar =
    detectpar(possum.model.0), levels = c(0.1, 0.01, 0.001),
    noccasions = 5, add = TRUE)

## clipping to polygon
olddir <- setwd(system.file("extdata", package = "secr"))
possumtraps <- traps(possumCH)
possumarea <- read.table("possumarea.txt", header = TRUE)
par(xpd = TRUE, mar = c(1,6,6,6))
plot(possumtraps, border = 400, gridlines = FALSE)
pdot.contour(possumtraps, detectfn = 0, nx = 256, detectpar =
    detectpar(possum.model.0), levels = c(0.1, 0.01, 0.001),
    noccasions = 5, add = TRUE, poly = possumarea, col = "blue")
lines(possumarea)
setwd(olddir)
par(xpd = FALSE, mar = c(5,4,4,2) + 0.1)    ## reset to default

}

Run the code above in your browser using DataLab