## 2 Materials and Methods
### Tunnel Cross-Section Point Cloud Data Preprocessing
#### 2.2.2 Circumferential Seam Identification  
A custom segmentation algorithm was developed to divide the tunnel cross-section lining point cloud into individual shield rings, enabling detailed deformation analysis [31; 32]. This algorithm detects seam rings within a grayscale point cloud by scanning along the tunnel's length to identify grayscale value changes, with seams appearing in low-grayscale-value regions. Given that these seams are generally perpendicular to the X-axis, as reported by [PERSON] et al. [33], this method efficiently identifies ring boundaries by pinpointing areas with sharp grayscale decreases, as shown in Figure 2b.  
The segmentation begins by calculating the grayscale difference between adjacent columns across each row in the point cloud. This difference is represented as \(\Delta_{g}\)\(=g_{0}-g_{1}\) and is computed row by row. For each column, the algorithm counts occurrences where \(\Delta_{g}<0\), reflecting a decrease in grayscale values. The total counts for each column are stored in an array, \(t_{i}\), where higher values indicate regions with frequent negative differences, potentially corresponding to ring seams. A buffer zone of 1.5 mm is applied around each detected peak to minimize errors from nearby tunnel features, preventing the detection of multiple closely spaced peaks as separate seams. Tunnel linings are designed with a smooth, uniform surface, ensuring relatively consistent spacing between circumferential ring seams. However, manufacturing tolerances, surface irregularities, and shifts during construction can cause small deviations in seam positions. The 1.5 mm buffer zone was chosen to accommodate these typical variations, which arise from factors like slight imperfections in the casting process and small misalignments during installation. This threshold helps to filter out minor noise and localized irregularities in the point cloud data that might otherwise be interpreted as false seams. By applying this buffer, the algorithm ensures that only true circumferential seams are detected, reflecting the expected precision of modern tunnel construction and MLS scanning methods. After iterating through the data to detect all possible ring seams, a root mean square error filter is applied to remove potential gross errors. Consider \(x_{1},x_{2},\ldots\ldots,x_{n}\) as the column indices of the detected ring seams. The average spacing, \(a_{s}\), between consecutive seams is calculated through \(a_{s}=\frac{x_{1}+x_{2}+\ldots+x_{n}}{N}\).  
The root mean square error, denoted as \(r_{m}\), is then computed as \(r_{m}=\sqrt{\frac{1}{N}\sum\limits_{i=1}^{n}{(xi-a_{s})^{2}}}\), where \(x_{i}\) represents the position (column index) of each detected ring seam, \(a_{s}\) is the mean interval between detected ring seams, and \(N\) is the number of detected intervals. Any seam with a deviation greater than \(r_{m}\) from the average spacing is excluded, as it likely represents a gross error. This process refines the set of detected circumferential seams, ensuring that only reliable detections are retained. Segmentation of the point cloud by ring seams facilitates further tasks, such as transverse seam detection and shield ring separation for tunnel point cloud displacement analysis [34].