Filtrage des points sol dans un nuage de points

Différentes approches et outils peuvent être utilisés pour filtrer les points appartenant au sol dans un nuage de points et dont pour créer un MNT

PDAL

PDAL outil Open-source, on pourra voir ce Workshop ou différents exemples sur le site officiel

LASTools

avec LAStools, outil LASGround (payant). C’est la référence en terme de traitements Lidar.

CloudCompare

idées en vrac:

  • utiliser l’algo Canupo (assez difficile à paramétrer).
  • si on dispose d’un MNT Lidar, on peut calculer la distance à cette surface et filtrer grâce à un seuil sur cette distance.
  • On peut aussi utiliser des seuils min et max si la topo est assez plane et qu’on a une idée de la hauteur de la végétation

Agisoft Metashape

La nouvelle version Metashape propose différentes approches pour classifier un nuage de points, voir cet article https://agisoft.freshdesk.com/support/solutions/articles/31000148866-dense-cloud-classification

C’est assez basique comme méthode, mais ça peut aider à faire un pré-traitement.

Divers

post de blog qui référence plusieurs méthodes ici

et méthode et tuto bien écrit avec Grass ici, notamment utilisant l’algorithm MCC

Points2Grid

Points2Grid : A Local Gridding Method for DEM Generation from Lidar Point Cloud Data

site

Points2Grid is used as the default DEM generation algorithm for the OpenTopography point cloud processing system

here is how-to install and use.

Install

sudo apt-get update

sudo apt-get install build-essential gdal-bin libcurl4-gnutls-dev libbz2-dev libboost-all-dev  

  • get the source code : https://github.com/CRREL/points2grid/ . Use either git clone, either download ZIP archive
  • go into the  points2grid directory
  • follow the steps indicated in INSTALL.md, which basically were for me:


sudo mkdir build

cd build

sudo cmake ..        #check no error message in this step and followings
sudo make
sudo make install

  • add to file ~/.bashrc

export PATH=$PATH:/usr/local/bin
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

  • If no error message, you’re done. Test it by running inside the build directory the command:

./points2grid --help

This shoud write down the full help message

Use

  • Use las point cloud as input, if you have LAZ convert it with for example with Lastools:
    LAStools\bin\las2las -i .\20200311_MA_GCP12.laz -o .\20200311_MA_GCP12.las
  • Gridding example command :

./points2grid -i  /path_to_input/20200311_MA_GCP12.las  -o /path_to_output -r 0.0707 --input_format las --all --resolution 0.1 --fill

    • options :
      -r : search radius, which usually is calculated as : resolution*sqrt(2)/2
      –fill : fill empty cells using a 3×3 window
      –all : all the possible calculation are made (see below)

as output, one can get, Oh Miracle!, the following calculation in asc or grid format :

–min                             the Zmin values are stored
–max                             the Zmax values are stored
–mean                            the Zmean values are stored
–idw                             the Zidw values are stored
–std                             the Zstd values are stored
–den                             the density values are stored
–all                             all the values are stored (default)

libLAS

Librairie open-source de traitement Lidar

Cette librairie est maintenant en hibernation et remplacée par PDAL.

Quelques exemples de fonctions :

  • Obtenir de l’information sur un nuage de points : lasinfo input.las
  • Convertir un nuage dans un autre format en découpant sur une zone d’intéret : las2las input.las --output output.las --extent "63025000 483450000 63050000 483475000"

Site de référence : https://liblas.org/index.html

Utilitaires : https://liblas.org/utilities/index.html?highlight=utilities

PDAL

PDAL – Point Data Abstraction Library

Librairie open-source et utilitaires pour le traitement des données Lidar (LAS)

Pour obtenir des informations sur un nuage de points:
$ pdal info input.las

Quelques ressources utiles pour PDAL:

gdal_translate

Avec l’utilitaire gdal_translate, les rasters peuvent être convertis dans différents formats, et certaines opérations comme le découpage, le rééchantillonnage, et la mise à l’échelle peuvent être réalisées durant le traitement.

Exemple : découpage d’un MNT SRTM sur une zone géographique, mise à “nodata” des valeurs -32768 et affectation du système de coordonnées WGS84

gdal_translate -a_nodata -32768 -a_srs EPSG:4326 -projwin 23.4 35.8 26.5 34.7 srtm_global.tif srtm_crete.tif

Aide de gdal_translate