Cloth Simulation Filter
- Author: O.Conrad (c) 2026
- Menu: Shapes | Point Clouds | Classification
Description
Airborne LiDAR ground/off-ground filtering method based on Cloth Simulation (CSF) as proposed by Zhang et al. (2016) and implemented by Jianbo Qi.
In 3D computer graphics cloth modeling is used for cloth simulation by fitting the shape of cloth as represented by a finite number of particles according to physical laws. The CSF is mainly controlled by four user-defined parameters (Zhang et al 2026):
- cloth grid resolution, which represents the horizontal distance between two neighboring particles
- time step, which controls the displacement of particles from gravity during each iteration
- rigidness, which controls the rigidness of the cloth
- a slope smoothing option, which indicates whether the handling of steep slopes is required during post-processing
In addition, two threshold parameters are used to aid the identification of ground points. The first is a distance threshold, that governs the final classification of the LiDAR points as either ground or off-ground based on the distances to the cloth grid. The second threshold parameter is the height difference, which is used during post-processing to determine whether a movable particle should be moved to the ground or not.
References
- CSF Github Repository
- Zhang, W. , Qi, J., Wan, P., Wang, H., Xie, D., Wang, X. & Yan, G. (2016): An Easy-to-Use Airborne LiDAR Data Filtering Method Based on Cloth Simulation. Remote Sens., vol. 8, no. 6, p. 501. doi:10.3390/rs8060501
Parameters
| | Name | Type | Identifier | Description | Constraints |
| Input | Points | point cloud, input | POINTS | - | - |
| Output | Ground Points | point cloud, output | GROUND | - | - |
| Off-Ground Points | point cloud, output | OFF_GROUND | - | - |
| Options | Field | table field | FIELD | - | - |
| Output | choice | OUTPUT | - | Available Choices:
[0] attribute field
[1] delete off-ground points
[2] ground points
[3] off-ground points
[4] ground and off-ground points
Default: 0 |
| Classification | choice | ASPRS_LAS | - | Available Choices:
[0] 0=off-ground, 1=ground
[1] ASPRS LAS Standard
Default: 1 |
| Cloth Grid Resolution | floating point number | cloth_resolution | - | Minimum: 0.000000
Default: 0.500000 |
| Time Step | floating point number | time_step | - | Minimum: 0.000000
Default: 0.650000 |
| Rigidness | integer number | rigidness | - | Minimum: 1
Default: 3 |
| Slope Smoothing | boolean | bSlopeSmooth | - | Default: 1 |
| Distance Threshold | floating point number | class_threshold | - | Minimum: 0.000000
Default: 0.500000 |
| Height Difference | floating point number | height_threshold | - | Minimum: 0.000000
Default: 0.300000 |
| Maximum Iterations | integer number | iterations | - | Minimum: 1
Default: 500 |
Command Line
Usage: saga_cmd pointcloud_tools 17 [-POINTS ] [-GROUND ] [-OFF_GROUND ] [-FIELD ] [-OUTPUT ] [-ASPRS_LAS ] [-cloth_resolution ] [-time_step ] [-rigidness ] [-bSlopeSmooth ] [-class_threshold ] [-height_threshold ] [-iterations ]
-POINTS: Points
point cloud, input
-GROUND: Ground Points
point cloud, output
-OFF_GROUND: Off-Ground Points
point cloud, output
-FIELD: Field
table field
-OUTPUT:
Output
choice
Available Choices:
[0] attribute field
[1] delete off-ground points
[2] ground points
[3] off-ground points
[4] ground and off-ground points
Default: 0
-ASPRS_LAS:
Classification
choice
Available Choices:
[0] 0=off-ground, 1=ground
[1] ASPRS LAS Standard
Default: 1
-cloth_resolution: Cloth Grid Resolution
floating point number
Minimum: 0.000000
Default: 0.500000
-time_step: Time Step
floating point number
Minimum: 0.000000
Default: 0.650000
-rigidness: Rigidness
integer number
Minimum: 1
Default: 3
-bSlopeSmooth: Slope Smoothing
boolean
Default: 1
-class_threshold: Distance Threshold
floating point number
Minimum: 0.000000
Default: 0.500000
-height_threshold: Height Difference
floating point number
Minimum: 0.000000
Default: 0.300000
-iterations: Maximum Iterations
integer number
Minimum: 1
Default: 500