Learn R Programming

spatstat.geom (version 3.2-5)

nearestsegment: Find Line Segment Nearest to Each Point

Description

Given a point pattern and a line segment pattern, this function finds the nearest line segment for each point.

Usage

nearestsegment(X, Y)

Value

Integer vector v (of length equal to the number of points in

X) identifying the nearest segment to each point. If v[i] = j, then

Y[j] is the line segment lying closest to X[i].

Arguments

X

A point pattern (object of class "ppp").

Y

A line segment pattern (object of class "psp").

Author

Adrian Baddeley Adrian.Baddeley@curtin.edu.au

and Rolf Turner r.turner@auckland.ac.nz

Details

The distance between a point x and a straight line segment y is defined to be the shortest Euclidean distance between x and any location on y. This algorithm first calculates the distance from each point of X to each segment of Y. Then it determines, for each point x in X, which segment of Y is closest. The index of this segment is returned.

See Also

project2segment to project each point of X to a point lying on one of the line segments.

Use distmap.psp to identify the nearest line segment for each pixel in a grid.

Examples

Run this code
  X <- runifrect(3)
  Y <- as.psp(matrix(runif(20), 5, 4), window=owin())
  v <- nearestsegment(X,Y)
  plot(Y)
  plot(X, add=TRUE)
  plot(X[1], add=TRUE, col="red")
  plot(Y[v[1]], add=TRUE, lwd=2, col="red") 

Run the code above in your browser using DataLab