R: Intersection, Union or Set Subtraction of Windows

intersect.owin {spatstat.geom} | R Documentation

## Intersection, Union or Set Subtraction of Windows

### Description

Yields the intersection, union or set subtraction of windows.

### Usage

       intersect.owin(..., fatal=FALSE, p)
       union.owin(..., p)
       setminus.owin(A, B, ..., p)

### Arguments

`A,B` | Windows (objects of class `"owin"`).
`...` | Windows, or arguments passed to `as.mask` to control the discretisation.
`fatal` | Logical. Determines what happens if the intersection is empty.
`p` | Optional list of parameters passed to `polyclip` to control the accuracy of polygon geometry.

### Details

The function `intersect.owin` computes the intersection between the windows given in `...`, while `union.owin` computes their union. The function `setminus.owin` computes the intersection of `A` with the complement of `B`.

For `intersect.owin` and `union.owin`, the arguments `...` must be either

- window objects of class `"owin"`,

- data that can be coerced to this class by `as.owin`),

- lists of windows, of class `"solist"`,

- named arguments of `as.mask` to control the discretisation if required.

For `setminus.owin`, the arguments `...` must be named arguments of `as.mask`.

If the intersection is empty, then if `fatal=FALSE` the result is an empty window or `NULL`, while if `fatal=TRUE` an error occurs.

### Value

A window (object of class `"owin"`) or possibly `NULL`.

### Author(s)

Adrian Baddeley Adrian.Baddeley@curtin.edu.au, Rolf Turner r.turner@auckland.ac.nz and Ege Rubak rubak@math.aau.dk.

### See Also

`is.subset.owin`, `overlap.owin`, `is.empty`, `boundingbox`, `owin.object`

### Examples

    # rectangles
       u <- unit.square()
       v <- owin(c(0.5,3.5), c(0.4,2.5))
    # polygon
       data(letterR)
    # mask
       m <- as.mask(letterR)

    # two rectangles
       intersect.owin(u, v)
       union.owin(u,v)
       setminus.owin(u,v)

    # polygon and rectangle
       intersect.owin(letterR, v)
       union.owin(letterR,v)
       setminus.owin(letterR,v)

    # mask and rectangle
       intersect.owin(m, v)
       union.owin(m,v)
       setminus.owin(m,v)

    # mask and polygon
       p <- rotate(v, 0.2)
       intersect.owin(m, p)
       union.owin(m,p)
       setminus.owin(m,p)

    # two polygons
       A <- letterR
       B <- rotate(letterR, 0.2)
       plot(boundingbox(A,B), main="intersection")
       w <- intersect.owin(A, B)
       plot(w, add=TRUE, col="lightblue")
       plot(A, add=TRUE)
       plot(B, add=TRUE)

       plot(boundingbox(A,B), main="union")
       w <- union.owin(A,B)
       plot(w, add=TRUE, col="lightblue")
       plot(A, add=TRUE)
       plot(B, add=TRUE)

       plot(boundingbox(A,B), main="set minus")
       w <- setminus.owin(A,B)
       plot(w, add=TRUE, col="lightblue")
       plot(A, add=TRUE)
       plot(B, add=TRUE)

    # intersection and union of three windows
       C <- shift(B, c(0.2, 0.3))
       plot(union.owin(A,B,C))
       plot(intersect.owin(A,B,C))

[Package spatstat.geom version 2.3-2 Index]