R: Digital Surface Model

grid_canopy {lidR} | R Documentation

## Digital Surface Model

### Description

Creates a digital surface model (DSM) using several possible algorithms. If the user provides a normalised point cloud, the output is indeed a canopy height model (CHM).

### Usage

    grid_canopy(las, res, algorithm)

### Arguments

`las` | An object of class LAS or LAScatalog.
`res` | numeric. The resolution of the output `Raster`. Can optionally be a `RasterLayer`. In that case the `RasterLayer` is used as the layout.
`algorithm` | function. A function that implements an algorithm to compute a digital surface model. `lidR` implements p2r, dsmtin, pitfree (see respective documentation and examples).

### Value

A `RasterLayer` containing a numeric value in each cell. If the `RasterLayer`s are written on disk when running the function with a `LAScatalog`, a virtual raster mosaic is returned (see gdalbuildvrt)

### Working with a `LAScatalog`

This section appears in each function that supports a LAScatalog as input.

In `lidR` when the input of a function is a LAScatalog the function uses the LAScatalog processing engine. The user can modify the engine options using the available options. A careful reading of the engine documentation is recommended before processing `LAScatalogs`. Each `lidR` function should come with a section that documents the supported engine options.

The `LAScatalog` engine supports `.lax` files that significantly improve the computation speed of spatial queries using a spatial index. Users should really take advantage a `.lax` files, but this is not mandatory.

### Supported processing options

Supported processing options for a `LAScatalog` in `grid_*` functions (in bold). For more details see the LAScatalog engine documentation:

- chunk size: How much data is loaded at once. The chunk size may be slightly modified internally to ensure a strict continuous wall-to-wall output even when chunk size is equal to 0 (processing by file).

- chunk buffer: This function guarantees a strict continuous wall-to-wall output. The `buffer` option is not considered.

- chunk alignment: Align the processed chunks. The alignment may be slightly modified internally to ensure a strict continuous wall-to-wall output.

- progress: Displays a progress estimate.

- output files: Return the output in R or write each cluster's output in a file. Supported templates are `{XLEFT}`, `{XRIGHT}`, `{YBOTTOM}`, `{YTOP}`, `{XCENTER}`, `{YCENTER}` `{ID}` and, if chunk size is equal to 0 (processing by file), `{ORIGINALFILENAME}`.

- select: The `grid_*` functions usually 'know' what should be loaded and this option is not considered. In grid_metrics this option is respected.

- filter: Read only the points of interest.

### Examples

    LASfile <- system.file("extdata", "MixedConifer.laz", package="lidR")
    las <- readLAS(LASfile, filter = "-inside 481280 3812940 481330 3812990")
    col <- height.colors(50)

    # Points-to-raster algorithm with a resolution of 1 meter
    chm <- grid_canopy(las, res = 1, p2r())
    plot(chm, col = col)

    # Points-to-raster algorithm with a resolution of 0.5 meters replacing each
    # point by a 20-cm radius circle of 8 points
    chm <- grid_canopy(las, res = 0.5, p2r(0.2))
    plot(chm, col = col)

    # Basic triangulation and rasterization of first returns
    chm <- grid_canopy(las, res = 0.5, dsmtin())
    plot(chm, col = col)

    # Khosravipour et al. pitfree algorithm
    chm <- grid_canopy(las, res = 0.5, pitfree(c(0,2,5,10,15), c(0, 1.5)))
    plot(chm, col = col)

[Package lidR version 3.2.2 Index]