diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1036bd2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.obsidian/ \ No newline at end of file diff --git a/Readme.md b/Readme.md index 90d74f0..3a1b7ce 100644 --- a/Readme.md +++ b/Readme.md @@ -1,3 +1,126 @@ # LidarTo3DPrint -Procédure de conversion d'un fichier de points LIDAR en une impression 3D \ No newline at end of file +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. + +# Réalisation + +Se rendre sur la page web de téléchargement des données brutes : [https://cartes.gouv.fr/telechargement/IGNF_NUAGES-DE-POINTS-LIDAR-HD](https://cartes.gouv.fr/telechargement/IGNF_NUAGES-DE-POINTS-LIDAR-HD) + +Sélectionner une zone et télécharger les données : + +![[SelectionDonnees.png]] + +Ouvrir QGIS et installer le plugin LAStools + +![[InstallPlugin.png]] + + +Cliquer sur Installer + +![[InstallPluginNext.png]] + + +Se rendre sur la page de LASTools et télécharger les outils compilés pour votre OS + +![[DownloadLASToolsBinaries.png]] + +Décompresser le zip et copier le fichier LASTools dans le disque C puis redémarrer QGIS + + +![[DecompressLASToolsBinary.png]] + + +Importer un fichier LIDAR + +![[ImportLIDARdata.png]] + + +Il apparaît dans QGIS, il est possible d’avoir un aperçu en ouvrant une nouvelle vue 3D + +![[New3DView.png]] + + +Sur ce zoom on peut apercevoir un château d’eau ainsi que des maisons et de la végétation + +![[OverviewIn3D.png]] + + +Pour ne pas imprimer tout le village, nous allons sélectionner une plus petite zone. Créer une nouvelle couche temporaire + +![[TempLayerForExtraction.png]] + + +Sélectionner une géométrie de type polygon (pour faire la sélection) et choisir la mème géodésique + +![[SelectionPolygon.png]] + +La couche apparaît maintenant en bas a gauche. + +Si besion merger plusieurs couches de nuages de points + +![[MergeMultipleLIDAR.png]] + +Utiliser l’outil d’ajout de polygone (click gauche pour les points du polygone, click droit pour terminer) + +![[DrawPolygon.png]] + +Chercher l’outil de processing « Point Cloud Clip » + +![[ProcessingPointSelection.png]] + +Sélectionner la couche de points source ainsi que le polygone + +![[ProcessingPointSelectionFinal.png]] + +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. + +![[Small3DRepresentation.png]] + +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 + +![[OverheadRepresentation.png]] + +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 + +![[FilterOutVegetation.png]] + +Faire un click droit sur la couche, Export => Save As et enregistrer dans un fichier LAS + +![[ExportPointsSet.png]] + +Vous n’aurez que les points associés aux catégories filtrées dans ce fichier + +Recommencer l’opération et cette fois ci enregistrer les données au format « Comma Separated Values » + +Ouvrir « Meshlab » et importer un nouveau fichier mesh. Notre fichier CSV comporte les latitudes, longitudes et élévation séparées par une virgule. En précisant le format d’import dans MeshLab nous pouvons ouvrir le fichier + +![[ImportPoints.png]] + +![[OverviewPoints.png]] + +En regardant en haut a droite on peut observer que nous avons 19757 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. + +Il faut d'abord calculer les normales aux points +![[CalculateNormals.png]] + +![[GenerateSurface.png]] + +![[GenerateSurfaceFinal.png]] + +Après avoir reconstruit les faces, on voit que l’on a pas assez de points pour représenter les maisons. Il y a beaucoup de moments ou la reconstruction de poisson ne représente pas la réalité. + +![[SurfaceOverview.png]] + +Enregistrer les points au format STL en utilisant le menu File => Export As + +Ouvrir BambuLab et importer le STL et ajouter un support + +![[ImportInBambuLabs.png]] \ No newline at end of file diff --git a/_docAssets/CalculateNormals.png b/_docAssets/CalculateNormals.png new file mode 100644 index 0000000..274b639 Binary files /dev/null and b/_docAssets/CalculateNormals.png differ diff --git a/_docAssets/DecompressLASToolsBinary.png b/_docAssets/DecompressLASToolsBinary.png new file mode 100644 index 0000000..488abf1 Binary files /dev/null and b/_docAssets/DecompressLASToolsBinary.png differ diff --git a/_docAssets/DownloadLASToolsBinaries.png b/_docAssets/DownloadLASToolsBinaries.png new file mode 100644 index 0000000..f6064a0 Binary files /dev/null and b/_docAssets/DownloadLASToolsBinaries.png differ diff --git a/_docAssets/DrawPolygon.png b/_docAssets/DrawPolygon.png new file mode 100644 index 0000000..f14eb71 Binary files /dev/null and b/_docAssets/DrawPolygon.png differ diff --git a/_docAssets/ExportPointsSet.png b/_docAssets/ExportPointsSet.png new file mode 100644 index 0000000..e95e363 Binary files /dev/null and b/_docAssets/ExportPointsSet.png differ diff --git a/_docAssets/FilterOutVegetation.png b/_docAssets/FilterOutVegetation.png new file mode 100644 index 0000000..fcad021 Binary files /dev/null and b/_docAssets/FilterOutVegetation.png differ diff --git a/_docAssets/GenerateSurface.png b/_docAssets/GenerateSurface.png new file mode 100644 index 0000000..ca46f57 Binary files /dev/null and b/_docAssets/GenerateSurface.png differ diff --git a/_docAssets/GenerateSurfaceFinal.png b/_docAssets/GenerateSurfaceFinal.png new file mode 100644 index 0000000..edcc361 Binary files /dev/null and b/_docAssets/GenerateSurfaceFinal.png differ diff --git a/_docAssets/ImportInBambuLabs.png b/_docAssets/ImportInBambuLabs.png new file mode 100644 index 0000000..58d6f39 Binary files /dev/null and b/_docAssets/ImportInBambuLabs.png differ diff --git a/_docAssets/ImportLIDARdata.png b/_docAssets/ImportLIDARdata.png new file mode 100644 index 0000000..e2febf2 Binary files /dev/null and b/_docAssets/ImportLIDARdata.png differ diff --git a/_docAssets/ImportPoints.png b/_docAssets/ImportPoints.png new file mode 100644 index 0000000..7c44b3e Binary files /dev/null and b/_docAssets/ImportPoints.png differ diff --git a/_docAssets/InstallPlugin.png b/_docAssets/InstallPlugin.png new file mode 100644 index 0000000..f77aaf5 Binary files /dev/null and b/_docAssets/InstallPlugin.png differ diff --git a/_docAssets/InstallPluginNext.png b/_docAssets/InstallPluginNext.png new file mode 100644 index 0000000..bb1171e Binary files /dev/null and b/_docAssets/InstallPluginNext.png differ diff --git a/_docAssets/MergeMultipleLIDAR.png b/_docAssets/MergeMultipleLIDAR.png new file mode 100644 index 0000000..b728498 Binary files /dev/null and b/_docAssets/MergeMultipleLIDAR.png differ diff --git a/_docAssets/New3DView.png b/_docAssets/New3DView.png new file mode 100644 index 0000000..4569a5b Binary files /dev/null and b/_docAssets/New3DView.png differ diff --git a/_docAssets/OverheadRepresentation.png b/_docAssets/OverheadRepresentation.png new file mode 100644 index 0000000..6e5b192 Binary files /dev/null and b/_docAssets/OverheadRepresentation.png differ diff --git a/_docAssets/OverviewIn3D.png b/_docAssets/OverviewIn3D.png new file mode 100644 index 0000000..3a970df Binary files /dev/null and b/_docAssets/OverviewIn3D.png differ diff --git a/_docAssets/OverviewPoints.png b/_docAssets/OverviewPoints.png new file mode 100644 index 0000000..1cc0c27 Binary files /dev/null and b/_docAssets/OverviewPoints.png differ diff --git a/_docAssets/ProcessingPointSelection.png b/_docAssets/ProcessingPointSelection.png new file mode 100644 index 0000000..f832b68 Binary files /dev/null and b/_docAssets/ProcessingPointSelection.png differ diff --git a/_docAssets/ProcessingPointSelectionFinal.png b/_docAssets/ProcessingPointSelectionFinal.png new file mode 100644 index 0000000..a889037 Binary files /dev/null and b/_docAssets/ProcessingPointSelectionFinal.png differ diff --git a/_docAssets/SelectionDonnees.png b/_docAssets/SelectionDonnees.png new file mode 100644 index 0000000..a488d86 Binary files /dev/null and b/_docAssets/SelectionDonnees.png differ diff --git a/_docAssets/SelectionPolygon.png b/_docAssets/SelectionPolygon.png new file mode 100644 index 0000000..b743c27 Binary files /dev/null and b/_docAssets/SelectionPolygon.png differ diff --git a/_docAssets/Small3DRepresentation.png b/_docAssets/Small3DRepresentation.png new file mode 100644 index 0000000..2c0731d Binary files /dev/null and b/_docAssets/Small3DRepresentation.png differ diff --git a/_docAssets/SurfaceOverview.png b/_docAssets/SurfaceOverview.png new file mode 100644 index 0000000..5e9dafd Binary files /dev/null and b/_docAssets/SurfaceOverview.png differ diff --git a/_docAssets/TempLayerForExtraction.png b/_docAssets/TempLayerForExtraction.png new file mode 100644 index 0000000..04a846f Binary files /dev/null and b/_docAssets/TempLayerForExtraction.png differ