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, 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 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.
- 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.
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.
Examples
# NOT RUN {
# 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)
# }