Classify points as 'noise'
Classify points as 'noise' (outliers) with several possible algorithms. The function updates the
attribute Classification of the LAS object. The points classified as 'noise' are assigned
a value of 18 according to las specifications.
classify_noise(las, algorithm)
las |
An object of class LAS or LAScatalog. |
algorithm |
If the input is a LAS object, return a LAS object. If the input is a
LAScatalog, returns a LAScatalog.
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*: Mandatory to get a continuous output without edge effects. The buffer is always removed once processed and will never be returned either in R or in files.
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 size is 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.
LASfile <- system.file("extdata", "Topography.laz", package="lidR")
las <- readLAS(LASfile, filter = "-inside 273450 5274350 273550 5274450")
# Add 20 artificial outliers
set.seed(314)
id = round(runif(20, 0, npoints(las)))
set.seed(42)
err = runif(20, -50, 50)
las$Z[id] = las$Z[id] + err
# Using SOR
las <- classify_noise(las, sor(15,7))
#plot(las, color = "Classification")
# Using IVF
las <- classify_noise(las, ivf(5,2))
# Remove outliers using filter_poi()
las_denoise <- filter_poi(las, Classification != LASNOISE)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.