R: Inverse-distance weighted smoothing of observations at...

idw {spatstat} | R Documentation

## Inverse-distance weighted smoothing of observations at irregular points

### Description

Performs spatial smoothing of numeric values observed at a set of irregular locations using inverse-distance weighting.

### Usage

    idw(X, power=2, at="pixels", ...)

### Arguments

`X` | A marked point pattern (object of class `"ppp"`).
`power` | Numeric. Power of distance used in the weighting.
`at` | String specifying whether to compute the intensity values at a grid of pixel locations (`at="pixels"`) or only at the points of `X` (`at="points"`).
`...` | Arguments passed to `as.mask` to control the pixel resolution of the result.

### Details

This function performs spatial smoothing of numeric values observed at a set of irregular locations.

Smoothing is performed by inverse distance weighting. If the observed values are v[1],...,v[n] at locations x[1],...,x[n] respectively, then the smoothed value at a location u is

g(u) = (sum of w[i] * v[i])/(sum of w[i])

where the weights are the inverse p-th powers of distance,

w[i] = 1/d(u,x[i])^p

where d(u,x[i]) is the Euclidean distance from u to x[i].

The argument `X` must be a marked point pattern (object of class `"ppp"`, see `ppp.object`). The points of the pattern are taken to be the observation locations x[i], and the marks of the pattern are taken to be the numeric values v[i] observed at these locations.

The marks are allowed to be a data frame. Then the smoothing procedure is applied to each column of marks.

If `at="pixels"` (the default), the smoothed mark value is calculated at a grid of pixels, and the result is a pixel image. The arguments `...` control the pixel resolution. See `as.mask`.

If `at="points"`, the smoothed mark values are calculated at the data points only, using a leave-one-out rule (the mark value at a data point is excluded when calculating the smoothed value for that point).

An alternative to inverse-distance weighting is kernel smoothing, which is performed by `Smooth.ppp`.

### Value

If `X` has a single column of marks:

- If `at="pixels"` (the default), the result is a pixel image (object of class `"im"`). Pixel values are values of the interpolated function.

- If `at="points"`, the result is a numeric vector of length equal to the number of points in `X`. Entries are values of the interpolated function at the points of `X`.

If `X` has a data frame of marks:

- If `at="pixels"` (the default), the result is a named list of pixel images (object of class `"im"`). There is one image for each column of marks. This list also belongs to the class `"solist"`, for which there is a plot method.

- If `at="points"`, the result is a data frame with one row for each point of `X`, and one column for each column of marks. Entries are values of the interpolated function at the points of `X`.

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

`density.ppp`, `ppp.object`, `im.object`.

See `Smooth.ppp` for kernel smoothing and `nnmark` for nearest-neighbour interpolation.

To perform other kinds of interpolation, see also the `akima` package.

### Examples

       # data frame of marks: trees marked by diameter and height
       data(finpines)
       plot(idw(finpines))
       idw(finpines, at="points")[1:5,]

[Package spatstat version 1.54-0 Index]