lidR (version 1.5.1)

lasground: Classify points as ground or not ground

Description

Implements algorithms for segmentation of ground points. The function updates the field Classification of the LAS input object. The points classified as 'ground' are assigned a value of 2 according to las specifications (See the ASPRS documentation for the LAS file format).

Usage

lasground(las, algorithm, ...)

lasground_pmf(las, ws, th)

Arguments

las

a LAS object.

algorithm

character. The name of an algorithm. Currently "pmf" is supported (see related sections).

...

parameters for the algorithms. These depend on the algorithm used (see details of the algorithms).

ws

numeric. Sequence of windows sizes to be used in filtering ground returns. The values must be positive and in the units of the point cloud (usually meters, occasionally feet).

th

numeric. Sequence of threshold heights above the parameterized ground surface to be considered a ground return. The values must be positive and are in the units of the point cloud (usually meters, occasionally feet).

Value

Nothing. The original LAS object is updated by reference. In the 'Classification' column a value of 2 denotes 'ground' according to LAS specifications.

Progressive morphological filter (PMF)

This method is an implementation of the Zhang et al. (2003) algorithm (see reference). This is not a strict implementation of Zhang et al. This algorithm works at the point cloud level without any rasterization process. The morphological operator is applied on the point cloud not on a raster. Also Zhang et al. proposed some formulas (eq. 4, 5 and 7) to compute the sequence of windows sizes and thresholds. Here these parameters are free and specified by the user. The function util_makeZhangParam enables computation of the parameters according to the original paper.

References

Zhang, K., Chen, S. C., Whitman, D., Shyu, M. L., Yan, J., & Zhang, C. (2003). A progressive morphological filter for removing nonground measurements from airborne LIDAR data. IEEE Transactions on Geoscience and Remote Sensing, 41(4 PART I), 872<U+2013>882. http:#doi.org/10.1109/TGRS.2003.810682.

Examples

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

ws = seq(3,21, 3)
th = seq(0.1, 2, length.out = length(ws))

lasground(las, "pmf", ws, th)

plot(las, color = "Classification")
# }

Run the code above in your browser using DataCamp Workspace