diff --git a/Readme.md b/Readme.md index 6890319..e275710 100644 --- a/Readme.md +++ b/Readme.md @@ -1,13 +1,11 @@ # LidarTo3DPrint Procédure de conversion d'un fichier de points LIDAR en une impression 3D - # Contexte Tenter de pouvoir observer et caractériser le relief d'un territoire au moyen des relevés 3D réalisés par l'état. Le territoire français est en cours de cartographie au Lidar avec une résolution de 10 points par mètre carré : [https://geoservices.ign.fr/lidarhd](https://geoservices.ign.fr/lidarhd) Ces données seront utilisées et transformées dans ce projet en une surface imprimable en 3D. - # Réalisation Les grandes étapes de la réalisation sont : @@ -24,7 +22,7 @@ Se rendre sur la page web de téléchargement des données brutes : [https://ca Sélectionner une zone et télécharger les données, ici nous sélectionnons une zone couvrant le centre ville de Plomelin -![](_docAssets/SelectionDonnees.png) +![](_docAssets/SelectionDonnees.jpg) ## Rassembler les points Afin de traiter les données LIDAR, nous allons utiliser l'outil QGIS et LAStools. Ces outils vont permettre : @@ -34,39 +32,39 @@ Afin de traiter les données LIDAR, nous allons utiliser l'outil QGIS et LAStool Ouvrir QGIS et installer le plugin LAStools depuis QGIS, cela va intégrer les outils dans l'IHM de QGIS mais les executables sont à télécharger à part. Pour installer les outils dans QGIS commencer par dérouler le menu Plugins puis cliquer sur Manager et Installer des Plugins -![](_docAssets/InstallPlugin.png) +![](_docAssets/InstallPlugin.jpg) Trouver le paquet LAStools et cliquer sur installer, cela va intégrer les outils dans QGIS. -![](_docAssets/InstallPluginNext.png) +![](_docAssets/InstallPluginNext.jpg) Se rendre sur [la page de LASTools](https://rapidlasso.de/downloads/) et télécharger les outils compilés pour votre OS. -![](_docAssets/DownloadLASToolsBinaries.png) +![](_docAssets/DownloadLASToolsBinaries.jpg) Décompresser le zip et copier le fichier LASTools dans le disque C:\LAStools puis redémarrer QGIS -![](_docAssets/DecompressLASToolsBinary.png) +![](_docAssets/DecompressLASToolsBinary.jpg) Maintenant que les outils de traitement LIDAR sont installés on peut Importer un fichier LIDAR (ou plusieurs). Les fichiers sont importés comme des "Couches" dans le projet. -![](_docAssets/ImportLIDARdata.png) +![](_docAssets/ImportLIDARdata.jpg) Dans QGIS, il est possible d’avoir un aperçu des fichiers en ouvrant une nouvelle vue 3D avec le menu View => 3D Map View => New 3D Map View -![](_docAssets/New3DView.png) +![](_docAssets/New3DView.jpg) Sur ce zoom on peut apercevoir un château d’eau ainsi que des maisons et de la végétation. Les couleurs affichées dépendent des catégories. En effet lors du post-traitement effectué sur ces données LIDAR, un algorithme de catégorisation va identifier parmi les points : le sol, les bâtiments, la végétation, les lignes électriques... ou alors si rien n'est identifié placer les points dans Uncategorized. -![](_docAssets/OverviewIn3D.png) +![](_docAssets/OverviewIn3D.jpg) Pour ne pas imprimer tout le village, nous allons sélectionner une plus petite zone. Pour cela commencer par créer une nouvelle couche temporaire, cette couche va servir à dessiner un polygone, qui sera utilisé pour découper le fichier de points. -![](_docAssets/TempLayerForExtraction.png) +![](_docAssets/TempLayerForExtraction.jpg) Sélectionner une géométrie de type polygon (pour faire la sélection) et choisir la même géodésique que celle du nuage de points (vérifier qu'il n'y ait pas de logo de type point d'exclamation à côté du menu déroulant). -![](_docAssets/SelectionPolygon.png) +![](_docAssets/SelectionPolygon.jpg) Une nouvelle couche apparaît maintenant en bas a gauche, nous allons y dessiner un polygone qui contiendra uniquement les points à garder. @@ -74,37 +72,37 @@ Cliquer sur "Add Polygon" pour ajouter un polygone et sélectionner une région Utiliser l’outil d’ajout de polygone (click gauche pour les points du polygone, click droit pour terminer) -![](_docAssets/DrawPolygon.png) +![](_docAssets/DrawPolygon.jpg) Chercher l’outil de processing « Point Cloud Clip » -![](_docAssets/ProcessingPointSelection.png) +![](_docAssets/ProcessingPointSelection.jpg) Sélectionner la couche de points source ainsi que le polygone -![](_docAssets/ProcessingPointSelectionFinal.png) +![](_docAssets/ProcessingPointSelectionFinal.jpg) Cela va sélectionner les points contenus dans le polygone et créer une nouvelle couche. Ne cocher que la couche « Clipped » pour retenir les points sélectionnés. -![](_docAssets/Small3DRepresentation.png) +![](_docAssets/Small3DRepresentation.jpg) Si au contraire on souhaite assembler plusieurs fichiers de points pour représenter une grande surface, cela reste possible avec la fonction Point cloud data management ==> Merge -![](_docAssets/MergeMultipleLIDAR.png) +![](_docAssets/MergeMultipleLIDAR.jpg) ### Désélectionner les catégories non souhaitées Il est possible maintenant d’utiliser les classes de ces données lidar pour retirer ce que l’on ne va pas imprimer. Ici je ne garde que le sol et les bâtiments -![](_docAssets/OverheadRepresentation.png) +![](_docAssets/OverheadRepresentation.jpg) En cochant / décochant des cases, il n’est possible que d’afficher ou de masquer des points. Cependant pour les étapes suivantes nous souhaitons les retirer du jeu de données avant de transférer le fichier dans un autre logiciel Faire un click droit sur la couche et cliquer sur Filter… créer un filtre en ne gardant que les classifications 2 et 6 -![](_docAssets/FilterOutVegetation.png) +![](_docAssets/FilterOutVegetation.jpg) Faire un click droit sur la couche, Export => Save As et enregistrer dans un fichier LAS -![](_docAssets/ExportPointsSet.png) +![](_docAssets/ExportPointsSet.jpg) Vous n’aurez que les points associés aux catégories filtrées dans ce fichier @@ -115,7 +113,7 @@ Afin de combler les trous un utilisateur à créer un programme en C# permettant L'idée est de l'utiliser afin de combler les vides, par exemple ici à gauche, le nuage de points originel, et à droite le nuage "corrigé" -![](_docAssets/RepairPointFile.png) +![](_docAssets/RepairPointFile.jpg) On peut voir que sur le nuage originel, pris par avion, certaines facades de bâtiments sont vides de points. Cela rend la reconstruction compliquée... @@ -155,25 +153,25 @@ Maintenant que le nuage de points est corrigé, on cherche à en créer la surfa En regardant en haut a droite on peut observer que nous avons beaucoup de points mais aucune face. Il faut reconstruire les faces d’après tous les points en utilisant le bon filtre et potentiellement des corrections manuelles. -![](_docAssets/NuageDePoints.png) +![](_docAssets/NuageDePoints.jpg) Ces points ont été relevés par avion et ont un certain bruit de mesure. Partir de ce nuage pour reconstruire le modèle va créer des incohérences étranges dues a une mauvaise interprétation des normales (qu'est ce qui est "dedans" et ce qui est "dehors"). Sur l'image ci-dessous une partie du toit du building de gauche à été inversée comme "dehors" -![](_docAssets/Incoherences.png) +![](_docAssets/Incoherences.jpg) Pour réduire ces effets, on peut moyenner les points. Cela va induire une perte de "résolution" et de détails sur le modèle, mais permet d'éviter les formes incohérentes. Pour cela on va simplifier le nuage de points en regroupant les points, je trouve que de garder 0,1% sur ces relevés donne de bons résultats. Avec 0,09% j'ai toujours des problèmes donc 0,1 est peut être le minimum pour ne pas avoir de défauts sans tout autant perdre trop de résolution. -![](_docAssets/ClusteringPoints.png) +![](_docAssets/ClusteringPoints.jpg) Il faut ensuite lancer une estimation des normales. Cet algorithmes va tenter d'identifier ce qui est dedans et ce qui est dehors, ainsi que le vecteur orthogonal aux points. Je trouve qu'une valeur qui fonctionne bien est d'utiliser une quantité de 40 points par normale. -![](_docAssets/CalculateNormals.png) +![](_docAssets/CalculateNormals.jpg) Finalement on peut utiliser la reconstruction de Poisson pour identifier la surface qui correspond le mieux a tous ces points, toutes ces normales et leur orientation. Ici je trouve qu'une valeu qui fonctionne bien est d'utiliser les paramètres suivants: -![](_docAssets/PoissonSurfaceParams.png) +![](_docAssets/PoissonSurfaceParams.jpg) Enregistrer maintenant la surface au format STL en utilisant le menu File => Export As et l’appeler "mesh.stl" ## Découper la surface @@ -208,4 +206,4 @@ Cela va créer un modèle STL importable dans Bambu Studio Ouvrir Bambu Studio et importer le STL, le redimensionner et lancer l'impression. -![](_docAssets/PlomelinCentreBambuStudio.png) +![](_docAssets/PlomelinCentreBambuStudio.jpg) diff --git a/_docAssets/CalculateNormals 1.jpg b/_docAssets/CalculateNormals 1.jpg new file mode 100644 index 0000000..8cb948f Binary files /dev/null and b/_docAssets/CalculateNormals 1.jpg differ diff --git a/_docAssets/CalculateNormals 1.png b/_docAssets/CalculateNormals 1.png deleted file mode 100644 index 650e864..0000000 Binary files a/_docAssets/CalculateNormals 1.png and /dev/null differ diff --git a/_docAssets/CalculateNormals.jpg b/_docAssets/CalculateNormals.jpg new file mode 100644 index 0000000..792122d Binary files /dev/null and b/_docAssets/CalculateNormals.jpg differ diff --git a/_docAssets/CalculateNormals.png b/_docAssets/CalculateNormals.png deleted file mode 100644 index 274b639..0000000 Binary files a/_docAssets/CalculateNormals.png and /dev/null differ diff --git a/_docAssets/ClusteringPoints.jpg b/_docAssets/ClusteringPoints.jpg new file mode 100644 index 0000000..00b3989 Binary files /dev/null and b/_docAssets/ClusteringPoints.jpg differ diff --git a/_docAssets/ClusteringPoints.png b/_docAssets/ClusteringPoints.png deleted file mode 100644 index f22b1bf..0000000 Binary files a/_docAssets/ClusteringPoints.png and /dev/null differ diff --git a/_docAssets/DecompressLASToolsBinary.jpg b/_docAssets/DecompressLASToolsBinary.jpg new file mode 100644 index 0000000..285f27b Binary files /dev/null and b/_docAssets/DecompressLASToolsBinary.jpg differ diff --git a/_docAssets/DecompressLASToolsBinary.png b/_docAssets/DecompressLASToolsBinary.png deleted file mode 100644 index 488abf1..0000000 Binary files a/_docAssets/DecompressLASToolsBinary.png and /dev/null differ diff --git a/_docAssets/DownloadLASToolsBinaries.jpg b/_docAssets/DownloadLASToolsBinaries.jpg new file mode 100644 index 0000000..d169e3a Binary files /dev/null and b/_docAssets/DownloadLASToolsBinaries.jpg differ diff --git a/_docAssets/DownloadLASToolsBinaries.png b/_docAssets/DownloadLASToolsBinaries.png deleted file mode 100644 index f6064a0..0000000 Binary files a/_docAssets/DownloadLASToolsBinaries.png and /dev/null differ diff --git a/_docAssets/DrawPolygon.jpg b/_docAssets/DrawPolygon.jpg new file mode 100644 index 0000000..ddc851c Binary files /dev/null and b/_docAssets/DrawPolygon.jpg differ diff --git a/_docAssets/DrawPolygon.png b/_docAssets/DrawPolygon.png deleted file mode 100644 index f14eb71..0000000 Binary files a/_docAssets/DrawPolygon.png and /dev/null differ diff --git a/_docAssets/ExportPointsSet.jpg b/_docAssets/ExportPointsSet.jpg new file mode 100644 index 0000000..2559d94 Binary files /dev/null and b/_docAssets/ExportPointsSet.jpg differ diff --git a/_docAssets/ExportPointsSet.png b/_docAssets/ExportPointsSet.png deleted file mode 100644 index e95e363..0000000 Binary files a/_docAssets/ExportPointsSet.png and /dev/null differ diff --git a/_docAssets/FilterOutVegetation.jpg b/_docAssets/FilterOutVegetation.jpg new file mode 100644 index 0000000..b516af1 Binary files /dev/null and b/_docAssets/FilterOutVegetation.jpg differ diff --git a/_docAssets/FilterOutVegetation.png b/_docAssets/FilterOutVegetation.png deleted file mode 100644 index fcad021..0000000 Binary files a/_docAssets/FilterOutVegetation.png and /dev/null differ diff --git a/_docAssets/GenerateSurface.jpg b/_docAssets/GenerateSurface.jpg new file mode 100644 index 0000000..aa1365e Binary files /dev/null and b/_docAssets/GenerateSurface.jpg differ diff --git a/_docAssets/GenerateSurface.png b/_docAssets/GenerateSurface.png deleted file mode 100644 index ca46f57..0000000 Binary files a/_docAssets/GenerateSurface.png and /dev/null differ diff --git a/_docAssets/GenerateSurfaceFinal.jpg b/_docAssets/GenerateSurfaceFinal.jpg new file mode 100644 index 0000000..1ae7068 Binary files /dev/null and b/_docAssets/GenerateSurfaceFinal.jpg differ diff --git a/_docAssets/GenerateSurfaceFinal.png b/_docAssets/GenerateSurfaceFinal.png deleted file mode 100644 index edcc361..0000000 Binary files a/_docAssets/GenerateSurfaceFinal.png and /dev/null differ diff --git a/_docAssets/ImportInBambuLabs.jpg b/_docAssets/ImportInBambuLabs.jpg new file mode 100644 index 0000000..412a8eb Binary files /dev/null and b/_docAssets/ImportInBambuLabs.jpg differ diff --git a/_docAssets/ImportInBambuLabs.png b/_docAssets/ImportInBambuLabs.png deleted file mode 100644 index 58d6f39..0000000 Binary files a/_docAssets/ImportInBambuLabs.png and /dev/null differ diff --git a/_docAssets/ImportLIDARdata.jpg b/_docAssets/ImportLIDARdata.jpg new file mode 100644 index 0000000..9ad71d5 Binary files /dev/null and b/_docAssets/ImportLIDARdata.jpg differ diff --git a/_docAssets/ImportLIDARdata.png b/_docAssets/ImportLIDARdata.png deleted file mode 100644 index e2febf2..0000000 Binary files a/_docAssets/ImportLIDARdata.png and /dev/null differ diff --git a/_docAssets/ImportPoints.jpg b/_docAssets/ImportPoints.jpg new file mode 100644 index 0000000..ad6df0c Binary files /dev/null and b/_docAssets/ImportPoints.jpg differ diff --git a/_docAssets/ImportPoints.png b/_docAssets/ImportPoints.png deleted file mode 100644 index 7c44b3e..0000000 Binary files a/_docAssets/ImportPoints.png and /dev/null differ diff --git a/_docAssets/Incoherences.jpg b/_docAssets/Incoherences.jpg new file mode 100644 index 0000000..9f1ff47 Binary files /dev/null and b/_docAssets/Incoherences.jpg differ diff --git a/_docAssets/Incoherences.png b/_docAssets/Incoherences.png deleted file mode 100644 index 4407e77..0000000 Binary files a/_docAssets/Incoherences.png and /dev/null differ diff --git a/_docAssets/InstallPlugin.jpg b/_docAssets/InstallPlugin.jpg new file mode 100644 index 0000000..f254dff Binary files /dev/null and b/_docAssets/InstallPlugin.jpg differ diff --git a/_docAssets/InstallPlugin.png b/_docAssets/InstallPlugin.png deleted file mode 100644 index f77aaf5..0000000 Binary files a/_docAssets/InstallPlugin.png and /dev/null differ diff --git a/_docAssets/InstallPluginNext.jpg b/_docAssets/InstallPluginNext.jpg new file mode 100644 index 0000000..2fea27d Binary files /dev/null and b/_docAssets/InstallPluginNext.jpg differ diff --git a/_docAssets/InstallPluginNext.png b/_docAssets/InstallPluginNext.png deleted file mode 100644 index bb1171e..0000000 Binary files a/_docAssets/InstallPluginNext.png and /dev/null differ diff --git a/_docAssets/MergeMultipleLIDAR.jpg b/_docAssets/MergeMultipleLIDAR.jpg new file mode 100644 index 0000000..6abfd4a Binary files /dev/null and b/_docAssets/MergeMultipleLIDAR.jpg differ diff --git a/_docAssets/MergeMultipleLIDAR.png b/_docAssets/MergeMultipleLIDAR.png deleted file mode 100644 index b728498..0000000 Binary files a/_docAssets/MergeMultipleLIDAR.png and /dev/null differ diff --git a/_docAssets/New3DView.jpg b/_docAssets/New3DView.jpg new file mode 100644 index 0000000..a39aa7e Binary files /dev/null and b/_docAssets/New3DView.jpg differ diff --git a/_docAssets/New3DView.png b/_docAssets/New3DView.png deleted file mode 100644 index 4569a5b..0000000 Binary files a/_docAssets/New3DView.png and /dev/null differ diff --git a/_docAssets/NuageDePoints.jpg b/_docAssets/NuageDePoints.jpg new file mode 100644 index 0000000..962d29e Binary files /dev/null and b/_docAssets/NuageDePoints.jpg differ diff --git a/_docAssets/NuageDePoints.png b/_docAssets/NuageDePoints.png deleted file mode 100644 index 02b90ba..0000000 Binary files a/_docAssets/NuageDePoints.png and /dev/null differ diff --git a/_docAssets/OverheadRepresentation.jpg b/_docAssets/OverheadRepresentation.jpg new file mode 100644 index 0000000..3ced6b5 Binary files /dev/null and b/_docAssets/OverheadRepresentation.jpg differ diff --git a/_docAssets/OverheadRepresentation.png b/_docAssets/OverheadRepresentation.png deleted file mode 100644 index 6e5b192..0000000 Binary files a/_docAssets/OverheadRepresentation.png and /dev/null differ diff --git a/_docAssets/OverviewIn3D.jpg b/_docAssets/OverviewIn3D.jpg new file mode 100644 index 0000000..df66220 Binary files /dev/null and b/_docAssets/OverviewIn3D.jpg differ diff --git a/_docAssets/OverviewIn3D.png b/_docAssets/OverviewIn3D.png deleted file mode 100644 index 3a970df..0000000 Binary files a/_docAssets/OverviewIn3D.png and /dev/null differ diff --git a/_docAssets/OverviewPoints.jpg b/_docAssets/OverviewPoints.jpg new file mode 100644 index 0000000..5b80585 Binary files /dev/null and b/_docAssets/OverviewPoints.jpg differ diff --git a/_docAssets/OverviewPoints.png b/_docAssets/OverviewPoints.png deleted file mode 100644 index 1cc0c27..0000000 Binary files a/_docAssets/OverviewPoints.png and /dev/null differ diff --git a/_docAssets/PlomelinCentreBambuStudio.jpg b/_docAssets/PlomelinCentreBambuStudio.jpg new file mode 100644 index 0000000..46434b9 Binary files /dev/null and b/_docAssets/PlomelinCentreBambuStudio.jpg differ diff --git a/_docAssets/PlomelinCentreBambuStudio.png b/_docAssets/PlomelinCentreBambuStudio.png deleted file mode 100644 index 2c8e5e2..0000000 Binary files a/_docAssets/PlomelinCentreBambuStudio.png and /dev/null differ diff --git a/_docAssets/PoissonSurfaceParams.jpg b/_docAssets/PoissonSurfaceParams.jpg new file mode 100644 index 0000000..8e8450d Binary files /dev/null and b/_docAssets/PoissonSurfaceParams.jpg differ diff --git a/_docAssets/PoissonSurfaceParams.png b/_docAssets/PoissonSurfaceParams.png deleted file mode 100644 index f934c22..0000000 Binary files a/_docAssets/PoissonSurfaceParams.png and /dev/null differ diff --git a/_docAssets/ProcessingPointSelection.jpg b/_docAssets/ProcessingPointSelection.jpg new file mode 100644 index 0000000..c598865 Binary files /dev/null and b/_docAssets/ProcessingPointSelection.jpg differ diff --git a/_docAssets/ProcessingPointSelection.png b/_docAssets/ProcessingPointSelection.png deleted file mode 100644 index f832b68..0000000 Binary files a/_docAssets/ProcessingPointSelection.png and /dev/null differ diff --git a/_docAssets/ProcessingPointSelectionFinal.jpg b/_docAssets/ProcessingPointSelectionFinal.jpg new file mode 100644 index 0000000..a9510bd Binary files /dev/null and b/_docAssets/ProcessingPointSelectionFinal.jpg differ diff --git a/_docAssets/ProcessingPointSelectionFinal.png b/_docAssets/ProcessingPointSelectionFinal.png deleted file mode 100644 index a889037..0000000 Binary files a/_docAssets/ProcessingPointSelectionFinal.png and /dev/null differ diff --git a/_docAssets/RepairPointFile.jpg b/_docAssets/RepairPointFile.jpg new file mode 100644 index 0000000..ebadb6a Binary files /dev/null and b/_docAssets/RepairPointFile.jpg differ diff --git a/_docAssets/RepairPointFile.png b/_docAssets/RepairPointFile.png deleted file mode 100644 index ba84aec..0000000 Binary files a/_docAssets/RepairPointFile.png and /dev/null differ diff --git a/_docAssets/SelectionDonnees.jpg b/_docAssets/SelectionDonnees.jpg new file mode 100644 index 0000000..e4465e0 Binary files /dev/null and b/_docAssets/SelectionDonnees.jpg differ diff --git a/_docAssets/SelectionDonnees.png b/_docAssets/SelectionDonnees.png deleted file mode 100644 index a488d86..0000000 Binary files a/_docAssets/SelectionDonnees.png and /dev/null differ diff --git a/_docAssets/SelectionPolygon.jpg b/_docAssets/SelectionPolygon.jpg new file mode 100644 index 0000000..97159aa Binary files /dev/null and b/_docAssets/SelectionPolygon.jpg differ diff --git a/_docAssets/SelectionPolygon.png b/_docAssets/SelectionPolygon.png deleted file mode 100644 index b743c27..0000000 Binary files a/_docAssets/SelectionPolygon.png and /dev/null differ diff --git a/_docAssets/Small3DRepresentation.jpg b/_docAssets/Small3DRepresentation.jpg new file mode 100644 index 0000000..6466cda Binary files /dev/null and b/_docAssets/Small3DRepresentation.jpg differ diff --git a/_docAssets/Small3DRepresentation.png b/_docAssets/Small3DRepresentation.png deleted file mode 100644 index 2c0731d..0000000 Binary files a/_docAssets/Small3DRepresentation.png and /dev/null differ diff --git a/_docAssets/SurfaceOverview.jpg b/_docAssets/SurfaceOverview.jpg new file mode 100644 index 0000000..e9ca46c Binary files /dev/null and b/_docAssets/SurfaceOverview.jpg differ diff --git a/_docAssets/SurfaceOverview.png b/_docAssets/SurfaceOverview.png deleted file mode 100644 index 5e9dafd..0000000 Binary files a/_docAssets/SurfaceOverview.png and /dev/null differ diff --git a/_docAssets/TempLayerForExtraction.jpg b/_docAssets/TempLayerForExtraction.jpg new file mode 100644 index 0000000..542184f Binary files /dev/null and b/_docAssets/TempLayerForExtraction.jpg differ diff --git a/_docAssets/TempLayerForExtraction.png b/_docAssets/TempLayerForExtraction.png deleted file mode 100644 index 04a846f..0000000 Binary files a/_docAssets/TempLayerForExtraction.png and /dev/null differ