lidR (version 2.0.0)

csf: Ground Segmentation Algorithm


This function is made to be used in lasground. It implements an algorithm for segmentation of ground points base on a Cloth Simulation Filter. This method is a strict implementation of the CSF algorithm made by Zhang et al. (2016) (see references) that relies on the authors' original source code written and exposed to R via the the RCSF package.


csf(sloop_smooth = FALSE, class_threshold = 0.5,
  cloth_resolution = 0.5, rigidness = 1L, iterations = 500L,
  time_step = 0.65)



logical. When steep slopes exist, set this parameter to TRUE to reduce errors during post-processing.


scalar. The distance to the simulated cloth to classify a point cloud into ground and non-ground. The default is 0.5.


scalar. The distance between particles in the cloth. This is usually set to the average distance of the points in the point cloud. The default value is 0.5.


integer. The rigidness of the cloth. 1 stands for very soft (to fit rugged terrain), 2 stands for medium, and 3 stands for hard cloth (for flat terrain). The default is 1.


integer. Maximum iterations for simulating cloth. The default value is 500. Usually, there is no need to change this value.


scalar. Time step when simulating the cloth under gravity. The default value is 0.65. Usually, there is no need to change this value. It is suitable for most cases.


W. Zhang, J. Qi*, P. Wan, H. Wang, D. Xie, X. Wang, and G. Yan, <U+201C>An Easy-to-Use Airborne LiDAR Data Filtering Method Based on Cloth Simulation,<U+201D> Remote Sens., vol. 8, no. 6, p. 501, 2016. (

See Also

Other ground segmentation algorithms: pmf


Run this code
LASfile <- system.file("extdata", "Topography.laz", package="lidR")
las <- readLAS(LASfile, select = "xyzrn")

las <- lasground(las, csf())
plot(las, color = "Classification")
# }

Run the code above in your browser using DataCamp Workspace