Fr/Utiliser TerraGear

From FlightGear wiki
Revision as of 19:10, 18 July 2012 by F-EFEL (talk | contribs) (Created page with " thumb|Organigramme de TerraGear Le projet du logiciel TerraGear prend en charge FlightGear et crée des fichiers utilisés pour f...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Organigramme de TerraGear

Le projet du logiciel TerraGear prend en charge FlightGear et crée des fichiers utilisés pour figurer le relief et la texture de la terre, incluant aéroports, villes, champs, forêts, rivières, routes etc...TerraGear lit ces fichiers de données, sur l'élévation du sol, les localisations et les dispositions des aéroports, les données de la couverture géographique etc..., afin de créer des scènes que va utiliser Flightgear pour représenter la surface de la planète.

Par commodité, la plupart des utilisateurs de Fg téléchargent les fichiers plug-and-play à partir du serveur de scènes de FlightGear, ou utilisent TerraSync pour télécharger automatiquement les scènes nécessaires. Mais souvent, on peut vouloir utiliser TerraGear pour générer ses propres fichiers terrain, plutôt que les scènes standard de FlightGear.

Par exemple, si vous utilisez TaxiDraw pour modifier/améliorer un taxiway/agencement d'apron d'aéroport, vous aurez envie de voir à quoi ressemble cet aéroport modifié pour décider si le résultat vous convient. Peut-être la scène officielle sera-t-elle trop détaillée pour votre machine trop lente, dans ce cas, il vous faudra un terrain utilisant un modèle digital d'élévation (DEM) avec faible résolution, pour diminuer le nombre de polygones, et améliorer ainsi votre fréquence-image. Ou peut-être avez vous une machine trés rapide, et vous aurez envie de construire votre terrain en données de vecteur haute résolution (vmap1, Tiger, osm) pour avoir des routes/rivières plus réalistes. Pour toutes ces raisons, c'est une bonne idée d'apprendre à se servir de Terragear.

Acquérir TerraGear

Vous pouvez le construire vous-même, ou télécharger un binaire pré-compilé, plus facile et recommandé pour les débutants.

  • Option 1 - Télécharger TerraGear pré-compilé (recommandé aux débutants ) sur Windows
    1. Télécharger le plus récent TerraGear à partir du Serveur de Construction.
    2. Créer ou choisir un répertoire pour les outils TerraGear.
    3. Dé-zipper le paquet, et placez les fichiers de archive/install/msvc100/TerraGear/bin dans un sous-répértoire nommé Terragear/ dans le répertoire de base.
  • Option 2 - Compiler TerraGear à partir de la source code, comme expliqué dans cet article.

Note: Vous pouvez avoir besoin de default_priorities.txt à partir du dépôt Git ou à partir de l'archive du Serveur de Construction (dans le sous-répertoire archive/install/msvc100/TerraGear/share). Voir lien du forum pour les détails.

Outil GUI

Un TerraGear GUI est disponible pour ceux qui n'utilisent pas ou ne savent pas utiliser les options de la ligne de commande.

Utilisation de TerraGear

D'abord, choisir les limites de la scène que vous voulez construire, en termes de latitude et de longitude. Plus la zone sera petite, et moins vous aurez de données à entrer et de temps CPU à passer. Par exemple, si vous voulez juste générer une nouvelle disposition d'aéroport à 12.3W 34.4N, mettez simplement 12W 34N et 13W 35N.

Notez la "bounding box" (longitude et latitude minimum et maximum) pour la scène que vous voulez générer. Rappelez vous que West et South sont négatifs - i.e. 4W 10S doit être -4, -10. Ne confondez pas, sinon la scène ou l'aéroport que vous créez se retrouvera de l'autre côté de la planète!

Vous aurez affaire à toutes sortes de données différentes, en formats variés. Créez un nouveau répertoire pour ce travail, et à l'intérieur créez le sous-répertoire suivant:

  • data/ - pour les données brutes et pré-établies (ex fichiers élévation)
  • output/ - pour les fichiers de scènes que vous créerez
  • work/ - pour les données qui ont été traitées (ex par decode-forme), prêtes à entrer dans la scène

Acquérir et traiter les données

Terragear utilise trois sortes d'informations différentes pour générer une scène:

  1. L'élévation du terrain (fournie par SRTM)
  2. La localisation et la disposition des aéroports (fournis par apt.dat ou un habituel .dat)
  3. Si une lat/lon donnée est la mer, la terre, une ville, la forêt, une route, un chemin de fer (fourni par VMAP0, CORINE etc. ou fichiers de forme habituels

Cet article décrit comment obtenir et traiter ces types de données dans l'ordre, et les servir ensemble, pour que FlightGear les utilise. L'ordre de ces étapes est important. Par exemple, l'étape de donnée d'un aéroport a besoin de la donnée d'élévation afin qu'il soit à la bonne hauteur, ainsi, vous commencerez par préparer la donnée d'élévation.

Remarque pour l'inclusion des scènes officielles de FlightGear, toutes les données must viennent des GNU GPL sources compatibles!

Données d'élévation

les meilleures données d'élévation actuellement disponibles viennent de Shuttle Radar Topography Mission (SRTM). Il y a deux tyoes de données SRTM:

  • Haute précision résolution 1-arcsecond, ou SRTM-1, pour les USA
  • Précision moindre 3-arcsecond ,ou SRTM-3, pour le reste du monde

A partir de maintenant, nous supposerons que vous utilisez les données SRTM-3. Sauf avis contraire, le processus est identique pour SRTM-1

Vous pouvez télécharger les données appropriées de http://dds.cr.usgs.gov/srtm/version2_1/. Vous voulez tous les fichiers .hgt.zip couvrant la région qui vous intéresse. Selon la taille de votre scène, cela peut faire beaucoup. Téléchargez les à data/SRTM-1/(or SRTM-3/SRTM-30 selon le cas) dans votre répertoire de base. (Genapts cherche les répertoires de données d'élévation codés en dur et connus, dans son répertoire de travail. SRTM-30 est l'un d'eux, c'est le moins déroutant dans cette liste. Note: W.E.F. 31 juillet 2010, les outils genapts cherchent maintenant aussi les répertoires SRTM-1/SRTM-3. Si vous utilisez une version plus ancienne, fournissez des répertoires utilisant --dem-path)

Maintenant, nous avons les données, il faut les convertir pour qu'elles puissent servir à TerraGear. D'abord, dézippez chacun des fichiers .hgt. Ensuite, ouvrez la ligne de commande (Windows: Start > Run > cmd.exe) et changez dans le répertoire de base (cd .../.../TerraGear).

  • NOTE: Si vous devez créer un batch-file, remplacez %f avec %%f, voir [1]
  • NOTE: Pour les données SRTM-1, remplacez le 3 par un 1 dans la première partie de hgtchop

Pour Windows:

for %f in (.\data\SRTM-3\*.hgt) do .\Terragear\hgtchop.exe 3 %f .\work\SRTM-3

ou

for %f in (.\data\SRTM-3\*.hgt) do .\Terragear\hgtchop.exe 3 .\data\SRTM-3\%f .\work\SRTM-3

Pour Linux:

for i in $PWD/data/SRTM-3/*.hgt; do ./Terragear/hgtchop 3 $i $PWD/work/SRTM-3; done

Maintenant, vous allez avoir une quantité de fichiers .arr.gz dans votre répertoire de travail /SRTM-3/ . Il faut les convertir au format .fit.gz. Lancez encore la ligne de commande avec

  • NOTE: l'espace et le point à la fin sont importants!

Pour Windows:

.\Terragear\terrafit.exe work\SRTM-3

Pour Linux:

./Terragear/terrafit work/SRTM-3

Données d'aéroports

Maintenant que nous avons les données d'élévation, nous pouvons générer notre aéroport. D'abord, créons un répertoire data/airports/ et copions le dans notre fichier apt.dat. Soit directement du paquet de données FlightGear (bien que vous deviez le dé-ziper), soit un de ceux que vous avez modifié avec TaxiDraw.

La commande pour créer les aéroports est "genapts". Lancez-la sans rien d'autre, pour voir les options des différentes lignes de commande.

Si c'est simplement lancé avec apt.dat spécifié et le répertoire de travail, cela génerera des aménagements d'aéroports pour chacun de ceux contenus dans le fichier, ce qui peut prendre très longtemps.

Si vous créez juste un seul aéroport, et que vous connaissez l' ICAO ID (p.ex. KSFO, EGPH, EG32), l'utilisation est comme suit à partir de votre répertoire racine de scènes (i.e. le répertoire au dessus vos données). Si vous utilisez un fichier apt.dat avec un seul aéroport dessus, vous devez omettre le "--airport" parameter.

genapts --input=data/airports/apt.dat --work=./work --airport=<AIRPORT_ID>

Si vous générez davantage de scènes, alors vous pouvez spécifier la longitude et latitude minimum et maximum.

Genapts va créer deux sous-répertoires dans votre répertoire de travail:

  • AirportArea/
  • AirportObj/

Ils contiennent les définitions de la disposition de l'aéroport, et de certains objets connexes (e.g. windsocks).

Données d'utilisation du terrain

La dernière donnée nécessaire avant de générer est celle de l'utilisation du paysage (landuse). En général, elle provient de données VMAP0 installées comme fichiers-formes venant du mapserver de données de scènes, mais d'autres sources peuvent aussi être utilisées.

Les données peuvent être divisées en différents types:

  • Landmass sépare la terre de la mer. C'est utilisé comme masque pour les autres données. Le plus couramment utilisé est le VMAP0 Landmass, mais GSHHS peut aussi servir.
  • Land use data: definit si un morceau de terrain est forêt, zone urbaine, sable, pierres, glaciers etc. Ce sont en général des données VMAP0, definies comme polygones.
  • Line data: comprend chemins de fer, rivières, routes. Typiquement VMAP0, mais aussi Open Street Map pour les routes.
  • Point data: est actuellement utilisé seulement pour la définition des villes.

Le moyen le plus facile pour avoir ces données est de télécharger à partir du magnifique MapServer les fichiers formes pour une zone de scène donnée. Cliquez sur le lien "Download Shapefiles" (ou allez directement à: http://mapserver.flightgear.org/download.psp). Entrez dans la bounding box de la scène que vous désirez générer, sélectionnez le type de donnée fichier-formes que vous voulez, et cliquez sur download. Pour les scènes basiques, prenez tout ce qui est listé sous VMap0 (avec prefixe v0_).

Téléchargez chaque fichier-formes dans un répertoire séparé (!) data/shapefiles/.... Ainsi, pour v0_landmass, vous finirez avec data/shapefiles/v0_landmass/v0_landmass.shp etc.

Vous pouvez passer ces fichiers-formes dans un éditeur GIS tel que QGIS ou GRASS pour voir et éditer. Vous vérifierez ainsi que vous avez les bons fichiers. Après, vous pourrez expérimenter en remplaçant divers fichiers-formes par d'autres versions (GSHHS pour la côte, OSM pour les routes etc.).

L'étape suivante décode les fichiers-formes au format TerraGear en utilisant la commande ogr-decode .

Il y a trois importants arguments de ligne de commande pour ogr-decode:

  • le répertoire de destination pour les données décodées
  • la localisation du répertoire de fichiers-formes
  • le type du matériel

Chaque fichier-formes correspond avec un fichiers materials.xml. La cartographie est assez évidente. Par exemple, v0_mixedcroppasturecover maps to MixedCropPastureCover. Notez que les types matériel sont sensibles à la casse, et ainsi, c'est bien de se référer au fichier $FG ROOT/materials.xmlpour vérifier. L'exception est v0_landmass, qui DOIT être régistré sur le type défaut.

En plus, il y a une quantité d'arguments optionnels pour indiquer les données de largeur de ligne (pour routes, rivières, voies de chemin de fer), quelle grandeur pour les données point (pour les villes) et quelle peut être la plus longue ligne droite.

Par exemple, pour décoder le fichier-formes v0_landmass, vous entrez la commande suivante:

ogr-decode --max-segment 500 --area-type Default work/Landmass data/shapefiles/v0_landmass

Pour créer des rivières de 10m de large

ogr-decode --max-segment 500 --line-width 10 --area-type Stream work/Stream data/shapefiles/v0_stream

Pour générer des villes d'environ 1km

ogr-decode --point-width 500 --area-type Town work/Town data/shapefiles/v0_town

Lancez cette commande pour chaque fichier-formes.

Génerer des scènes

Vous avez maintenant un répertoire de travail, avec des sous-répertoires comme:

AirportArea (aire d'aéroport)
AirportObj (Objet d'aéroport)
Bog
DryCropPastureCover (Couverture paturage récolte-sèche
EvergreenBroadCover (Couverture toujours verte)
GrassCover (couverure herbe)
IrrCropPastureCover (couverture paturage moisson)
Lake (lac)
Landmass (masse de terrain)
Marsh (marais)
MixedCropPastureCover (couverture mélangée moisson paturage)
MixedForestCover (couverure forêt variée)
Railroad (voie ferrée)
Road (route)
Sand (sable)
ScrubCover (couverture broussailles)
Shared (partagé)
SRTM-3
Stream (rivière)
Town (ville)
Urban (zone urbaine)

Nous pouvons maintenant générer la scène, par la commande fgfs-construct. Lancez la commande avec --helppour obtenir les informations de marche.

Nous avons à définir:

  • Les répertoires de tâche (--work-dir) et de sortie (--output-dir) .
    • Note au sujet du répertoire de sortie: il doit pointer vers Terrain/ directory, sinpn, les versions récentes FlightGear seront incapables de charger le terrain.
  • Le centre de la scène que nous voulons générer (--lat, --lon).
  • Le rayon (--xdist, --ydist) à partir duquel on génère.
  • Tous les répertoires travail à inclure dans la scène.

Par exemple:

fgfs-construct --work-dir=./work --output-dir=./output/Terrain --lon=55 --lat=60 --xdist=3 --ydist=3 AirportArea SRTM-3 AirportObj Stream Bog IrrCropPastureCover Town Lake Urban Landmass Railroad DryCropPastureCover Road EvergreenBroadCover Marsh Sand MixedCropPastureCover ScrubCover GrassCover MixedForestCover

Ceci terminé, le répertoire sortie contiendra un sous-arbre scène. Pointez le en mettant soit $FG_SCENERY ou en utilisant la ligne de commande --fg-scenery vers fgfs, et testez votre nouvelle scène!

Incidents

Ci-dessous une liste de problèmes courants et leur solutions. Dans le doute, Google. La plupart des problèmes ( en particulier lors de la compilation de TerraGear) ont déjà été évoqués:

  • Accidents dans genapts. Quelquefois, genapts se plante avec certains aéroports. Dans ce cas, essayez de relancer avec --start-id pour récupérer l'aéroport défaillant, et --nudge pour essayer de remettre les calculs dans la bonne voie.
  • fgfs-construct détruit. Le processus fgfs-construct peut s'auto-détruire si il consomme trop de ressources système. l'augmentation des valeurs pour setrlimit dans src/BuildTiles/Main/main.cxx est la meilleure solution.
  • Les aéroports apparaissent au milieu de trous, ou il y a des espaces entre les aéroports et la scène. Ceci arrive lorsque genapts est incapable de trouver la donnée d'élévation correcte, ou la donnée d'élévation a changé entre le lancement de genapts et le shape-decode. Essayez de générer un seul aéroport dans votre zone de scène utilisant genapts, surveillez la sortie. En particulier, soyez sûr qu'il y a un répertoire travail enI/SRTM-3 .
  • Seuls les aéroports apparaissent dans la scène. Trois causes typiques:
    • Vous n'avez pas téléchargé les fichiers-formes corrects de la zône.
    • Vous n'avez pas lancé shape-decode sur le fichier-forme v0_landmass par défaut
    • Vous n'avez pas inclus les répertoires corrects dans fgfs-construct.
  • la scène générée contient des données provenant des fichiers-formes. Si vous éditez des fichiers-formes, vous devez effacer le sous-répertoire de travail approprié avant de lancer shape-decode. Sinon, vos changements seront superposés à ceux qui existent déjà.
  • la scène entière est plate, et au niveau de la mer. C'est parce que vous n'avez pas entré les données d'élévationdans vutre commande fgfs-construct. Assurez vous qu'il y a un répertoire STRM-3 dans la ligne de commande.
  • Tout terrain copie le matériel d'un fichier-formes. Vous avez probablement oublié de mettre chacun des fichiers-formes téléchargés dans un répertoire séparé à l'intérieur du répertoire Data/shapefiles.