Machine Learning (ML) Model for Automatic Classification of Water Points in 3D LiDAR Point Clouds
Abstract
AbstractThis repository provides a machine learning model developed at CNRS – M2C (UMR 6143) for the automatic classification of water surface points in 3D airborne LiDAR point clouds. The model is designed to identify and extract LiDAR returns corresponding to inland and coastal water bodies, supporting scientific research in hydrology, coastal dynamics, and surface water monitoring.Key Features:4-class supervised classification: Distinguishes between non-water/non-ground (class 1), ground (class 2), low-intensity water (class 9), and high-intensity water (class 10).High performance: Achieves 94% precision, 91% recall, and 92% F1-score for water detection (classes 9 and 10 combined).Open-source framework: Developed using cLASpy_T (Python), ensuring reproducibility and modularity.The model leverages geometric, and radiometric features computed from local spatial neighborhoods, making it particularly suited for smooth and horizontally coherent surfaces like water bodies.Model DescriptionThe model performs supervised classification to distinguish water surface points (classes 9 and 10) from non-water points (classes 1 and 2) in airborne LiDAR point clouds. It relies on local features (geometric, and radiometric) computed from spatial neighborhoods.Specificities:4 output classes:Class 1: Non-water/non-ground (e.g., vegetation, buildings).Class 2: Ground.Class 9: Low-intensity water.Class 10: High-intensity water.Probabilistic outputs: Predictions include probabilities for each class, enabling uncertainty analysis.Input Data3D airborne LiDAR point clouds (LAS/LAZ formats).Local features: Intensity, Scan Angle Rank.Output DataPredicted point cloud (4 classes).Probabilistic predictions for classes 1, 2, 9, and 10.Feature EngineeringThe following features must be pre-computed for each point using custom Python scripts (or tools like CloudCompare):Surface variation (radii: 5 m, 15 m).Verticality (radius: 15 m).Intensity contrast (radii: 3 m, 4 m, 5 m, 10 m, 15 m).Intensity mean (radii: 5 m, 10 m, 15 m).These features are optimized for detecting smooth, horizontally coherent surfaces such as water bodies.Software DependencyThe model was developed using cLASpy_T, an open-source Python software for LiDAR point cloud processing and classification:https://www.theia-land.fr/blog/product/claspy_t-outils-de-classification-de-fichiers-las-avec-python-et-algorithmes-dapprentissage-automatique/Machine Learning MethodAlgorithm: Gradient Boosting.Learning type: Supervised classification.Objective: Water vs. non-water discrimination.Training strategy: Stratified sampling and cross-validation.Implementation: cLASpy_T software.PerformanceMetrics evaluated on independent test datasets:Precision (water class): 94%.Recall (water class): 91%.F1-score (water class): 92%.Note: Metrics are calculated by combining classes 9 and 10 (water), reflecting the model’s ability to reliably detect water surfaces.
Fields of Study & Subjects
Remote Sensing and LiDAR Applications
Remote-Sensing Image Classification
Automated Road and Building Extraction
Publication details
- Journal / source
- Figshare
- Publication date
- 1 January 2026
- Language
- EN