Wiki » Historique » Révision 7
Révision 6 (Baptiste Pelouas, 02/06/2015 09:10) → Révision 7/8 (Baptiste Pelouas, 02/06/2015 10:14)
{{toc}}
Wiki
====
Via la Nasa (maillage min de 30m (STRM1))
-----------------------------------------
<img src="http://redmine.acolab.fr/attachments/download/89/sample-3d-landscap00.png" height="50%" width="50%" title="Puy de Montchat et de La Vache Z_factor=2" alt="Puy de Montchat">
**[le fichier STL correspondant](http://redmine.acolab.fr/attachments/download/90/sample-3d-landscap_Puy%20de%20Montchat.stl)**
L'explication des données: http://asterweb.jpl.nasa.gov/gdem.asp , le site tuto http://vterrain.org/Elevation/SRTM/ .
**1.** Concrètement, téléchargement sur le FTP : http://e4ftl01.cr.usgs.gov/SRTM/SRTMGL1.003/2000.02.11/
Y choisir le zip adéquat, découpage en fichier de 1° par 1°. Exemple: pour la latitude 45° et la longitude 2°(point Sud-Ouest de la zone), il faut prendre le fichier *N45E002.hgt.zip* et le déziper
**2.** Télécharger et installer le logiciel VTBuilder (http://vterrain.org/Doc/VTBuilder/overview.html). <blockquote> Attention, il se peut que la compilation se passe mal sous Linux... Si c'est le cas, il faudra passer par le site [Terrain2STL](http://jthatch.com). Les étapes 1 et 3 seront inutiles, mais l'on récupèrera des données au format *.stl* (qui est pris en charge par MeshLab) et avec un échantillonage tout les ~90m et des coordonées en degrés.</blockquote> ~90m.</blockquote>
**3.** Dans **VTBuilder**: Menu *Calques>>Import de données>>Relief* (Valider)>> choisir le fichier .hgt
<ul>
<li>1 - Projection cartographique
<blockquote>Le
3.1. le fichier étant en coordonnées géographiques, c.a.d. en degrés, il y a une déformation des distances (on voit un carré), donc on va utiliser une projection pour avoir des coordonnées en mètres.</blockquote>
mètres: Menu <i>Calques *Calques >> Convertir Projection >></i>
<ul>
<li><i>Projection</i>= <b>UTM</b> >>* *Projection*= ***UTM*** (Universal Transversal Mercator)</li>
<li><i>Système Géodésique</i>= <b>World Mercator); *Système Géodésique*= ***World Geodetic System 1984</b> 1984*** (Ellipsoid= WGS 84)</li>
<li><i>Unités Horyzontales</i>= <b>mètres</b></li>
<li><i>Zones</i>= <b>31</b> 84); *Unités Horyzontales*= ***mètres***; *Zones*= ***31*** (... central meridian = 3° *Pour la France*).</li>
</ul>
France*). Puis Valider. (au message "use floating-point values", choisir Oui</li>
<li>2 - Recadrage
<ul>
<li>Zoomer Oui
3.2. Zoomer sur la zone choisi (icône loupe)</li>
<li>Créer loupe); Créer un cadre sur cette zone (icône "Outil Area" [un carrée en pointillé])</li>
<li>Menu <i>Outil pointillé]); Menu *Outil Aire>>Sample Elevation>></i> <i>Sortie</i>= <b>creer Elevation>>* *Sortie*= ***creer un nouveau calque</b>.</li>
</ul>
</li>
<li>3 - calque***.
3.3. Menu *Elévation>> Convert to TIN*.</li>
<li>4 - TIN*.
3.4. Menu *Elévation>> Exporter sous...* >> choisir type PLY puis Valider.</li>
</ul> Valider.
**4.** Ouvrir le fichier .ply avec **[MeshLab](http://meshlab.sourceforge.net)**
<ul>
<li>1 -
4.1. Menu *Show>> View Layer Dialog*</li>
<li>2 - Dialog*
4.2. Dans le gestionnaire de calques: clique-droit sur le calque actuel, et choisir *Duplicate current layer*, puis sélectionner le nouveau calque créer.</li>
<li>3 - Création du socle.
<blockquote>Le but de cette étape est de créer un socle a partir du calque précédemment dupliqué. En effet, pour qu'un modèle soit imprimable, il doit décrire un volume clos (sans trous, sans intersection de face et sans faces dupliquée). A l'aide de *Geometric Function*, on va affecter même altitude a tout les points pour créer une surface plane. </blockquote>
créer.
4.3. Menu *Filters >> Smoothing, Fairing and Deformation >> Geometric Function >>* func x = x ; func y = y ; func z = altitude du socle (par exemple 850). *Apply* puis *Close*. (Note le socle doit être plus bas que le point le plus bas de la zone choisi pour qu'il n'y ai aucune intersection)</li>
<li>4 - intersection)
4.4. Menu *Filters >> Normals, Curvatures and Orientations >> Invert Faces Orientation*.</li>
<li>5 - Orientation*.
4.5. Dans le gestionnaire de calques: clique-droit sur le calque actuel, et choisir *Flatten visible layers*. Cocher tout, *Apply* puis *Close*.</li>
<li>6 - *Close*.
4.6. Menu *Filters >> Remeshing, Simplification and Reconstruction >> Ball Pivoting Surface Reconstruction >>* *Pivoting Ball radius, perc on =* 1 ; *Clustering radius =* 20 ; *Angle Threshold =* 90 >> *Apply*. Normalement, l'algorythme doit commencer a 'clore' le maillaige. Refaire *Apply* après avoir augmenter la valeur *Pivoting Ball radius, perc on =* (pour moi 1 puis 2 puis 3 puis 3.5). Lorsque le mailliage semble être totalement clos, faire *Close*.</li>
<li>7 - *Close*.
4.7. Menu *File >> Save as ... >>* choisir le format ***.stl***, donner un nom, et Enregistrer (boite de dialog suivante: cocher *Binary encoding* puis OK) **FINI**</li>
</ul>
**FINI**
Si le fichier obtenu est trop gros
----------------------------------
On peut alors le simplifier dans **MeshLab** avec les Algorythmes "Remeshing, Simplification and Reconstruction".
Par exemple, j'utilise Menu *Filters >> Remeshing, Simplification and Reconstruction >> Quadratic Edge Collapse Decimation >>* : en mettant le paramètre *Percentage reduction* = 0 (pas de réduction cible), *Quality threshold* = 0.3 (valeur par défault), et en cochant *Planar Simplification*. C'est algo réorganise les faces en supprime dans les zones planes. Il réduit, chez moi, de moitié la taille de mon fichier .stl.
Modifier l'echelle en Z (augmenter l'impression du relief)
----------------------------------------------------------
Dans **MeshLab**:
Menu Filters >> Smoothing, Fairing and Deformation >> Geometric Function >>
<blockquote>
func x = x ; func y = y ; func z = z*Z_factor (Généralement Z_factor = 2, rend bien).
</blockquote>
Apply puis Close.
Autre Source
------------
### Via google map et Terrain2STL (maillage min de ~100m)
<blockquote>
la présentation : http://www.fabbaloo.com/blog/2014/11/16/3d-print-any-landscape-right-now
le site (via google map) : http://jthatch.com (et le code sur GitHub : https://github.com/ThatcherC/Terrain2STL )
>> la taille des mailles précision estimé : ~100m, les coordonnées sont en degré, donc déformation du a la latitude/longitude...
</blockquote>
### Via les données IGN gratuites (maillage min de 75m)
<blockquote>
le site de téléchargement (maillage min de 75m): http://professionnels.ign.fr/bdalti#tab-3
>> les coordonnées ont le bon gout d'être en mètre, dans un système X(est) Y(nord) Z(altitude), mais sont pour toutes la France(181MO pour le maillage 75m)
</blockquote>
Notes
-----
La tailles des maillages suivant les sources est souvent fonction de la latitude. C'est due a un échantillonnage régulier en fonction de coordonnées polaires (on dit *[géographique](http://fr.wikipedia.org/wiki/Coordonnées_géographiques)*). Cela a pour conséquence direct une variation notable de la densité des données, pour les latitude élevés > forte densité, pour les latitude basse (proche équateur) > densité faible ...
Pour un échantillonnage toutes les secondes-d'arc[secondes-d'arc](http://fr.wikipedia.org/wiki/Sous-unités_du_degré) ( 1″ (seconde d'arc) = 1°/3600 = 0,000 277° )en France latitude = ~45° > 21,90m , a l'équateur latitude = 0° > 30,92m
Wiki
====
Via la Nasa (maillage min de 30m (STRM1))
-----------------------------------------
<img src="http://redmine.acolab.fr/attachments/download/89/sample-3d-landscap00.png" height="50%" width="50%" title="Puy de Montchat et de La Vache Z_factor=2" alt="Puy de Montchat">
**[le fichier STL correspondant](http://redmine.acolab.fr/attachments/download/90/sample-3d-landscap_Puy%20de%20Montchat.stl)**
L'explication des données: http://asterweb.jpl.nasa.gov/gdem.asp , le site tuto http://vterrain.org/Elevation/SRTM/ .
**1.** Concrètement, téléchargement sur le FTP : http://e4ftl01.cr.usgs.gov/SRTM/SRTMGL1.003/2000.02.11/
Y choisir le zip adéquat, découpage en fichier de 1° par 1°. Exemple: pour la latitude 45° et la longitude 2°(point Sud-Ouest de la zone), il faut prendre le fichier *N45E002.hgt.zip* et le déziper
**2.** Télécharger et installer le logiciel VTBuilder (http://vterrain.org/Doc/VTBuilder/overview.html). <blockquote> Attention, il se peut que la compilation se passe mal sous Linux... Si c'est le cas, il faudra passer par le site [Terrain2STL](http://jthatch.com). Les étapes 1 et 3 seront inutiles, mais l'on récupèrera des données au format *.stl* (qui est pris en charge par MeshLab) et avec un échantillonage tout les ~90m et des coordonées en degrés.</blockquote> ~90m.</blockquote>
**3.** Dans **VTBuilder**: Menu *Calques>>Import de données>>Relief* (Valider)>> choisir le fichier .hgt
<ul>
<li>1 - Projection cartographique
<blockquote>Le
3.1. le fichier étant en coordonnées géographiques, c.a.d. en degrés, il y a une déformation des distances (on voit un carré), donc on va utiliser une projection pour avoir des coordonnées en mètres.</blockquote>
mètres: Menu <i>Calques *Calques >> Convertir Projection >></i>
<ul>
<li><i>Projection</i>= <b>UTM</b> >>* *Projection*= ***UTM*** (Universal Transversal Mercator)</li>
<li><i>Système Géodésique</i>= <b>World Mercator); *Système Géodésique*= ***World Geodetic System 1984</b> 1984*** (Ellipsoid= WGS 84)</li>
<li><i>Unités Horyzontales</i>= <b>mètres</b></li>
<li><i>Zones</i>= <b>31</b> 84); *Unités Horyzontales*= ***mètres***; *Zones*= ***31*** (... central meridian = 3° *Pour la France*).</li>
</ul>
France*). Puis Valider. (au message "use floating-point values", choisir Oui</li>
<li>2 - Recadrage
<ul>
<li>Zoomer Oui
3.2. Zoomer sur la zone choisi (icône loupe)</li>
<li>Créer loupe); Créer un cadre sur cette zone (icône "Outil Area" [un carrée en pointillé])</li>
<li>Menu <i>Outil pointillé]); Menu *Outil Aire>>Sample Elevation>></i> <i>Sortie</i>= <b>creer Elevation>>* *Sortie*= ***creer un nouveau calque</b>.</li>
</ul>
</li>
<li>3 - calque***.
3.3. Menu *Elévation>> Convert to TIN*.</li>
<li>4 - TIN*.
3.4. Menu *Elévation>> Exporter sous...* >> choisir type PLY puis Valider.</li>
</ul> Valider.
**4.** Ouvrir le fichier .ply avec **[MeshLab](http://meshlab.sourceforge.net)**
<ul>
<li>1 -
4.1. Menu *Show>> View Layer Dialog*</li>
<li>2 - Dialog*
4.2. Dans le gestionnaire de calques: clique-droit sur le calque actuel, et choisir *Duplicate current layer*, puis sélectionner le nouveau calque créer.</li>
<li>3 - Création du socle.
<blockquote>Le but de cette étape est de créer un socle a partir du calque précédemment dupliqué. En effet, pour qu'un modèle soit imprimable, il doit décrire un volume clos (sans trous, sans intersection de face et sans faces dupliquée). A l'aide de *Geometric Function*, on va affecter même altitude a tout les points pour créer une surface plane. </blockquote>
créer.
4.3. Menu *Filters >> Smoothing, Fairing and Deformation >> Geometric Function >>* func x = x ; func y = y ; func z = altitude du socle (par exemple 850). *Apply* puis *Close*. (Note le socle doit être plus bas que le point le plus bas de la zone choisi pour qu'il n'y ai aucune intersection)</li>
<li>4 - intersection)
4.4. Menu *Filters >> Normals, Curvatures and Orientations >> Invert Faces Orientation*.</li>
<li>5 - Orientation*.
4.5. Dans le gestionnaire de calques: clique-droit sur le calque actuel, et choisir *Flatten visible layers*. Cocher tout, *Apply* puis *Close*.</li>
<li>6 - *Close*.
4.6. Menu *Filters >> Remeshing, Simplification and Reconstruction >> Ball Pivoting Surface Reconstruction >>* *Pivoting Ball radius, perc on =* 1 ; *Clustering radius =* 20 ; *Angle Threshold =* 90 >> *Apply*. Normalement, l'algorythme doit commencer a 'clore' le maillaige. Refaire *Apply* après avoir augmenter la valeur *Pivoting Ball radius, perc on =* (pour moi 1 puis 2 puis 3 puis 3.5). Lorsque le mailliage semble être totalement clos, faire *Close*.</li>
<li>7 - *Close*.
4.7. Menu *File >> Save as ... >>* choisir le format ***.stl***, donner un nom, et Enregistrer (boite de dialog suivante: cocher *Binary encoding* puis OK) **FINI**</li>
</ul>
**FINI**
Si le fichier obtenu est trop gros
----------------------------------
On peut alors le simplifier dans **MeshLab** avec les Algorythmes "Remeshing, Simplification and Reconstruction".
Par exemple, j'utilise Menu *Filters >> Remeshing, Simplification and Reconstruction >> Quadratic Edge Collapse Decimation >>* : en mettant le paramètre *Percentage reduction* = 0 (pas de réduction cible), *Quality threshold* = 0.3 (valeur par défault), et en cochant *Planar Simplification*. C'est algo réorganise les faces en supprime dans les zones planes. Il réduit, chez moi, de moitié la taille de mon fichier .stl.
Modifier l'echelle en Z (augmenter l'impression du relief)
----------------------------------------------------------
Dans **MeshLab**:
Menu Filters >> Smoothing, Fairing and Deformation >> Geometric Function >>
<blockquote>
func x = x ; func y = y ; func z = z*Z_factor (Généralement Z_factor = 2, rend bien).
</blockquote>
Apply puis Close.
Autre Source
------------
### Via google map et Terrain2STL (maillage min de ~100m)
<blockquote>
la présentation : http://www.fabbaloo.com/blog/2014/11/16/3d-print-any-landscape-right-now
le site (via google map) : http://jthatch.com (et le code sur GitHub : https://github.com/ThatcherC/Terrain2STL )
>> la taille des mailles précision estimé : ~100m, les coordonnées sont en degré, donc déformation du a la latitude/longitude...
</blockquote>
### Via les données IGN gratuites (maillage min de 75m)
<blockquote>
le site de téléchargement (maillage min de 75m): http://professionnels.ign.fr/bdalti#tab-3
>> les coordonnées ont le bon gout d'être en mètre, dans un système X(est) Y(nord) Z(altitude), mais sont pour toutes la France(181MO pour le maillage 75m)
</blockquote>
Notes
-----
La tailles des maillages suivant les sources est souvent fonction de la latitude. C'est due a un échantillonnage régulier en fonction de coordonnées polaires (on dit *[géographique](http://fr.wikipedia.org/wiki/Coordonnées_géographiques)*). Cela a pour conséquence direct une variation notable de la densité des données, pour les latitude élevés > forte densité, pour les latitude basse (proche équateur) > densité faible ...
Pour un échantillonnage toutes les secondes-d'arc[secondes-d'arc](http://fr.wikipedia.org/wiki/Sous-unités_du_degré) ( 1″ (seconde d'arc) = 1°/3600 = 0,000 277° )en France latitude = ~45° > 21,90m , a l'équateur latitude = 0° > 30,92m