Projet

Général

Profil

Actions

Wiki » Historique » Révision 6

« Précédent | Révision 6/8 (diff) | Suivant »
Baptiste Pelouas, 02/06/2015 09:10


Wiki

Via la Nasa (maillage min de 30m (STRM1))

le fichier STL correspondant

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). Attention, il se peut que la compilation se passe mal sous Linux... Si c'est le cas, il faudra passer par le site Terrain2STL. 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.

3. Dans VTBuilder: Menu Calques>>Import de données>>Relief (Valider)>> choisir le fichier .hgt

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: Menu *Calques >> Convertir Projection >>* *Projection*= ***UTM*** (Universal Transversal Mercator); *Système Géodésique*= ***World Geodetic System 1984*** (Ellipsoid= WGS 84); *Unités Horyzontales*= ***mètres***; *Zones*= ***31*** (... central meridian = 3° *Pour la France*). Puis Valider. (au message "use floating-point values", choisir Oui

3.2. Zoomer sur la zone choisi (icône loupe); Créer un cadre sur cette zone (icône "Outil Area" [un carrée en pointillé]); Menu *Outil Aire>>Sample Elevation>>* *Sortie*= ***creer un nouveau calque***.

3.3. Menu *Elévation>> Convert to TIN*.

3.4. Menu *Elévation>> Exporter sous...* >> choisir type PLY puis Valider.

4. Ouvrir le fichier .ply avec MeshLab

4.1. Menu *Show>> View Layer 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.

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)

4.4. Menu *Filters >> Normals, Curvatures and Orientations >> Invert Faces Orientation*.

4.5. Dans le gestionnaire de calques: clique-droit sur le calque actuel, et choisir *Flatten visible layers*. Cocher tout, *Apply* puis *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*.

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**

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 >>

func x = x ; func y = y ; func z = z*Z_factor (Généralement Z_factor = 2, rend bien).

Apply puis Close.

Autre Source

Via google map et Terrain2STL (maillage min de ~100m)

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...

Via les données IGN gratuites (maillage min de 75m)

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)

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

Mis à jour par Baptiste Pelouas il y a presque 9 ans · 6 révisions