% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/algorithm-dsm.R
\name{dsm_spikefree}
\alias{dsm_spikefree}
\alias{spikefree}
\alias{lspikefree}
\title{Digital Surface Model Algorithm}
\usage{
spikefree(freeze_distance, height_buffer = 0.5)

lspikefree(slope = 1.96, intercept = 1.42, height_buffer = 0.5)
}
\arguments{
\item{freeze_distance}{freeze distance (see references). Recommended value: 3 times the pulse spacing or
a little higher.}

\item{height_buffer}{buffer distance (see references). Recommended value: 0.5 do not change.}

\item{slope, intercept}{default values selected according to Fisher F. J. (2024). It is recommended
to do not change.}
}
\description{
The spike-free algorithm developed by Khosravipour et al. (2016), which is based on the computation
of an incremental triangulation of all returns with triangle freezing criteria (see references).

The locally adaptive spikefree algorithm by Fischer et al. 2024 adjusts the freeze distance
automatically and locally depending on point density. Within the typical range of airborne laser
scan densities (>1 points/m2), the original 3 parameter formula can be simplified to a
linear relationship. This linear formula predicts freeze distance from local point spacing
(freeze distance ~ intercept + slope*point_spacing) and can be used to adapt the degree
of spike-removal to sampling density, so that data gaps are filled and canopy height estimates
are consistent across point densities. By default, the point spacing is computed at a resolution
of 5 m. It is recommended to apply this algorithm to first returns only and not at a point
spacing > 0.7 m.
}
\examples{
LASfile <- system.file("extdata", "MixedConifer.laz", package="lidR")
poi = "-drop_z_below 0 -inside 481280 3812940 481330 3812990"
las <- readLAS(LASfile, filter = poi)
col <- height.colors(50)

# Khosravipour et al. spikefree algorithm
chm <- rasterize_canopy(las, res = 0.25, spikefree(1.5))
plot(chm, col = col)

# Locally adaptive spikefree algorithm
chm <- rasterize_canopy(las, res = 0.25, lspikefree())
plot(chm, col = col)
}
\references{
Khosravipour, Anahita & Skidmore, Andrew & Isenburg, Martin. (2016). Generating spike-free
digital surface models using LiDAR raw point clouds: A new approach for forestry applications.
International Journal of Applied Earth Observation and Geoinformation. 52. 104-114. 10.1016/j.jag.2016.06.005.

Fischer, F. J., Jackson, T., Vincent, G., & Jucker, T. (2024). Robust characterisation
of forest structure from airborne laser scanning—A systematic assessment and sample workflow for
ecologists. Methods in Ecology and Evolution, 15, 1873–1888. https://doi.org/10.1111/2041-210X.14416
}
\seealso{
Other digital surface model algorithms: 
\code{\link{dsm_pitfree}},
\code{\link{dsm_point2raster}},
\code{\link{dsm_tin}}
}
\concept{digital surface model algorithms}
