as.linnet.psp | R Documentation |
Converts a line segment pattern to a linear network.
## S3 method for class 'psp'
as.linnet(X, ..., eps, sparse=FALSE)
X |
Line segment pattern (object of class |
... |
Ignored. |
eps |
Optional. Distance threshold. If two segment endpoints
are closer than |
sparse |
Logical value indicating whether to use a sparse matrix
representation, as explained in |
This command converts any collection of line segments into a linear
network by guessing the connectivity of the network,
using the distance threshold eps
.
If any segments in X
cross over each other, they are first
cut into pieces using selfcut.psp
.
Then any pair of segment endpoints lying closer than eps
units apart, is treated as a single vertex. The linear network
is then constructed using linnet
.
It would be wise to check the result by plotting the degree of each vertex, as shown in the Examples.
If X
has marks, then these are stored in
the resulting linear network Y <- as.linnet(X)
,
and can be extracted as marks(as.psp(Y))
or marks(Y$lines)
.
A linear network (object of class "linnet"
).
The result also has an attribute "camefrom"
indicating
the provenance of each line in the resulting network.
For example camefrom[3]=2
means that the third line segment
in the result is a piece of the second segment of X
.
.
linnet
, selfcut.psp
,
methods.linnet
.
# make some data
A <- psp(0.09, 0.55, 0.79, 0.80, window=owin())
B <- superimpose(A, as.psp(simplenet))
# convert to a linear network
L <- as.linnet(B)
# check validity
L
plot(L)
text(vertices(L), labels=vertexdegree(L))
# show the pieces that came from original segment number 1
S <- as.psp(L)
(camefrom <- attr(L, "camefrom"))
parts <- which(camefrom == 1)
plot(S[parts], add=TRUE, col="green", lwd=2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.