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

lineardisc

Compute Disc of Given Radius in Linear Network


Description

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

Usage

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 Baddeley Adrian.Baddeley@curtin.edu.au

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.

See Also

Examples

# 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)

spatstat.linnet

Linear Networks Functionality of the 'spatstat' Family

v2.1-1
GPL (>= 2)
Authors
Adrian Baddeley [aut, cre], Rolf Turner [aut], Ege Rubak [aut], Ottmar Cronie [ctb], Tilman Davies [ctb], Greg McSwiggan [ctb], Suman Rakshit [ctb]
Initial release
2021-03-28

We don't support your browser anymore

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