## 2 Methods
### Cluster Analysis of Rock Mass Structural Planes  
Cluster analysis of rock mass structural planes involves grouping multiple structural planes to extract the orientation information of dominant structural planes. Referring to the Clustering by Fast Search and Find of Density Peaks (CFSFDP) method [31], the sine square value of the normal vectors of the structural planes is used as the metric for measuring the similarity between different structural planes. The decision value for each structural plane is calculated, and a decision graph is plotted to automatically identify the cluster centers and the number of clusters. The remaining non-central structural planes are assigned to clusters, and based on local density, the structural planes are divided into core and outlier planes. This method is suitable for large-scale cluster analysis of high and steep rock mass structural planes. The basic steps of the CFSFDP clustering algorithm are as follows:  
1. Calculate the sine square value of the angle between the normal vectors of different structural planes, which serves as the clustering distance \(d_{dist}(n_{i},n_{j})\);
2. Set the cutoff distance \(d_{c}\) and calculate the local density \(\rho_{i}\), which can effectively identify outlier structural planes;
3. Arrange the local density \(\rho_{i}\) in descending order and calculate the control distance \(\delta_{i}\);
4. Plot the decision graph using the local density \(\rho_{i}\) as the horizontal axis and the control distance \(\delta_{i}\) as the vertical axis and identify the cluster centers and the number of clusters;
5. Assign the remaining points (non-central points) to the nearest category with a higher density than the point, completing the assignment of all non-central points in one iteration;
6. Set the local density percentage, calculate the boundary density, and divide the structural planes into core and boundary points to identify outliers, thus improving clustering accuracy. \begin{table}
\begin{tabular}{c c c c c c c c} \hline \multirow{2}{*}{**Structural Plane ID**} & \multirow{2}{*}{**Total Points (Count)**} & \multirow{2}{*}{**Identified Points (Count)**} & \multirow{2}{*}{**Unidentified Points (Count)**} & \multicolumn{2}{c}{ \begin{tabular}{c} **Identification** \\ **Rate \(\omega\) (\%)** \\ \end{tabular}  } \\ \cline{3-8}  & & & **PCA** & **Hough** & **PCA** & **Hough** & **PCA** & **Hough** \\ \hline J1 & 28,559 & 27,218 & 28,459 & 1341 & 100 & 95.30 & 99.65 \\ J2 & 28,479 & 27,142 & 28,356 & 1337 & 123 & 95.31 & 99.57 \\ J3 & 25,292 & 23,889 & 25,070 & 1403 & 22  
In Section 2.1.3, the region growing algorithm based on Hough space transform normal vector differences is used to identify the structural planes. By combining Formula (1), the dominant orientation information of the structural planes can be further extracted, and the CFSFDP clustering algorithm is applied to perform cluster analysis of the structural planes to obtain the orientation of dominant structural planes. According to the spatial relationships of each face of the regular hexagonal pyramid, the six faces can be divided into three groups of structural planes with the same dip angle and dip directions differing by 180\({}^{\circ}\). If conventional metrics such as Euclidean distance or Manhattan distance are used as the similarity measure between two structural planes, they would be classified into different categories. However, by using the sine square value of the normal vector angle as the clustering distance, this issue can be effectively resolved. The clustering distance calculation results for some structural planes are shown in Figure 4a. Additionally, as shown in Figure 4c,d, the number of clusters for the structural planes of the regular hexagonal pyramid is three, with the cluster centers of the three groups of structural planes represented by red, yellow, and blue. The extracted orientation information of the structural planes was also imported into RecScience Dips 7.0 to generate the polar density map, and the grouping results are shown in Figure 4b.