project2segment
From spatstat v1.16-2
by Adrian Baddeley
Move Point To Nearest Line
Given a point pattern and a line segment pattern, this function moves each point to the closest location on a line segment.
Usage
project2segment(X, Y)
Arguments
- X
- A point pattern (object of class
"ppp"
). - Y
- A line segment pattern (object of class
"psp"
).
Details
For each point x
in the point pattern X
, this function
finds the closest line segment y
in the line segment pattern
Y
. It then `projects' the point x
onto the line segment
y
by finding the position z
along y
which is closest to x
. This position z
is returned,
along with supplementary information.
Value
- A list with the following components. Each component has length equal to
the number of points in
X
, and its entries correspond to the points ofX
. Xproj Point pattern (object of class "ppp"
containing the projected points.mapXY Integer vector identifying the nearest segment to each point. d Numeric vector of distances from each point of X
to the corresponding projected point.tp Numeric vector giving the scaled parametric coordinate $0 \le t_p \le 1$ of the position of the projected point along the segment. - For example suppose
mapXY[2] = 5
andtp[2] = 0.33
. ThenY[5]
is the line segment lying closest toX[2]
. The projection of the pointX[2]
onto the segmentY[5]
is the pointXproj[2]
, which lies one-third of the way between the first and second endpoints of the line segmentY[5]
.
See Also
nearestsegment
for a faster way to determine
which segment is closest to each point.
Examples
X <- rstrat(square(1), 5)
Y <- as.psp(matrix(runif(20), 5, 4), window=owin())
plot(Y, lwd=3, col="green")
plot(X, add=TRUE, col="red", pch=16)
v <- project2segment(X,Y)
Xproj <- v$Xproj
plot(Xproj, add=TRUE, pch=16)
arrows(X$x, X$y, Xproj$x, Xproj$y, angle=10, length=0.15, col="red")
Community examples
Looks like there are no examples yet.