# CBM: An IoT Enabled LiDAR Sensor for In-Field Crop Height and Biomass Measurements
## 2 Materials and Methods
### Scanning Geometry and Crop Height  
The CBM sensor was mounted on the mobile platform at the height of 1.8 m (Figure 5). The LiDAR scans were collected with a horizontal FoV of \(\Phi\) = 48\({}^{\circ}\) in the sensor's trajectory across-track direction. In this configuration, each of the 8 stacked detector elements provided a horizontal FoV of \(\theta\) = 6\({}^{\circ}\) covering the plots along the widthwise direction, AB (Figure 5b,c). The raw range measurements for each detector (r) were recorded by the CBM in.csv format, which was converted into crop height measurements (\(h\)) using the trigonometric calculations in Equations (1)-(3):  
\[h\ =\ \mathrm{D}\ -\ \mathrm{r}\cdot\cos(\beta) \tag{1}\]  
\[\beta\ =(\theta/2)\ +\ \alpha \tag{2}\]  
\[\theta\ =\ \Phi/n \tag{3}\]  
\[\mathrm{w}\ =\ \mathrm{r}\cdot\cos\beta\{\tan\alpha-\tan(\alpha+\theta)\} \tag{4}\]  
where, D is the mounting height of the sensor, r is the range measurements that were collected for a detector, \(\alpha\) and \(\beta\) are the orientation angles for a detector element from the  
Figure 4: Field experimental and data collection. (**a**) Top view of the field plots, the CropBioMass (CBM) sensor scanned the plots in the trajectory that is specified in red, (**b**) the mobile vehicle mount for the CBM sensor that was used in the experiment and its traverse direction, and (**c**) a close-up view of the CBM sensor hardware highlighting the LiDAR, GNSS receiver, and the power supply units. vertical axis (SH) to the detector's FoV edge and center, respectively, \(\theta\) is the width of each detector element, \(\Phi\) is the total FoV, \(n\) is the number of detector elements, and \(\mathrm{w}\) is the width that was traced by a detector with a FoV of \(\theta\) at an angle of \(\beta\) from the vertical axis on the height (\(h\)). In programming terminologies, D, \(\theta\), and \(\Phi\) are constant parameters, whereas, the variables r, \(\alpha\), \(\beta\), \(h\), and \(\mathrm{w}\) are packaged within equivalent array vectors \(\mathbf{R}\), \(\mathbf{A}\), \(\mathbf{B}\), \(\mathbf{H}\), and \(\mathbf{W}\) respectively. Therefore, for the case of height (\(h\)), the array vector \(\mathbf{H}=[h_{1},\,h_{2},\,\dots\,\,h_{n}]\). Signal Processing for Plot Segemation, Extraction of Plot Equivalent Mean Crop Height, and BioVolume  
The LiDAR scan was collected continuously over the plots along the transects (Figure 4a). The LiDAR scanner picks up spurious or noisy disturbances during the data acquisition due to the undulating ground surface. A Savitzky-Golay filter removed most noisy disturbances due to ground undulation. However, certain disturbances due to the ground undulation remained in the form of false peaks near the edges of the plots (Figure 6a). To further remove these, firstly, the ground surface was classified and masked-off using a vertical threshold (\(\mathrm{V_{th}}<5\) cm) criterion. After that, a horizontal (\(\mathrm{H_{th}}\)) threshold criterion was used to remove such falsely recorded peaks or 'continuous peak segments' under the lengthwise scan size of 50 samples (\(\mathrm{H_{th}}<50\) samples). As the scan size or scan profile for the 5 m long plots was significantly greater than the size of false peaks, the \(\mathrm{H_{th}}\) forms a simple and effective basis to eliminate any slight undulations in the signal profile. Hereafter, the plot profiles were automatically segmented along the direction of the scan (Figure 6b). Figure 5: Scanning geometry of the CropBioMass (CBM) sensor with respect to the plots. (**a**) A frontal view of the push-type mobile vehicle with the CBM mounted on it, (**b**) the geometries of each of the eight individual detectors that were stacked inside the CBM sensor with the respective field-of-views (FoVs), and (**c**) trigonometric labeling of the scanning geometry for deriving the height using measure LiDAR ranges.