R: Safely Convert Point Pattern Window to Binary Mask

discretise {spatstat} | R Documentation

## Safely Convert Point Pattern Window to Binary Mask

### Description

Given a point pattern, discretise its window by converting it to a binary pixel mask, adjusting the mask so that it still contains all the points.

### Usage

      discretise(X, eps = NULL, dimyx = NULL, xy = NULL)

### Arguments

`X` | A point pattern (object of class `"ppp"`) to be converted.
`eps` | (optional) width and height of each pixel
`dimyx` | (optional) pixel array dimensions
`xy` | (optional) pixel coordinates

### Details

This function modifies the point pattern `X` by converting its observation window `Window(X)` to a binary pixel image (a window of type `"mask"`). It ensures that no points of `X` are deleted by the discretisation.

The window is first discretised using `as.mask`. It can happen that points of `X` that were inside the original window may fall outside the new mask. The `discretise` function corrects this by augmenting the mask (so that the mask includes any pixel that contains a point of the pattern).

The arguments `eps`, `dimyx` and `xy` control the fineness of the pixel array. They are passed to `as.mask`.

If `eps`, `dimyx` and `xy` are all absent or `NULL`, and if the window of `X` is of type `"mask"` to start with, then `discretise(X)` returns `X` unchanged.

See `as.mask` for further details about the arguments `eps`, `dimyx`, and `xy`, and the process of converting a window to one of type `mask`.

### Value

A point pattern (object of class `"ppp"`), identical to `X`, except that its observation window has been converted to one of type `mask`.

### Error checking

Before doing anything, `discretise` checks that all the points of the pattern are actually inside the original window. This is guaranteed to be the case if the pattern was constructed using `ppp` or `as.ppp`. However anomalies are possible if the point pattern was created or manipulated inappropriately. These will cause an error.

### Author(s)

Adrian Baddeley Adrian.Baddeley@curtin.edu.au

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

### See Also

`as.mask`

### Examples

      data(demopat)
      X <- demopat
      plot(X, main="original pattern")
      Y <- discretise(X, dimyx=50)
      plot(Y, main="discretise(X)")
      stopifnot(npoints(X) == npoints(Y))

      # what happens if we just convert the window to a mask?
      W <- Window(X)
      M <- as.mask(W, dimyx=50)
      plot(M, main="window of X converted to mask")
      plot(X, add=TRUE, pch=16)
      plot(X[M], add=TRUE, pch=1, cex=1.5)
      XM <- X[M]
      cat(paste(npoints(X) - npoints(XM), "points of X lie outside M\n"))

[Package spatstat version 1.63-3 Index]