# lineardisc: Compute Disc of Given Radius in Linear Network In spatstat.linnet: Linear Networks Functionality of the 'spatstat' Family

## Description

Computes the ‘disc’ of given radius and centre in a linear network.

## Usage

 ```1 2 3 4``` ``` lineardisc(L, x = locator(1), r, plotit = TRUE, cols=c("blue", "red","green"), add=TRUE) countends(L, x = locator(1), r, toler=NULL, internal=list()) ```

## Arguments

 `L` Linear network (object of class `"linnet"`). `x` Location of centre of disc. Either a point pattern (object of class `"ppp"`) containing exactly 1 point, or a numeric vector of length 2. `r` Radius of disc. `plotit` Logical. Whether to plot the disc. `add` Logical. If `add=TRUE` (the default), the disc will be plotted on the current plot frame. If `add=FALSE`, a new plot frame will be started, the entire network will be displayed, and then the disc will be plotted over this. `cols` Colours for plotting the disc. A numeric or character vector of length 3 specifying the colours of the disc centre, disc lines and disc endpoints respectively. `toler` Optional. Distance threshold for `countends`. See Details. There is a sensible default. `internal` Argument for internal use by the package.

## Details

The ‘disc’ B(u,r) of centre x and radius r in a linear network L is the set of all points u in L such that the shortest path distance from x to u is less than or equal to r. This is a union of line segments contained in L.

The relative boundary of the disc B(u,r) is the set of points v such that the shortest path distance from x to u is equal to r.

The function `lineardisc` computes the disc of radius r and its relative boundary, optionally plots them, and returns them. The faster function `countends` simply counts the number of points in the relative boundary.

Note that `countends` requires the linear network `L` to be given in the non-sparse matrix format (see the argument `sparse` in `linnet` or `as.linnet`) while `lineardisc` accepts both sparse and non-sparse formats.

The optional threshold `toler` is used to suppress numerical errors in `countends`. If the distance from u to a network vertex v is between `r-toler` and `r+toler`, the vertex will be treated as lying on the relative boundary.

## Value

The value of `lineardisc` is a list with two entries:

 `lines ` Line segment pattern (object of class `"psp"`) representing the interior disc `endpoints` Point pattern (object of class `"ppp"`) representing the relative boundary of the disc.

The value of `countends` is an integer giving the number of points in the relative boundary.

## Author(s)

Ang Qi Wei aqw07398@hotmail.com and \adrian

## References

Ang, Q.W. (2010) Statistical methodology for events on a network. Master's thesis, School of Mathematics and Statistics, University of Western Australia.

Ang, Q.W., Baddeley, A. and Nair, G. (2012) Geometrically corrected second-order analysis of events on a linear network, with applications to ecology and criminology. Scandinavian Journal of Statistics 39, 591–617.

`linnet`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13``` ``` # letter 'A' v <- ppp(x=(-2):2, y=3*c(0,1,2,1,0), c(-3,3), c(-1,7)) edg <- cbind(1:4, 2:5) edg <- rbind(edg, c(2,4)) letterA <- linnet(v, edges=edg) plot(letterA) lineardisc(letterA, c(0,3), 1.6) # count the endpoints countends(letterA, c(0,3), 1.6) # cross-check (slower) en <- lineardisc(letterA, c(0,3), 1.6, plotit=FALSE)\$endpoints npoints(en) ```