linnet
Create a Linear Network
Creates an object of class "linnet"
representing
a network of line segments.
- Keywords
- spatial
Usage
linnet(vertices, m, edges, sparse=FALSE)
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 eitherm
oredges
.) - edges
- Edge list. A two-column matrix of integers,
specifying all pairs of vertices
that should be joined by an edge.
(Specify either
m
oredges
.) - sparse
- Optional. Logical value indicating whether to use a sparse matrix representation of the network. See Details.
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.
Value
- Object of class
"linnet"
representing the linear network.
See Also
simplenet
for an example of a linear network.
methods.linnet
for
methods applicable to linnet
objects.
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)