Learn R Programming

lidR (version 2.1.4)

lasfilterdecimate: Decimate a LAS object

Description

Reduce the number of points using several possible algorithms.

Usage

lasfilterdecimate(las, algorithm)

Arguments

las

An object of class LAS or LAScatalog.

algorithm

function. An algorithm of point decimation. lidR have: random, homogenize and highest.

Value

If the input is a LAS object, returns a LAS object. If the input is a LAScatalog, returns a LAScatalog.

Working with a <code>LAScatalog</code>

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 bold). For more details see the LAScatalog engine documentation:

  • chunk size: How much data is loaded at once.

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

  • chunk alignment: Align the processed chunks.

  • progress: Displays a progression estimation.

  • output_files*: Mandatory because the output is likely to be too big to be returned in R and needs to be written in las/laz files. Supported templates are XLEFT, XRIGHT, YBOTTOM, YTOP, XCENTER, YCENTER ID and, if chunk is size equal to 0 (processing by file), ORIGINALFILENAME.

  • select: The function will write files equivalent to the original ones. Thus select = "*" and cannot be changed.

  • filter: Read only points of interest.

Examples

Run this code
# NOT RUN {
LASfile <- system.file("extdata", "Megaplot.laz", package="lidR")
las = readLAS(LASfile, select = "xyz")

# Select points randomly to reach an overall density of 1
thinned1 = lasfilterdecimate(las, random(1))
plot(grid_density(las))
plot(grid_density(thinned1))

# Select points randomly to reach an homogeneous density of 1
thinned2 = lasfilterdecimate(las, homogenize(1,5))
plot(grid_density(thinned2))

# Select the highest point within each pixel of an overlayed grid
thinned3 = lasfilterdecimate(las, highest(5))
plot(thinned3)
# }

Run the code above in your browser using DataLab