# pmf

##### Ground Segmentation Algorithm

This function is made to be used in lasground. It implements an algorithm for segmentation of ground points based on a progressive morphological filter. This method is an implementation of the Zhang et al. (2003) algorithm (see reference). Note that 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.

##### Usage

`pmf(ws, th)`

##### Arguments

- ws
numeric. Sequence of windows sizes to be used in filtering ground returns. The values must be positive and in the same units as 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 in the same units as the point cloud.

##### 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.

##### See Also

Other ground segmentation algorithms: `csf`

##### Examples

```
# NOT RUN {
LASfile <- system.file("extdata", "Topography.laz", package="lidR")
las <- readLAS(LASfile, select = "xyzrn")
ws <- seq(3,12, 3)
th <- seq(0.1, 1.5, length.out = length(ws))
las <- lasground(las, pmf(ws, th))
plot(las, color = "Classification")
# }
```

*Documentation reproduced from package lidR, version 2.0.0, License: GPL-3*