QGis pour LIDAR:coloriser à partir d’une image avec LAStools

Dans cet article vous trouverez comment transférer les couleurs (coloriser) d’une image ou une orthophoto vers les points d’un nuage LIDAR avec la boîte à outils LAStools de QGis permettant un rendu du LIDAR comparable à la photo. Nous allons profiter pour voir comment créer des fichiers .bat avec les traitements LAStools pour traiter un ensemble de fichiers.

1- Les données LIDAR dans QGis 3.32

2- Télécharger les données LIDAR HD de l’IGN et les charger dans QGis

3-Les outils pour les données LIDAR dans QGis 3.32

4-Coloriser un nuage de points à partir d’une orthophoto avec CloudCompare

5-Coloriser un nuage de points à partir d’une orthophoto avec LAStools

Retrouvez cette vidéo ainsi que beaucoup d’autres sur notre chaîne Youtube : https://www.youtube.com/@sigterritoires

Les traitements LAStools

La boîte à outils LASTOOLS se compose de trois types d’outils:

bloc d'outil lastools pour Qgis

  1. file –Les outils de base qui prennent un fichier en entrée du traitement.
  2. folder – Des outils similaires mais qui prennent un répertoire en entrée de traitement. Le traitement s’effectuera sur tous les fichiers LAS ou LAZ présents dans ce répertoire. Le nom du traitement se termine par Pro.
  3. pipelines – des outils qui enchaînent automatiquement une série des outils précédents.

Dans le grouper folder vous trouvez seulement une partie des traitements présents dans le groupe file. Mais vous pouvez, avec peu de travail, créer un fichier de type .bat pour exécuter une commande de type file sur un répertoire complet. Nous verrons ici la procédure avec l’outil LAScolor qui n’est présent que dans le groupe file.

LAScolor: coloriser un nuage de points

Nous allons prendre comme exemple un groupe de quatre nuages de points LIDAR HD de l’IGN non classés et l’image de la BDOrtho correspondante.

nuages lidar et orthophoto en entrée de lascolor dans qgis

LAStools peut être exécuté en ligne de commande, en dehors de QGis. Au lieu de rechercher les syntaxes nécessaires pour la ligne de commande, nous pouvons exécuter l’outil dans QGis et récupérer dans le journal d’exécution la ligne de commande générée par le plugin. Avec quelques modifications, nous aurons le fichier .bat que nous souhaitons.

Exécution de l’outil par le plugin de QGis

Nous exécutons l’outil LAScolor de la boîte de traitements LAStools de QGis:

boîte à outils lastools dans qgis 3.32

Pour l’outil nous sélectionnons un des nuages des points, l’orthophoto et nous donnons un nom quelconque en sortie. Nous ne garderons pas le résultat du traitement puisque nous allons le réaliser avec le fichier .bat pour l’ensemble de nuages du répertoire.

dialogue lascolor

Les outils LAStools sont fournis en deux versions : 32 et 64 bits. Par défaut, les dialogues utilisent la version 32 bits de l’outil. Le problème est que ces versions sont limitées à la gestion de 4Go de mémoire et que, vu le nombre de points présents dans les nuages LIDAR, cette limite est très souvent franchie. Il vaut mieux, pour éviter les messages d’erreur d’allocation de mémoire, cocher systématiquement la case version 64 bits.

Quand vous cliquez Exécuter, la fenêtre affiche l’onglet Journal:

journal du traitement lascolor

A la suite de « LAStools command line » vous trouverez la ligne de commande que nous recherchons.

C:/lidar/cantal/LAStools\bin\lascolor -cpu64 -i "C:\lidar\coloriser\input\semis1.laz" -image "C:\lidar\coloriser\ortho.tif" -o "C:/lidar/coloriser/output/semis1.laz"

Dans cet exemple:

C:/lidar/cantal/LAStools\bin\lascolor est l’exécutable de l’outil

-cpu64 correspond à la demande d’exécuter la version 64 bits de l’outil

-i « C:\lidar\coloriser\input\semis1.laz » est le nuage en entrée

-image « C:\lidar\coloriser\ortho.tif » est l’image à utiliser pour coloriser le nuage de points

-o « C:/lidar/coloriser/output/semis1.laz » est le nuage colorisé résultant

Nous ouvrons un fichier texte vide en édition pour construire notre petit programme batch.

La première ligne de ce fichier sera la ligne qui crée la boucle de traitement pour tous les fichiers d’un répertoire.

Cette ligne sera

for /r répertoire_à_traiter %%i in (extension à retenir) do (

En langage clair on donnera comme contenu à la variable %%i le nom complet (chemin compris) de chaque fichier ayant une certain extension à l’intérieur d’un répertoire donné.

Dans notre exemple cette ligne sera:

for /r "C:\lidar\coloriser\input" %%i in (*.laz) do (

Si vos nuages de points sont au format LAS il faudra changer *.laz par *.las

La deuxième ligne sera la commande qui exécute LAScolor, où nous allons modifier l’entrée et la sortie.

Pour le fichier en entrée de la commande nous remplaçons -i « C:\lidar\coloriser\input\semis1.laz » par la variable de la boucle for : -i %%i

Pour le fichier en sortie, il faut utiliser une variable pas très connue. En effet, nous ne pouvons pas utiliser la variable %%i telle quelle parce qu’elle contient le chemin du fichier en entrée et que nous voulons créer le fichier en sortie dans un autre répertoire. Nous devons donc récupérer le nom du fichier en entrée sans le chemin. Pour cela on utilise la variable %%~ni. Le ~n récupère le nom de %%i sans le chemin ni l’extension.

Notre sortie sera donc:

-o C:/lidar/coloriser/output/%%~ni.laz

On doit ajouter à la variable le chemin du répertoire en sortie ainsi que l’extension que nous souhaitons.

Le résultat final de notre fichier .bat sera alors:

for /r "C:\lidar\coloriser\input" %%i in (*.laz) do (
C:/lidar/cantal/LAStools\bin\lascolor -cpu64 
-i %%i 
-image "C:\lidar\coloriser\ortho.tif" 
-o C:/lidar/coloriser/output/%%~ni.laz
)

Pour l’exécuter, ouvrez une fenêtre du terminal (fenêtre de commande), allez dans le répertoire du fichier bat que vous venez de créer et tapez .\nom_du_fichier.bat (1)

Vous verrez le traitement de vos nuages de points se réaliser (2):

fenêtre de commandes et exécution du fichier .bat

Vous voyez sur la figure le message en raison de l’absence de licence. Au dessus de 3 millions de points, il y aura des petites distorsions et quelques attributs en moins.

Le résultat final des quatre nouveaux nuages de points peut maintenant se charger dans la fenêtre de QGis:

résultat de coloriser nuages lidar

Si cet article vous a intéressé et que vous pensez qu'il pourrait bénéficier à d'autres personnes, n'hésitez pas à le partager sur vos réseaux sociaux en utilisant les boutons ci-dessous. Votre partage est apprécié !

2 thoughts on “QGis pour LIDAR:coloriser à partir d’une image avec LAStools

  1. Merci pour l’ensemble de vos tutos ! Je suis en pleine exploration pour exploiter efficacement le Lidar et vos informations me sont précieuses !
    Cordialement
    Bonne continuation

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *