CSF utilizes cloth simulation process to extract DTM. The principle is illustrated in the following figure. The original point cloud is firstly inverted, and then a rigid cloth is used to cover the inverted surface. By analyzing the interactions between the cloth nodes and the corresponding LIDAR points, the locations of the cloth nodes are determined to acquire an approximation of the ground surface. After that, by comparing the distance between original point cloud and the final shape of the simulated cloth, the point cloud can be classified to ground and non-ground points.
Overview of the cloth simulation algorithm
To use CSF, just download CSF.zip, modify the configuration file (params.cfg) and then run the execute file (CSF.exe). An output file containing particles of the simulated cloth will be generated. If you want to classify point cloud into ground and non-ground points, you can use Cloudcompare to achieve this goal.
All the parameters are listed in the configuration file “params.cfg”. There are 10 parameters, but most of them can be used with default values.
Usually, the first three should be modified by user.
terr_pointClouds_filepath=sample.txt: path to the input point cloud file (the first three column should be X Y Z).
rigidness=3: greater the value is, harder the cloth will be (usually this value can be 1,2 or 3).
slop_smooth=0: whether the post-processing is needed or not. This is used to handle the steep slopes. (If steep slopes, such as river bank, exists, this value should be set as 1; If the terrain is flat, then this value can be set as 0).
Other parameters are as follows:
cloth_resolution=0.5: the horizon space between two particles (i.e., the resolution of cloth grid). This parameters should be smaller than the point spacing of original lidar point cloud. Usually, this can be set as 1/3 or point spacing.
Iterations=500: the maximum iteration times of cloth simulation. 500 is enough for most of situations.
time_step=0.65: time step for each iteration. Smaller the value is, more accurate the result may be, but more computing-time is needed. 0.65 is applicable to most of situations.
terr_points_shiftx=0.00 : apply offset (x) to the original point cloud, this is not required for most of situations.
terr_points_shifty=0.00 : apply offset (y) to the original point cloud, this is not required for most of situations.
terr_points_shiftz=0.00 : apply offset (z) to the original point cloud, this is not required for most of situations.
class_threshold=0.5: a threshold used to classify the original point cloud into ground and non-ground parts based on the distances between original point cloud and the simulated particles of cloth. 0.5 is also adapted to most of situations.
If the offsets are applied to the original point cloud file, a shifted point cloud file named terr_nodes.txt will be generated. If no offset is applied, this file is identical to the input point cloud file.
|