in.out
Which of a set of points lie within a polygon defined region
Description
Tests whether each of a set of points lie within a region defined by one or more (possibly nested) polygons. Points count as ‘inside’ if they are interior to an odd number of polygons.
Usage
in.out(bnd,x)
Arguments
bnd | A two column matrix, the rows of which define the vertices of polygons defining the boundary of a region. Different polygons should be separated by an |
x | A two column matrix. Each row is a point to test for inclusion in the region defined by |
Details
The algorithm works by counting boundary crossings (using compiled C code).
Value
A logical vector of length nrow(x)
. TRUE
if the corresponding row of x
is inside the boundary and FALSE
otherwise.
Author(s)
Simon N. Wood [email protected]
References
https://www.maths.ed.ac.uk/~swood34/
Examples
library(mgcv) data(columb.polys) bnd <- columb.polys[[2]] plot(bnd,type="n") polygon(bnd) x <- seq(7.9,8.7,length=20) y <- seq(13.7,14.3,length=20) gr <- as.matrix(expand.grid(x,y)) inside <- in.out(bnd,gr) points(gr,col=as.numeric(inside)+1)
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.