# densityEqualSplit

##### Equal-Split Algorithm for Kernel Density on a Network

Computes a kernel density estimate on a linear network using the Okabe-Sugihara equal-split algorithms.

##### Usage

```
densityEqualSplit(x, sigma = NULL, …, weights = NULL,
kernel = "epanechnikov", continuous = TRUE,
epsilon = 1e-06, verbose = TRUE, debug = FALSE, savehistory = TRUE)
```

##### Arguments

- x
Point pattern on a linear network (object of class

`"lpp"`

) to be smoothed.- sigma
Smoothing bandwidth (standard deviation of the kernel) in the same units as the spatial coordinates of

`x`

.- …
Arguments passed to

`as.mask`

determining the resolution of the result.- weights
Optional. Numeric vector of weights associated with the points of

`x`

. Weights may be positive, negative or zero.- kernel
Character string specifying the smoothing kernel. See

`dkernel`

for possible options.- continuous
Logical value indicating whether to compute the “equal-split continuous” smoother (

`continuous=TRUE`

, the default) or the “equal-split discontinuous” smoother (`continuous=FALSE`

).- epsilon
Tolerance value. A tail of the kernel with total mass less than

`epsilon`

may be deleted.- verbose
Logical value indicating whether to print progress reports.

- debug
Logical value indicating whether to print debugging information.

- savehistory
Logical value indicating whether to save the entire history of the algorithm, for the purposes of evaluating performance.

##### Details

Kernel smoothing is applied to the points of `x`

using a kernel based on path distances in the network.
The result is a pixel image on the linear network (class
`"linim"`

) which can be plotted.

Smoothing is performed using one of the “equal-split” rules described in Okabe and Sugihara (2012).

If

`continuous=TRUE`

(the default), smoothing is performed using the “equal-split continuous” rule described in Section 9.2.3 of Okabe and Sugihara (2012). The resulting function is continuous on the linear network.If

`continuous=FALSE`

, smoothing is performed using the “equal-split discontinuous” rule described in Section 9.2.2 of Okabe and Sugihara (2012). The resulting function is not continuous.

Computation is performed by path-tracing as described in Okabe and Sugihara (2012).

It is advisable to choose a kernel with bounded support
such as `kernel="epanechnikov"`

.
With a Gaussian kernel, computation time can be long, and
increases exponentially with `sigma`

.

Faster algorithms are available through `density.lpp`

.

##### Value

A pixel image on the linear network (object of class `"linim"`

).

##### Infinite bandwidth

If `sigma=Inf`

, the resulting density estimate is
constant over all locations,
and is equal to the average density of points per unit length.
(If the network is not connected, then this rule
is applied separately to each connected component of the network).

##### References

Okabe, A. and Sugihara, K. (2012)
*Spatial analysis along networks*.
Wiley.

##### See Also

##### Examples

```
# NOT RUN {
X <- runiflpp(3, simplenet)
De <- density(X, 0.2, kernel="epanechnikov", verbose=FALSE)
Ded <- density(X, 0.2, kernel="epanechnikov", continuous=FALSE, verbose=FALSE)
# }
```

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