## 3 Methodology
### Land/Water Points Labeling Based on LiDAR Point Features  
We used different methods and/or criteria to automatically define the threshold values and then apply them to each LiDAR point feature in order to label water and land points as follows. For \(NOR\), double returns were recorded from the water body in C3, while single returns were recorded in C1 or C2. Based on these characteristics, the water and land points were labeled.  
Previously, the water points were labeled from single wavelength LiDAR data based on \(HSD\)[18; 19] or \(PD\)[16; 17; 18] by applying manually selected threshold values. In this research, a combination of C3 with C1 or C2 was used to automatically label water points. The values of \(HV\), \(HSD\), and \(PD\) are higher for C3 than C1 or C2. Therefore, a LiDAR point was labeled as land or water as follows:  
\[\left\{\begin{array}{l}p_{i}\text{ is a water point, if }HV^{\text{C3}}_{p_{i}}>HV^{ \text{C1 or C2}}_{p_{i}}\\ p_{i}\text{ is a land point,}\qquad\text{otherwise}\end{array}\right. \tag{7}\]  
\[\left\{\begin{array}{l}p_{i}\text{ is a water point, if }HSD^{\text{C3}}_{p_{i}}>HSD^{\text{C1 or C2}}_{p_{i}}\\ p_{i}\text{ is a land point,}\qquad\text{otherwise}\end{array}\right. \tag{8}\]  
\[\left\{\begin{array}{l}p_{i}\text{ is a water point, if }PD^{\text{C3}}_{p_{i}}>PD^{ \text{C1 or C2}}_{p_{i}}\\ p_{i}\text{ is a land point,}\qquad\text{otherwise}\end{array}\right. \tag{9}\]  
\begin{table}
\begin{tabular}{c c c} \hline \hline
**Classes** & **Infrared Wavelengths** & **Visible Wavelengths** \\ \hline Built-up areas & single/multiple & single/multiple \\ Water & single & single/double \\ Vegetation & single/multiple & single/multiple \\ \hline \hline \end{tabular}
\end{table}
Table 2: Recorded returns from different classes at infrared and green wavelengths.  
The [PERSON] natural breaks optimization method was used to determine threshold values for _ICOV_ and _ID_. This optimization method has been designed to minimize within-class variances and maximize the between-classes variance [45]. Let any of the aforementioned LiDAR point feature values range from [\(a\),..., \(b\)], and the threshold values \(t\in[a\),..., \(b]\). The \(t\) was identified in order to separate land from water by maximizing the between-classes sum of the squared mean differences. This was done as follows:  
\[t=\text{argmax}_{a\leq t\leq b}\{\left(M_{1}-M\right)^{2}+\left(M_{2}-M\right) ^{2}\} \tag{10}\]  
where \(M\) is the mean of point feature values, \(M_{1}\) and \(M_{2}\) are the mean values of the first and second classes, respectively. \(M\) was first calculated. Then, the points were divided into two classes with ranges [\(a\),..., \(t\)] and [\(t\),..., \(b\)]. The mean values \(M_{1}\) and \(M_{2}\) were calculated. Finally, the optimal threshold value \(t\) was obtained from Equation (10).  
The tested data was assumed to consist of three main classes: water, vegetation, and built up areas. Therefore, two threshold values were identified using the Jenks optimization based on intensity. As the water points were assumed to have the lowest intensity in the scene, the first threshold value (\(I_{thresh}\)) was used to label water points. If the point's intensity is lower than the \(I_{thresh}\), the point was labeled as water; otherwise it was labeled as land. The \(I_{thresh}\) was used to calculate the _ID_ from Equation (6), and a percentage \(ID_{thresh}\) was used. For \(ICOV\), the LiDAR point clouds were separated into land and water using a threshold value (\(ICOV_{thresh}\)). This was done as follows:  
\[\left\{\begin{array}{l}p_{i}\text{ is a water point, if }ICOV_{p_{i}}^{\text{C1 or C2 or C3}}>ICOV_{thresh}\\ p_{i}\text{ is a land point, \ \ \ \ otherwise}\\ \end{array}\right. \tag{11}\]  
\[\left\{\begin{array}{l}p_{i}\text{ is a water point, if }ID_{p_{i}}^{\text{C1 or C2 or C3}}>ID_{thresh}\\ p_{i}\text{ is a land point, \ \ \ \ otherwise}\\ \end{array}\right. \tag{12}\]