This function is made to be used in rasterize_canopy . It implements an algorithm for digital surface model computation using a Delaunay triangulation of first returns with a linear interpolation within each triangle.
dsmtin(max_edge =0, highest =TRUE)
Arguments
max_edge: numeric. Maximum edge length of a triangle in the Delaunay triangulation. If a triangle has an edge length greater than this value it will be removed to trim dummy interpolation on non-convex areas. If max_edge = 0 no trimming is done (see examples).
highest: bool. By default it keeps only the highest point per pixel before to triangulate to decrease computation time. If highest = FALSE all first returns are used.
Examples
LASfile <- system.file("extdata","MixedConifer.laz", package="lidR")las <- readLAS(LASfile)col <- height.colors(50)# Basic triangulation and rasterization of first returnschm <- rasterize_canopy(las, res =1, dsmtin())plot(chm, col = col)## Not run:# Potentially complex concave subset of point cloudx = c(481340,481340,481280,481300,481280,481340)y = c(3812940,3813000,3813000,3812960,3812940,3812940)las2 = clip_polygon(las,x,y)plot(las2)# Because the TIN interpolation is done within the convex hull of the point cloud# dummy pixels are interpolated that are correct according to the interpolation method# used, but meaningless in our CHMchm <- rasterize_canopy(las2, res =0.5, dsmtin())plot(chm, col = col)# Use 'max_edge' to trim dummy triangleschm = rasterize_canopy(las2, res =0.5, dsmtin(max_edge =3))plot(chm, col = col)## End(Not run)
See Also
Other digital surface model algorithms: dsm_pitfree, dsm_point2raster