Reduce the number of points using several possible algorithms.
lasfilterdecimate(las, algorithm)
An object of class LAS or LAScatalog.
function. An algorithm of point decimation. lidR
have: random,
homogenize and highest.
If the input is a LAS
object, returns a LAS
object. If the input is a
LAScatalog
, returns 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 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.
cores: How many cores are used. More cores means more data is loaded at once.
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
.
laz_compression: write las
or laz
files
select: The function will write files equivalent to the original ones. Thus select = "*"
and cannot be changed.
filter: Read only points of interest.
# 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