518
edits
m (Link update, hopefully.) |
m (FR final review.) |
||
| Line 1: | Line 1: | ||
{{Main article|CORINE}} | {{Main article|CORINE}} | ||
= ''' | = '''Construire les scènes Europe avec les données SRTM v4, l'occupation des sols Corine et OpenStreetMap''' = | ||
Ceci a pour but de compléter ou d'ajouter des informations | Ceci a pour but de compléter ou d'ajouter des informations à jour sur le tutoriel [[Fr/Utiliser_TerraGear]]. | ||
Note importante : au cas où vous voudriez contribuer aux scènes officielles de FlightGear : certaines données | Note importante : au cas où vous voudriez contribuer aux scènes officielles de FlightGear : certaines sources de données dans ce tutoriel '''ne sont pas compatibles GPL de FlightGear'''. Les scènes créées avec les données d'élévation SRTM 4 du CGIAR (pas d'utilisation commerciale) et la cartographie OSM (licence CC-BY-SA) ne peuvent être diffusées sous les termes de la GPL donc, malheureusement ne peuvent apparaître dans les versions officielles des scènes. | ||
Nous supposerons que vous avez terminé de compiler la version Linux de TerraGear. Pour les instructions de compilation et d'installation voir [[Building terragear-cs in Ubuntu 64]]. Remplacez tous les chemins là où cela est nécessaire. | |||
Remplacez tous les chemins | |||
Première | Première étape après avoir fini de compiler terragear est d'aller dans le fichier '''BuildTiles/Main/main.cxx''' et de s'assurer que '''CPU rlimit''' est un grand nombre. Je propose 600000, cela permettra à fgfs-construct de fonctionner pendant pratiquement une semaine. Si vous ne faites pas cette vérification, '''fgfs-construct''' risque de se terminer avec un message d'erreur après un délai assez court. Soyez donc certain d'éditer les bonnes valeurs, il y en a deux ensembles l'un sous l'autre, les premières ne sont pas utilisées. | ||
Soyez | |||
== '' | == ''Obtenir les données'' == | ||
=== I. | === I. Elévation === | ||
Note : SRTM version 4 est un ensemble de données à jour et gratuit, par CGIAR. Malheureusement, incompatible avec la licence GPL de FlightGear, | Note : SRTM version 4 est un ensemble de données d'élévation mis à jour et gratuit, proposé par CGIAR. Malheureusement, sa licence est incompatible avec la licence GPL de FlightGear, lorsque vous allez utiliser ces données pour la création de scènes, conservez à l'esprit qu'elles ne pourront pas être ajoutées aux versions officielles des scènes. Lorsque vous souhaitez utiliser des données compatibles GPL, pensez à télécharger les données d'élévation de l'USGS (SRTM 3, version 2_1). | ||
SRTM 4 : téléchargez [http://srtm.geog.kcl.ac.uk/portal/srtm41/elevation.kmz ce fichier] et ouvrez-le dans Google Earth. | |||
[http://srtm.geog.kcl.ac.uk/portal/srtm41/elevation.kmz ce fichier] | Dans Lieux Temporaires, sélectionnez Elevation puis choisissez des tuiles de 5x5 degrés ou les sous-tuiles de 1x1 degré. Soyez certain de bien télécharger des fichiers GEOTIFF. Je suggère de faire des zones de 10x10 degrés, soit 4 fichiers. Cela signifie que la compilation des scènes sera plus longue, mais sur l'ensemble le processus est plus efficace. Vous comprendrez pourquoi plus loin. | ||
Dans Lieux Temporaires, sélectionnez | |||
Soyez | |||
=== II. Landmass === | === II. Landmass === | ||
VMAP0 | Obtenez le landmass VMAP0 [http://mapserver.flightgear.org/download.psp ici] (v0_landmass) pour les zones de terrain de 10x10 degrés que vous avez sélectionné. Sinon, utilisez d'autres sources pour les zones de landmass (lesquelles ?). | ||
=== III. Corine | === III. Occupation des sols Corine === | ||
Obtenez l'ensemble Corine complet [http://www.eea.europa.eu/data-and-maps/data/clc-2006-vector-data-version ici] | |||
=== IV. Données pour routes, chemins de fer, et | === IV. Données pour les routes, chemins de fer, et trait de côte === | ||
Note : malheureusement, encore | Note : malheureusement, les données OSM ne sont pas encore compatibles avec la licence GPL de FlightGear. Si vous utilisez des données OSM pour la création de scènes, elles ne peuvent pas encore être ajoutées aux versions officielles des scènes. Mais, OSM change sa licence cette année, donc soyez attentifs, car la nouvelle sera compatible avec notre licence GPL. | ||
Téléchargez les fichiers de formes seulement pour les pays à l'intérieur de la tuile 10x10 [http://download.geofabrik.de/osm/ ici] | Téléchargez les fichiers de formes seulement pour les pays à l'intérieur de la tuile 10x10 [http://download.geofabrik.de/osm/ ici]. | ||
Vous | Vous obtiendrez les routes et les chemins de fer. Pour le trait de côte, rendez-vous sur [http://downloads.cloudmade.com/ ce site]. Téléchargez les mêmes fichiers pour votre pays, mais seul le trait de côté sera utilisé les ajustements du landmass. | ||
D'autres sources de données peuvent être trouvées [http://wiki.openstreetmap.org/wiki/Planet.osm ici]. | |||
== Préparation des données == | == Préparation des données == | ||
=== I. Elévation === | === I. Elévation === | ||
En supposant que vous | En supposant que vous suivez la structure du répertoire de l'article [[Using TerraGear]], lancez '''srtmchop''' sur chaque fichier TIF à partir de data/srtm. | ||
Il y a un piège ici : work/SRTM-3 doit être nommé exactement comme ça. Sinon,'''genapts''' ne trouvera pas l'élévation requise pour les surfaces d'aéroports. Ce nom est | Il y a un piège ici : work/SRTM-3 doit être nommé exactement comme ça. Sinon,'''genapts''' ne trouvera pas l'élévation requise pour les surfaces d'aéroports. Ce nom est codé en dur dans le programme. | ||
Je propose de démarrer '''srtmchop''' manuellement pour chaque fichier, pour | Je propose de démarrer '''srtmchop''' manuellement pour chaque fichier, pour contrôler s'il y a des erreurs. Ne pas tenir compte des avertissements générés, quelques données d'en-têtes peuvent ne pas être décodées correctement, mais cela n'affectera pas le résultat. | ||
Sur certains fichiers TIF, '''srtmchop''' | Sur certains fichiers TIF, '''srtmchop''' peut se terminer avec un message d'erreur free(). Nous n'avons pas encore déterminé ce qui cause cette erreur uniquement pour certains fichiers. Jusqu'à ce qu'un correctif soit intégré dans GIT, vous pouvez lancer srtmchop au travers de '''valgrind''' : | ||
valgrind --leak-check=yes ./srtmchop <file> <output dir> | valgrind --leak-check=yes ./srtmchop <file> <output dir> | ||
Ceci empêchera le programme de quitter et le travail sera fait, mais dix fois plus lentement. | |||
Une fois la génération des fichiers arr terminée, vous pouvez démarrer '''terrafit.py''' : | |||
./terrafit.py -m 50 -x 4000 -e 2 work/SRTM-3 | ./terrafit.py -m 50 -x 4000 -e 2 work/SRTM-3 | ||
=== II. Aéroports === | === II. Aéroports === | ||
:Voici une étape fastidieuse. '''genapts''' doit être lancé pour chaque aéroport dans votre zone de 10x10 degrés. Copiez '''apt.dat.gz''' | :Voici une étape fastidieuse. '''genapts''' doit être lancé pour chaque aéroport dans votre zone de 10x10 degrés. Copiez '''apt.dat.gz''' de fgdata/Airports vers data/airports. Décompressez-le. Pour savoir rapidement quels aéroports sont dans votre zone, ouvrez [http://bbs.keyhole.com/ubb/ubbthreads.php?ubb=download&Number=77221&filename=168950-ICAO.kmz ce fichier] dans Google Earth et retirez tous les autres marqueurs, vérifiez aussi Affichage-> Grille dans le menu. | ||
[http://bbs.keyhole.com/ubb/ubbthreads.php?ubb=download&Number=77221&filename=168950-ICAO.kmz | |||
Il est préférable de faire une liste et de | Il est préférable de faire une liste et d'y aller de manière itérative pour chacun des éléments. Assurez-vous que vous avez tous les fichiers .arr et .fit dans work/SRTM-3. | ||
#!/bin/sh | #!/bin/sh | ||
| Line 63: | Line 59: | ||
done | done | ||
=== III. Occupation des sols === | |||
=== III. | Ouvrez d'abord les fichiers SRTM comme des couches raster dans QGis. Editez les propriétés du projet, pour paramétrer CRS transformation à on the fly. | ||
:SRTM servira d'aide au découpage, et vous pourrez découper les autres couches à la taille voulue. | :SRTM servira d'aide au découpage, et vous pourrez découper les autres couches à la taille voulue. | ||
Éditez les propriétés pour chaque couche SRTM et réglez la transparence bien au dessus de 50% de façon à voir les autres couches. | Éditez les propriétés pour chaque couche SRTM et réglez la transparence bien au dessus de 50% de façon à voir les autres couches. | ||
Ensuite, ouvrez chaque fichier de forme Corine et assurez vous que la couche a réellement des éléments dans votre zone. Toutes les couches n'en ont pas. Utilisez l'outil | Ensuite, ouvrez chaque fichier de forme Corine et assurez-vous que la couche a réellement des éléments dans votre zone. Toutes les couches n'en ont pas. Utilisez l'outil de sélection pour sélectionner un rectangle autour des limites SRTM. Faites un clic droit sur la couche et choisissez Save Selection As. | ||
:Après avoir découpé toutes les couches nécessaires, ouvrez-les de nouveau, et re-projetez les en WGS84. Faites cette opération à partir du menu Vector -> Data management tools-> Export to new projection. Cette étape peut ne pas être nécessaire, comme j'ai pu en déduire du code source, mais il est plus facile de travailler avec toutes les données sur la même projection. | |||
: | :Ensuite, il faudra déplacer tous les fichiers d'une couche dans son propre répertoire dans le répertoire data/shapefiles. Vous pouvez faire correspondre les classes Corine de cette façon également. Par exemple, j'ai mis tous les fichiers de forme pour "Green urban area" dans "DeciduousBroadCover" et ainsi, les zones vertes urbaines sont remplies d'arbres. Vous pouvez mettre plusieurs fichiers de formes à l'intérieur d'un répertoire data/shapefile/*** et ils seront traités avec le même matériau. Vous pouvez aussi être créatif avec les routes également, mettre des polygones Corine pour les routes, les voies chemins de fer etc.. dans GrassCover ou DeciduousForest, les routes OSM auront ainsi une zone autour d'elles remplie d'arbres ou d'herbe. | ||
:Un problème que j'ai rencontré avec Corine est que "Continuous urban fabric" qui est lié à Urban n'est pas présent dans ma zone. Pour éviter d'avoir seulement Towns, vous pouvez créer une nouvelle couche dans QGis et ouvrir la couche "Discontinuous urban fabric" (112) en même temps. Choisissez le mode d'édition pour les deux couches, allez dans options et paramétrez le programme pour ne montrer que les vecteurs à partir de la zone choisie. Ensuite, sélectionnez les villes que vous aimeriez voir associées à Urban en maintenant CTRL appuyé. Une fois que cela est réalisé, coupez les polygones sélectionnés, et collez-les dans la nouvelle couche. Vous avez maintenant Town et Urban en même temps. | |||
:Vous pouvez maintenant ouvrir routes et chemins de fer à partir de OSM | :Vous pouvez maintenant ouvrir les routes et les voies de chemins de fer à partir de OSM et vous assurer que tout est correcte et que CRS est positionné à WSG84. | ||
Une grosse difficulté vient du fait que '''fgfs-construct''' ne peut gérer les réseaux de rues volumineux. Pour les éliminer et réduire la complexité des scènes, ouvrez le tableau des attributs du fichier de forme. Cherchez les fonctionnalités du type "residential", "track", "path", "pedestrian", "footway", "service", "steps" et autres fonctionnalités pas importantes. Une fois sélectionnées, effacez ces lignes pour simplifier le fichier de forme. Le fait d'effacer ces fonctionnalités peut prendre du temps si leur nombre est élevé. Pendant ce temps, QGis peut apparaître gelé. Si vous voulez aller plus vite (en particulier dans le cas de gros fichiers de forme), vous pouvez vous servir de l'utilitaire ogr2ogr pour sélectionner uniquement la forme que vous voulez conserver : | |||
./ogr2ogr -where "type in ('motorway','motorway_link','primary','primary_link','secondary','secondary_link','tertiary','tertiary_link','trunk','trunk_link','road','rest_area')" roads_new.shp roads.shp | ./ogr2ogr -where "type in ('motorway','motorway_link','primary','primary_link','secondary','secondary_link','tertiary','tertiary_link','trunk','trunk_link','road','rest_area')" roads_new.shp roads.shp | ||
Essayez de simplifier le fichier de forme Road autant que vous pouvez, en éliminant les zones à grande densité de rues. Vous diminuerez ainsi votre temps de construction. | Essayez de simplifier le fichier de forme Road autant que vous le pouvez, en éliminant les zones à grande densité de rues. Vous diminuerez ainsi votre temps de construction. De toutes façons, les routes seront tout de même simulées par le shader urbain. Si vous devez corriger le trait de côte, ouvrez v0_landmass dans QGis et le shapefile du trait de côte à partir d'OSM. En mode édition, vous pouvez modifier l'occupation du sol pour la rendre conforme avec les données OSM. | ||
Si vous devez corriger le | |||
En mode édition, vous pouvez modifier | |||
Lorsque tous les fichiers forme sont rangés dans le répertoire, vous pouvez lancer '''ogr-decode''' et | Lorsque tous les fichiers de forme sont correctement rangés dans le répertoire, vous pouvez lancer '''ogr-decode''' et paramétrer les matériaux. Mais d'abord, vous pourrez avoir à éditer default_priorities.txt et usgsmap.txt dans share/TerraGear pour ajouter les occupations des sols manquantes. Vérifiez avec materials.xml et [[CORINE to materials mapping]] | ||
Sur un polygone normal de fichiers forme, '''ogr-decode''' prend les paramètres habituels: | Sur un polygone normal de fichiers de forme, '''ogr-decode''' prend les paramètres habituels : | ||
./ogr-decode --max-segment 500 --area-type Default work/Landmass data/shapefiles/v0_landmass | ./ogr-decode --max-segment 500 --area-type Default work/Landmass data/shapefiles/v0_landmass | ||
Pour routes et chemins de fer, ajoutez une troisième option: '''--line-width 10''' | Pour les routes et les voies de chemins de fer, ajoutez une troisième option : '''--line-width 10'''. Les rivières seront couvertes par les polys Corine, donc ne vous en faites pas. | ||
Les | |||
Pour éviter | Pour éviter l'apparition de mauvaises données qui pourraient entraîner l'arrêt de ogr-decode, vous pouvez corriger le fichier suivant en deux endroits: | ||
'''terragear-cs/src/Lib/Polygon/chop-bin.cxx''' | '''terragear-cs/src/Lib/Polygon/chop-bin.cxx''' | ||
: | :Remplacez les lignes 222 et 375 par : | ||
if ( (dx > 2880) || (dy > 1440) ) | if ( (dx > 2880) || (dy > 1440) ) | ||
| Line 107: | Line 94: | ||
return; | return; | ||
Les données | Les mauvaises données seront ignorées et ogr-decode continuera. Afin d'utiliser au maximum de leur potentiel les données de routes d'OSM, vous pouvez aussi utiliser des commandes proches de requêtes SQL sur les données, en utilisant l'option '''--where'''. Par exemple : | ||
./ogr-decode --max-segment 500 --line-width 12 --area-type Freeway --where "TYPE=trunk" work/Freeway data/shapefiles/road | ./ogr-decode --max-segment 500 --line-width 12 --area-type Freeway --where "TYPE=trunk" work/Freeway data/shapefiles/road | ||
| Line 118: | Line 104: | ||
./ogr-decode --max-segment 500 --line-width 7 --area-type Road --where "TYPE!=primary AND TYPE!=motorway AND TYPE!=trunk" work/Road data/shapefiles/road | ./ogr-decode --max-segment 500 --line-width 7 --area-type Road --where "TYPE!=primary AND TYPE!=motorway AND TYPE!=trunk" work/Road data/shapefiles/road | ||
Ce sont les routes et autoroutes proposées pour l'Europe du | Ce sont les routes et autoroutes proposées pour l'Europe du sud-est. Votre kilométrage local peut varier. Actuellement, Road et Freeway correspondent au même matériau dans materials.xml, mais cela peut changer dans le futur, donc construisez votre scène en gardant cette idée en tête. | ||
Selon les lignes | Selon les lignes qui ont été marquées dans les données OSM, vous pourriez même extraire des segments de pont et leur assigner une occupation de sol spécifique, pouvant ensuite avoir le modèle physique d'un pont (ceci peut demander un codage en dur pour assurer une orientation convenable). | ||
Afin de procéder | Afin de procéder aux correspondances de votre propre occupation des sols personnalisée, vous devriez également avoir à éditer les fichiers suivants pour ajouter vos propres données : | ||
'''install/terragear-cs/share/TerraGear/default_priorities.txt''' and | '''install/terragear-cs/share/TerraGear/default_priorities.txt''' and | ||
'''install/terragear-cs/share/TerraGear/usgsmap.txt''' | '''install/terragear-cs/share/TerraGear/usgsmap.txt''' | ||
(les chemins locaux peuvent varier selon votre installation | (les chemins locaux peuvent varier selon votre installation) | ||
=== Processus de construction === | === Processus de construction === | ||
Si toutes les données ont été préparées sans erreur, vérifiez chaque répertoire | Si toutes les données ont été préparées sans erreur, vérifiez dans chaque répertoire présent dans /work et effacez les dossiers qui ne correspondent pas à vos tuiles de 10x10 degrés. C'est le moment de lancer fgfs-construct et de générer la scène. Cela peut être très long, en fonction de votre machine, donc lancez-le pendant la nuit. | ||
C'est le moment de lancer fgfs-construct et de | |||
./fgfs-construct --work-dir=./../work --output-dir=./../output --lon=XX --lat=XX --xdist=5 --ydist=5 \ | ./fgfs-construct --work-dir=./../work --output-dir=./../output --lon=XX --lat=XX --xdist=5 --ydist=5 \ | ||
| Line 140: | Line 124: | ||
Road Railroad Rock Sand ShrubCover SRTM-3 Stream Town Urban Freeway | Road Railroad Rock Sand ShrubCover SRTM-3 Stream Town Urban Freeway | ||
Le processus complet peut prendre 2 | Le processus complet peut prendre 2 à 3 jours. Cependant, il reste possible d'obtenir l'Europe entière en 1 à 2 mois. | ||
{{Terra}} | {{Terra}} | ||
edits