Fr/Osm2city.py

From FlightGear wiki
Revision as of 09:50, 30 January 2016 by F-ojac (talk | contribs) (Initial import.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Installation sous Windows

Le mode opératoire ci-dessous est basé sur Windows 10, mais devrait être applicable pour les autres versions de ce système d'exploitation.

Installation de Python

Python est l'interpréteur qui permettra d'exécuter les commandes de Osm2city.py pour générer les objets. Nous l'installerons par exemple dans le répertoire D:\Python27. Quand vous aurez chargé les modules complémentaires, fichiers .whl, il faudra les compiler pour les ajouter à Python. Voici la syntaxe pour installer un module, une ligne pour chaque :

..\..\scripts\pip install networkx-1.10-py27-none-any.whl
..\..\scripts\pip install networkx-1.10-py3-none-any.whl
..\..\scripts\pip install networkx-1.9.1-py2.py3-none-any.whl

Vous pouvez gagner du temps en les intégrant dans un fichier de commandes : se positionner dans le répertoire Python27\lib\site-package où se trouvent les modules chargés et exécuter la commande :

dir /B *.whl>compile.cmd

Cela va créer une ligne avec le nom de chaque fichier .whl dans un fichier nommé compile.cmd . Editer le fichier et ajouter ..\..\scripts\pip install au début de chaque ligne. Enregistrer et exécuter le fichier de commandes : cela créera un répertoire pour chaque module. Vous aurez des erreurs car certains modules ne sont pas pris en charge par Windows, mais ce n'est pas grave.

Installation de osm2city et osm2city-data

Vous pouvez régler le PYTHONPATH ou gérer les appels en indiquant le chemin des exécutables dans un script. Ici ils sont installés sous la racine du disque, d:\osm2city et d:\osm2city-data. Voici les commandes pour créer les liens symboliques pour les répertoires des textures sous Windows en étant dans le répertoire d:\osm2city :

MKLINK /D /J .\tex ..\osm2city-data\tex
MKLINK /D /J .\tex.src ..\osm2city-data\tex.src

Cela vous donnera l'arborescence indiquée dans le wiki.

Installation de FGElev

Vous aurez besoin du programme fgelev.exe pour réaliser le calcul des élévations. Le wiki indique qu'il est fourni dans les versions de FG supérieures à 3.3. Si vous ne le trouvez pas dans la version 3.4, chargez une version 3.6 RC ou supérieure qui l'intègrent.

Installation de wget

Avant de pouvoir télécharger en masse les données OSM, vous devrez installer wget pour Windows. Ici il est installé dans d:\wgetwin-1_5_3_1-binary Dans ce répertoire, créez un sous-répertoire download dans lequel vous chargerez les données OSM avec un fichier de commande getosm.cmd dont le contenu est, par exemple :

..\wget -O buildings.osm http://www.overpass-api.de/api/xapi?*[bbox=0.5,46.75,0.75,46.875]

Il suffira de changer les coordonnées de la tuile dans bbox= pour récupérer le fichier buildings.osm de la tuile voulue. Dans ce même répertoire download, créez le fichier params.ini avec la commande

d:\python27\python.exe D:\osm2city\parameters.py -d>params.ini

Utilisation

Créez un répertoire pour la tuile sous d:\osm2city, exemple d:\osm2city\LFBI et déplacez le fichier buildings.osm dedans. Copiez le fichier params.ini créé ci-dessus dans ce dossier et configurez-le comme indiqué dans le wiki. Le paramètre ELEV_MODE a été laissé en "FgelevCaching" et n'a pas posé de souci. Créez un répertoire Output sous votre répertoire de tuile et configurez la sortie dedans : osm2city

PATH_TO_OUTPUT = " d:\osm2city\LFBI \Output"

En fin, il faut exécuter le script osm2city.py pour générer les bâtiments de la tuile. Créez un fichier de commandes, run.cmd, dans osm2city:

@echo off
SET $FG_ROOT=D:\Flightgear\data
SET FG_ROOT=D:\Flightgear\data
echo Traitement de %1
d:\python27\python osm2city.py -f %1\params.ini

Dans le dossier de tuile, ici LFBI, créez un fichier de commandes pour appeler ce run.cmd en donnant le répertoire de la tuile en paramètre :

@echo off
cd..
run.cmd LFBI

Le résultat est créé dans le répertoire Output \Objects, ici \e000n40\e000n46

Copiez le dans un dossier Custom Scenery que vous indiquerez en tête dans la rubrique scenery de FGRUN. Créez un lien symbolique vers les textures à partir du dossier de Custom Scenery :

MKLINK /D /J .\tex ..\osm2city-data\tex

Voir le résultat

Osm2city.py génère plusieurs types de fichiers : Les fichiers .stg contiennent les appels aux fichiers xml. Les fichiers .xml gèrent les animations et font appel aux fichiers .ac qui génèrent les bâtiments.

Vous pouvez mixer vos bâtiments personnels d'aéroport avec ceux générés par Osm2city. Pour cela indiquez le chemin de votre répertoire Custom Scenery dans le paramètre PATH_TO_SCENERY du fichier params.ini Osm2city en tiendra compte en ne générant pas de bâtiment à proximité des vôtres.

Il se peut qu'Osm2city en génère quelques-uns trop près ou sur les vôtres. Pour rectifier, vous pourrez commenter des lignes dans les fichiers .stg Cette méthode est radicale pour éviter d'avoir des bâtiments écrasés mais en supprime d'autres de la scène finale. C'est un compromis à faire.