# discretise

##### Safely Convert Point Pattern Window to Binary Mask

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 `X$window`

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.

##### See Also

##### Examples

```
data(demopat)
X <- demopat
plot(X, main="original pattern")
Y <- discretise(X, dimyx=50)
plot(Y, main="discretise(X)")
stopifnot(X$n == Y$n)
# what happens if we just convert the window to a mask?
W <- X$window
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(X$n - XM$n, "points of X lie outside M
"))
```

*Documentation reproduced from package spatstat, version 1.17-5, License: GPL (>= 2)*