in.out {mgcv} | R Documentation

## 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 `NA` row, and the polygons are assumed closed.
`x` | A two column matrix. Each row is a point to test for inclusion in the region defined by `bnd`.

### 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 simon.wood@r-project.org

### References

http://www.maths.bath.ac.uk/~sw283/

### 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)

[Package mgcv version 1.7-18 Index]