linnet: Create a Linear Network

View source: R/linnet.R

linnetR Documentation

Create a Linear Network

Description

Creates an object of class "linnet" representing a network of line segments.

Usage

linnet(vertices, m, edges, sparse=FALSE, warn=TRUE)

Arguments

vertices

Point pattern (object of class "ppp") specifying the vertices of the network.

m

Adjacency matrix. A matrix or sparse matrix of logical values equal to TRUE when the corresponding vertices are joined by a line. (Specify either m or edges.)

edges

Edge list. A two-column matrix of integers, specifying all pairs of vertices that should be joined by an edge. (Specify either m or edges.)

sparse

Optional. Logical value indicating whether to use a sparse matrix representation of the network. See Details.

warn

Logical value indicating whether to issue a warning if the resulting network is not connected.

Details

An object of class "linnet" represents a network of straight line segments in two dimensions. The function linnet creates such an object from the minimal information: the spatial location of each vertex (endpoint, crossing point or meeting point of lines) and information about which vertices are joined by an edge.

If sparse=FALSE (the default), the algorithm will compute and store various properties of the network, including the adjacency matrix m and a matrix giving the shortest-path distances between each pair of vertices in the network. This is more efficient for small datasets. However it can require large amounts of memory and can take a long time to execute.

If sparse=TRUE, then the shortest-path distances will not be computed, and the network adjacency matrix m will be stored as a sparse matrix. This saves a lot of time and memory when creating the linear network.

If the argument edges is given, then it will also determine the ordering of the line segments when they are stored or extracted. For example, edges[i,] corresponds to as.psp(L)[i].

Value

Object of class "linnet" representing the linear network.

Author(s)

\wei

and \adrian

See Also

simplenet for an example of a linear network.

methods.linnet for methods applicable to linnet objects.

Special tools: thinNetwork, insertVertices, joinVertices, connected.linnet, lixellate.

delaunayNetwork for the Delaunay triangulation as a network.

ppp, psp.

Examples

  # letter 'A' specified by adjacency matrix
  v <- ppp(x=(-2):2, y=3*c(0,1,2,1,0), c(-3,3), c(-1,7))
  m <- matrix(FALSE, 5,5)
  for(i in 1:4) m[i,i+1] <- TRUE
  m[2,4] <- TRUE
  m <- m | t(m)
  letterA <- linnet(v, m)
  plot(letterA)

  # letter 'A' specified by edge list
  edg <- cbind(1:4, 2:5)
  edg <- rbind(edg, c(2,4))
  letterA <- linnet(v, edges=edg)

spatstat.linnet documentation built on Sept. 20, 2024, 5:06 p.m.