## 3 Experiment and Analysis  
### Experiment on Coastline Extraction at the Cliff  
This study used C++ programming language combined with PCL program to realize the algorithm described in Sections 2.2-2.6, extract the boundary of data in Figure 1a, and obtain the boundary point cloud P border, as shown in Figure 6a. According to Equation (1), the junction points of the flat and cliff areas were determined, and the coordinates of the two junction points A and B were calculated as follows: x = 516,101.62, y = 3,372,355.8, and z = 71.07001 for A, and x = 516,319.88, y = 3,372,341.2, and z = 71.11 for B. The boundary point cloud of this section at the cliff was extracted according to points A and B, as shown in Figure 6b. The boundary point cloud of the cliff section was projected onto the water surface, and the elevation of each point was corrected to obtain the outermost coastline point cloud at the cliff. Finally, the outermost coastline point cloud at the cliff was projected onto the water surface, on the premise of keeping the x and y coordinates unchanged. The elevation was corrected to make it approximately equal to the sea surface elevation, so as to obtain a new point cloud dataset. Among the two junction points, A and B, the point closest to A in the x-direction and with the smallest elevation difference is point C, and the point closest to B in the x-direction, and with the smallest elevation difference is point D. The distance between A, B and C, D was calculated, and the average value of the two distances was determined to obtain the point cloud depth H of the cliff section. The calculated H value of these data was 217.532 m. Therefore, the boundary point cloud of the cliff section in Figure 6b was extracted as a point cloud with a depth value of H = 217.532 m. The point cloud obtained is shown in Figure 7a. Then, the x-coordinates of points A and B were used to intercept this point cloud in the given interval and obtain the point cloud P Cliff at the cliff, as shown in Figure 7b. Points in P Cliff were sorted according to the x-coordinate from small to large. Starting from the smallest x-coordinate, the cloud was divided into blocks at a certain interval. For our data, we set an interval of 5 m and set the minimum value of x as x min; that is, points whose x coordinates were between x_min and x_min + 5 formed a block, points with x coordinates between x_min + 5 and x_min + 10 formed another block, and so on. Thus, each point cloud was separated into five-unit blocks until the last point in P Cliff. For each point cloud dataset, its centroid coordinates were calculated according to Equation (4), which were pooled into a point cloud dataset and displayed in-plane rectangular coordinate system, as shown in Figure 8a. The point clouds of the centroid and cliff segment points are shown in Figure 8b. Figure 8c shows an enlarged view of the red box in Figure 8b. After obtaining the point cloud dataset of the centroid points, the coordinates of the side points of each block were calculated according to the centroid point coordinates and x-coordinates of the two boundaries of each block. The x-and y-coordinates of the side points were constant and projected onto the water surface. The elevation coordinates of each point were corrected according to the elevations of points A and B in the two sections, and the point cloud dataset of the side point projection coordinates was obtained. This point cloud dataset was recorded as P side, and its diagram is shown in Figure 9a. By combining the point cloud dataset of the outermost coastline at the cliff extracted at the beginning, the projection point cloud P side of side points, and the generation method of  
Figure 6: (**a**) Boundary point cloud dataset, P border; (**b**) Boundary point cloud of cliff section. the optimal coastline, the point cloud of the optimal coastline was calculated, as shown in Figure 9b.