Impression 3D de modèles numériques de terrain
Notes de cours produites initialement pour un atelier au FacLAB UniGE en décembre 2021, révisées en mai 2023.
Introduction
Dans ce petit article on décrit comment obtenir des modèles numériques de terrain et comment les traduire en format STL pour une Impression 3D. Vous allez apprendre:
- Comment créer un modèle STL 3D imprimable à partir d'un carré choisi dans une carte auprès d'un service en ligne
- Comment sélectionner et télécharger un modèle numérique de terrain (DEM) sous forme d'un carré représentant une zone géographique (par exemple votre montagne préférée).
- Comment transformer un carré DEM en fichier STL avec le logiciel QGIS.
Préparation pour le cours présentiel
- Il faut venir avec un laptop et une connexion Internet
- Pour profiter pleinement, on conseille d'installer QGIS, la meilleure plateforme open source GIS (Geographic Information System).
- Si vous désirez imprimer au FacLAB il faut (1) installer le Prusa Slicer et (2) suivre la formation imprimante 3D
Les modèles DEM et DSM
Un modèle numérique de terrain (MNT), en Anglais, Digital Elevation Model (DEM) est selon Wikipedia une représentation en 2,5D de la surface d'un terrain ou d'une planète, créée à partir des données d'altitude du terrain. Dans la suite de l'article, on utilisera l’acronyme "DEM", plus connu.
Le DEM (fr. MNT) ne prend pas en compte les objets présents à la surface du terrain tels que les plantes et les bâtiments. Un modèle numérique d'élévation (MNE) (Angl. Digital surface model, DSM) est une représentation des élévations sur un terrain comprenant les plantes et les bâtiments. Les bases de données DEM (MNT) et DSM (MNE) sont différentes.
Les formats DEM et DSM
Il existe plusieurs formats DEM et qui sont plus ou moins précis. Ils sont construits avec des méthodes diverses comme c'est bien décrit dans l'article de Wikipedia. En règle générale, on utilise une simple matrice de carrés. Les deux formats simples et populaires sont ESRI Ascii grid et geoTIFF. Les deux encodent un terrain par une simple matrice de nombres représentant l'altitude d'un carré. Nous allons surtout utiliser geoTIFF qui représente un terrain avec des niveaux de gris (noir = 0)
Nom | extension | Contenu | informations |
ESRI ASCII GRID | asc | Format matriciel propriétaire | "heightmap" + coordonnées etc. |
geoTIFF (Geographic Tagged Image File Format) | tif or tiff | Annotations au format 2D TIFF (GeoTIFF, Wikipedia) | "heightmap" + coordonnées etc. |
Les données DSM/MNE sont souvent au format LAS, un nuage de points crée par LIDAR. On n'a pas trouvé des moyens faciles et gratuits pour convertir ce format. Pour la Suisse par contre, ces données existent également au format geoTIFF.
Les images ci-dessous montrent la différence entre un modèle DEM et un modèle DSM.
Obtenir un modèle DEM
La plupart des données DEM disponibles pour la planète entière ont été recueillies par la mission SRTM (Shuttle Radar Topography Mission) de la NASA en 2000. Il a fallu 11 jours pour cartographier la Terre (à l'exception des mers et des régions polaires). La résolution des données SRTM est la suivante:
- 30 secondes d'arc (DTED niveau 0) - espacement d'environ 900 m
- 3 secondes d'arc (DTED niveau 1) - espacement d'environ 90 mètres
- 1 seconde d'arc (DTED niveau 2) - espacement d'environ 30 mètres.
Une résolution horizontale de 30m suffit pour imprimer une montage large, un massif, etc. Elle n'est pas suffisante pour imprimer un petit terrain plutôt plat. Une résolution de 90 suffit pour imprimer une région comme un Canton Suisse.
Les services en ligne pour la création d'un modèle 3D imprimable ont une interface directe avec une de ces bases de données. Vous pouvez ignorer comment sélection un service et chercher une image DEM si vous visez à imprimer un terrain large comme par exemple le Cervin et son voisinage immédiat.
Il existe de nombreux jeux de données DEM (primaires ou secondaires) pour la planète entière, mais surtout pour différents pays ou régions. Plusieurs de ces jeux de données utilisent les données SRTM. Une bonne liste des jeux de données SRTM disponibles se trouve dans l'article de l'OpenStreetMap Wiki SRTM. Vous trouverez ci-dessous quelques dépôts. La plupart d'entre eux nécessitent des démarches avant de pouvoir réellement accéder aux données.
Name | résolution (x/y axis) | Data Source | |
CGIAR-CSI SRTM | 30m | SRTM | Permet de télécharger des gros carrés (5 ou 30 secondes) |
EarthExplorer (de USGS EROS, US Geological survey) - | 30 to 90m | Various, e.g. SRTM | Permet d'accéder à plusieurs types de bases de données DEM et DSM et ensuite d'exporter. Il faut se créer un login et ensuite faire un certain nombre de choix. Type de carte, source, ensuite choisir un carré sur une carte interactive. |
ViewFinderPanoramas (VFP) | 30 m | SRTM and ASTER GDEM | Ancien site à ne plus utiliser à priori, car il contient des données pré-STRM. |
EU-DEM | 25 m | STRM/Astra | Données STRM et Astra nettoyés pour l'Europe. Pour obtenir un carré (assez large) il faut cliquer sur la carte. |
EOWeb Poral (DE) | Catalogue de services allemands (à explorer) | ||
Modèles d'altitude (CH) | 0.5m - 200m | Swisstopo | Ensemble de services de Swisstopo, dont SwissALTI3D (c.f. ci-dessous). Des modèles 25m suffisamment larges pour modéliser des massifs sont dans le MNT25 |
SwissALTI3D | 0.5m | Swisstopo (explications geodonnées) | Gratuit depuis 2021, un jeu ultra précis pour la suisse. (A éviter pour modéliser des massifs car vous allez avoir des fichiers énormes). Il existe deux versions utiles (faciles à utiliser): SwissALTI3D contient des modèles DEM, SwissSURFACE 3D Raster, contient des modèles de bâtiments et autres artéfacts en plus. Les deux sont assez faciles à utiliser avec QGIS et son plugin DEMtoSTL. |
Swissbuildings | ±30cm à 50cm en planimétrie et en altimétrie | Swisstopo | Base de données de bâtiments, téléchargeable en tuiles de 1:25000. |
Créer un modèle avec le service en ligne TouchTerrain
Le logiciel TouchTerrain [1], développé par Chris Harding et Franek Hasiuk (Iowa State University), est un service en ligne très facile à utiliser, également disponible comme programme hors ligne, pour créer des modèles STL 3D imprimables. Il récupère les données DEM de Earth Engine et les transforme en STL. Il dispose d'un grand nombre de paramètres (simple et "expert"). Il permet également d'imprimer plusieurs modèles 3D qui peuvent être collés ensemble pour former un modèle plus grand.
Définir un rectangle à imprimer avec la version en ligne
- Service en ligne : TouchTerrain
Voici les 10 pas importants à faire:
- Sélectionnez un service de carte DEM (source de données d'élévation). On conseille AW3D30
- Sélectionnez une zone sur la carte du monde, on conseille de taper le nom du lieu, par exemple "Matterhorn". Si vous ne trouvez pas, cherchez les coordonnées sur google et entrez-les dans la
Area Selection Box
- Réglez la transparence pour bien voir la carte et le modèle.
- Bougez la carte dans une position à peu près juste.
- Puis cliquez sur
Re-center box on map
. - Ajustez le rectangle avec les contrôles (sinon la "area selection box" permet également de rentrer des coordonnées).
- Spécifiez la largeur du modèle (et éventuellement la largeur de la buse de votre imprimante, 0.4mm pour la Prusa Mini, et le nombre de tuiles à produire (par défaut 1x1),
- décidez l'épaisseur de la base du modèle (à partir du point le plus bas, pas le niveau de la mer),
- définissez l'exagération verticale.
- Cliquez sur
Exporter Selected Area and Download File
.
La version en ligne a fait l'objet d'une mise à jour majeure au printemps 2021 et comprend une nouvelle interface graphique, la recherche de lieux avec la fonction "fly-to" (très populaire !), le survol (ou le clic) des bulles d'aide (les ?s), l'importation de fichiers xml/kmz : numérisez un polygone dans google map (ou autre), enregistrez-le en tant que fichier KML et utilisez-le pour délimiter la zone d'impression, la mise à l'échelle "automatique" des z : définissez la valeur de l'échelle des z à une hauteur (disons 20 mm de haut) et le logiciel trouvera une échelle des z qui rendra votre impression de 20 mm de haut (sans compter la hauteur de base). Pas encore tout testé- Daniel K. Schneider (talk) 10:27, 11 Mai 2021 (CEST)
Création d'autres formes
Il est possible d'importer un polygone au format KML pour définier une zone à découper.
Voici une méthode. Il faut d'abord ouvrir Google Earth, localiser l'endroit à imprimer, puis définir un projet, puis faire le dessin.
(1 Ouvrir Google Earth (version web): https://earth.google.com/
(2) Voici un exemple de la commune de Gais en Appenzell.
(3) Créer un projet dans le menu en haut à gauche
- Menu -> Projects -> New Project
Pour définir le polygone:
(1) New feature
- Draw line or shape
(2) Dessiner
- Cliquer sur des points
- Fermer la forme en cliquant sur le premier point
(3) Reéditer le dessin et ajuster
(4) Export as KML file
Ensuite, dans TouchTerrain on peut importer le fichier KML
- Il faut ouvrir le "Area Selection Box"
- Choisir le fichier ... c'est tout
Pour aller plus loin
Plus d'informations et manuel officiel :
- TouchTerrain, modèles de terrain imprimés en 3D par Chris Harding & Franciszek "Franek" Hasiuk, 12 mars 2021
Il est possible d'installer une version en local et qui possède des fonctionnalités en plus. Depuis mai 2021, il existe une image docker permettant d'exécuter les carnets Jupyter autonomes de TouchTerrain via un conteneur. Elle nécessite un peu de configuration et un PC (ou Mac ou Linux) un peu lourd, mais elle installera tout pour vous. Si vous n'avez pas essayé la version autonome (desktop), l'auteur recommande d'utiliser cette version dockerisée et le notebook jupyter de démarrage.
- Version Docker (pas testée)
Utilisation du service Terrain2STL en ligne
Terrain2STL était par le passé le moyen le plus simple et le plus rapide de se lancer dans l'aventure et constitue une alternative à Touch Terrain. Terrain2STL est un service en ligne qui permet de sélectionner un carré sur Google maps. À partir de ces coordonnées, il extrait une région des données Nasa/cgiar-csi et produit le STL. Citation : «Terrain2STL est un service gratuit, mais si vous voulez aider à soutenir le site, les dons sont les bienvenus. Terrain2STL crée des fichiers STL en utilisant le jeu de données SRTM3 de 2000, qui a une résolution d'environ 90 mètres sur l'équateur.» (Terrain2STL home page, feb 2017)
Procédure:
- Chercher l'endroit sur Google Maps
- Ajuster globalement la vue sur la zone
- Régler
Model Details
- La taille de la boite de sélection se règle avec "Box Width et Box Height". On conseille d'agrandir la fenêtre du navigateur au max. car les sslidersont sensibles.
- Box Scaling Factor permet d'avoir une boite de sélection plus large
- Vous pouvez effectuer une rotation
- On conseille de faire un vertical scaling, par exemple 2 pour un massif plus large.
- Dans les water and Base Settings, vous pouvez changer l'épaisseur de la base
Voici un modèle de La Palma, taille du STL innconnue.
Créer un modèle avec QGIS
Si vous désirez créer des modèles avec des données plus précises, par exemple les jeux mis à disposition gratuitement par la confédération Suisse, il faut transformer les données soi-meme avec un logiciel. On conseille d'utiliser QGIS, la meilleure plateforme open source GIS (Geographic Information Systems). Elle tourne sous Win / Mac / Linux / BSD et elle a un plugin DEM vers STL (appelé DEMto3D
, préalablement "DEMtoSTL") qui marche bien.
- On conseille de prendre la dernière version LTS (3.28 Firenez en mai 2023), car la version la plus récente peut nécessiter une mise à jour du plugin (pas faite).
- Il existe une version standarde Ubuntu 18 (avant-dernière version LTS) qui suffira à nos besoins (apt get install qgis)
Installer le plugin
- Menu Plugins -> Manage and Install Plugins
- En français Menu Extensions -> Installer/gérer les extensions
Ensuite:
- chercher
DEMto3D
- Installer le plugin
On peut aussi mettre à jour un extensions au même endroit.
Dernier test: Avec QGIS "3-28 Firenze et aussi 3-18 Hannover" (mai 2023)
Utiliser le plugin
Dans QGIS
- Utiliser le navigateur (
Browser
) à gauche pour retrouver le dossier qui contient votre fichier DEM. Double-clic dessus pour l'ouvrir - Dans le panneau Layers (fr. Couches), cochez le calque/fichier qui vous intéresse (et aucun autre!)
- Menu Raster -> DEMto3D -> DEMto3D Printing (fr. Impression 3D du MDE)
- Choisissez le calque à imprimer (si c'est pas fait avant)
- Sélectionnez la zone à imprimer. Dans l'exemple ci-dessous, on choisit de prendre le tout, sinon peut soit modifier les coordonnés. (étape no 5. dans la figure dessus: il faut absolument cliquer sur le premier bouton sinon le tout se plante)
- Sélectionnez la hauteur des couches pour le slicer. On conseille 0.3 pour une structure large.
- Définir soit la largeur, soit la longueur, soit l'échelle du modèle à générer (le max. pour la Prusa Mini est 180mm
- Définir l'exagération. Je suggère 1.5 pour les grandes montages, 2 pour les massifs, et 3-4 pour les terrains plats.
- Définir la hauteur minimale (height). Un peu moins que le point le plus bas, par exemple 360 au lieu de 360. Aussi, définir la hauteur de la plaque de base, par exemple 1mm ou 2mm.
- Exporter
En Anglais:
En français:
Fusionner des fichiers
Le plugin DEM2STL ne peut travailler avec plusieurs fichiers. Il faut donc les fusionner et c'est assez simple.
- Les fichiers doivent être dans le même dossier, ouvert dans QGIS
- Menu -> Raster -> Miscellaneus -> Merge (en français: Menu -> Raster -> Divers -> Fusion)
- Choisir les
input layers
(fr. "couches en entrée) tout en haut du panneau Merge (fr. "Fusion") ! - Run
La copie d'écran ci-dessous montrer la procédure avec la version Anglaise
Extraire des carrés
(à refaire/retester)
DEM2STL permet aussi d'extraire un carré, mais c'est peu pratique si l'image d'origine est grande comme par exemple le modèle MNT25 de la Suisse. Il faut déposer le zip qq. part dans vos dossier. Pas besoin de dézipper. Cliquer sur le fichier ".asc.ovr". En 2021, je n'ai pas réussi à extraire un carré avec ces données alors que cela marche avec un fichier TIFF, à débogger..... A essayer: extraire avec un polygone.
Menu Raster -> Extraction -> Clip by Extent
Attention: Il faut respecter la syntaxe (xmin, xmax, ymin, ymin). La sélection semble confondre et cela ne marche pas 🙄 A retester en 2023.
- xmin = 2675.629379360457 (longitude E, gauche, vers l'ouest)
- xmax = 3433.0198931696664 (longitude E, droite, vers l'est)
- ymin = -3969.7718103650673 (lattitude N, bas, closer to equator !)
- ymax = -3384.6976568404925 (lattitude N, haut, closer to north pole)
Faux: 2675.629379360457,3433.0198931696664,-3969.7718103650673,-3384.6976568404925 [EPSG:4326] Juste: ????
EPSG:4326 est une norme pour coordonnés. Une erreur d'encodage ?
Attention, il existe pleins de systèmes de coordonnées:
Le Cervin est à DMS == 45° 58' 49.9332'' N 7° 38' 29.8248'' E == 45.9766° N, 7.6585° E == 45.980537, 7.641618. == UTM 32T 395802.05538874 5091871.0599212
Transformation de données LIDAR
(à développer un jour).
Les données LIDAR, par exemple ceux de swissSURFACE3D sont définies comme des nuages de points, au format LAS. Donc pas de maillage.
(1) Une première stratégie consiste à transformer un fichier *.LAS ou *.LAZ en DEM
- Lire DEM from LiDAR Data
(2) Une autre consiste à transformer un fichier LAS en maillage
- lire ceci par exemple.
(3) Il existe un programme commercial qui fait cela: Equator Studios
(4) La meilleure solution consiste à trouver un autre format,
- par exemple swissSURFACE3D Raster (en GeoTIFF)
Imprimer un modèle 3D
Traitement de fichiers STL avant le slicing
Réparation
On conseille fortement de réparer le modèle. Par défaut, Windows, inclut un outil pour faire cela, sinon certains slicers réparent automatiquement un fichier, mais ne sont pas forcément très performants.
Ensuite, vous pouvez ou devez adapter les dimensions du modèle et/ou couper des parties.
Changement de taille
Exemple avec Prusa Slicer pour le modèle de La Palma qui fait 366.92 X 520mm. On réduit à 34% (selon la formule x = largeur voulue / largeur * 100
) en utilisant le panneau.
Pour changer la taille, on peut simplement utiliser les fonctionnalités du slicer. sinon, il faut utiliser un outil comme Meshmixer ou logiciel de conception.
Rogner un model
Si vous désirez couper une partie du modèle il faut utiliser un logiciel comme Meshmixer ou un logiciel de modélisation. Les programmeurs peuvent prendre OpenScad ou Blockscad par exemple. Voici du code que vous pouvez reprendre
Réglages de slicing
Il est impératif que la première couche tienne bien.
- Sur une imprimante qui n'a pas de plateaux plus système de calibration parfaites, on conseille d'imprimer la première couche un peu plus largement et de mettre de la colle
- Diminuez la vitesse par défaut pour la première couche à 25%, environ 15mm/s
Choses à essayer si le print ne marche pas. Voir aussi Slicer and printer settings for digital elevation models (mes explications en Anglais faites il y a quelques années).
- Avec un remplissage faible, le plastique risque de ne plus sortir après plusieurs heures d'impression. Augmentez la température de 5 degrés si c'est le cas.
- Utilisez un remplissage simple, par exemple une grille de lignes droits
- Si votre modèle comprend beaucoup de surface plates, diminuez l'intensité du ventilateur. Ainsi l'imprimante risque moins de s'accrocher.
- Vous pouvez diminuer aussi la rétraction.
Références et liens
Liens
- Voir 3D printing of digital elevation models (EduTechWiki Anglais)
Références
- ↑ Harding, C., Hasiuk, F., & Wood, A. (2021). TouchTerrain—3D Printable Terrain Models. ISPRS International Journal of Geo-Information 2021, Vol. 10, Page 108, 10(3), 108. https://doi.org/10.3390/IJGI10030108