Documentation des scripts

publicité
Extraction transport en commun d'OpenStreetMap - Notice d'exécution
Expertise géomatique
http://carte-libre.fr
[email protected]
06 89 55 75 42
Extraction transport en commun
d'OpenStreetMap
Notice d'exécution
Version 1.0 - 22/10/13
1/4
Extraction transport en commun d'OpenStreetMap - Notice d'exécution
1. Principe de fonctionnement
Overpass
L'extraction de données d'OpenStreetMap se fait par l'exécution de scripts Overpass. Overpass est
un langage de requête spécifique aux données OpenStreetMap. L'exécution de ces scripts est faite
sur des serveurs publics. Cette approche évite l'installation et la mise en place d'une grande quantité
de données en local.
http://wiki.openstreetmap.org/wiki/Overpass_API
http://wiki.openstreetmap.org/wiki/Overpass_API/Language_Guide
Le langage existe en deux syntaxes, XML ou non.
Les scripts Overpass sont envoyées par un POST HTTP au serveur. Le serveur construit la réponse
et la retourne. Le fonctionnement même de l'outil fait que le téléchargement peut être assez long
avec une première phase où rien n'est retourné (téléchargement en cours, mais sans transférer de
données), suivi d'une seconde phase plus courte où les données sont effectivement téléchargées. La
requête la plus complexe livrée ici (lignes de transport en commun) peut prendre 2h. Le temps est
en partie fonction de la charge du serveur.
Le résultat de la requête est un fichier « .osm » en XML. Le format est spécifique au projet
OpenStreetMap.
Osmosis
Osmosis est un outil de manipulation de données aux différents formats OpenStreetMap. Il permet
de faire des conversions de formats de fichiers et de charger et décharger des données en base.
http://wiki.openstreetmap.org/wiki/Osmosis
Postgres/PostGis
Une fois chargées dans la base, les données doivent être traitées pour les mettre en forme puis les
exporter.
La préparation du traitement se fait par la création de vues.
pgsql2shp
Pgsql2shp est un utilitaire qui va permettre d'exporter le contenu des vues de la Base de Données au
format Shapefile.
2. Installation
Overpass
Les requêtes Overpass s'exécutant sur des serveurs publics, il n'y a rien à installer en local. La
commande « wget » est toutefois nécessaire pour lancer des requêtes.
2/4
Extraction transport en commun d'OpenStreetMap - Notice d'exécution
Osmosis
Osmosis est un utilitaire en java, il faut donc un environnement JRE pour l'exécuter, au moins en
version 1.6. Il peut être téléchargé à cette adresse :
http://bretth.dev.openstreetmap.org/osmosis-build/osmosis-latest.tgz
Une fois décompressé, il faut configurer le chemin d'accès dans le Makefile. Positionner le chemin
absolu ou relatif dans OSMOSIS_PATH.
Postgres/PostGis
Installer un serveur de base de données Postgres, en version 9 de préférence, ainsi que l'extension
PostGis de Postgres en version 2 de préférence.
Après avoir démarré le serveur de base de données, et sous l'utilisateur système postgres : créer un
utilisateur postgres « osm » (ou plus simplement utiliser un login existant dans le système) :
> createuser osm
Créer une base de données (il faut que l'encodage de la base de données soit en utf8) :
> createdb -O osm osm
Toujours sous l'utilisateur postgres, charger les extensions hstore et postgis (les commandes pour
des versions précédentes de Postgres et PostGis peuvent être différentes) :
> psql osm
osm=> CREATE EXTENSION hstore;
osm=> CREATE EXTENSION postgis;
Se connecter en simple utilisateur à la base. Si la connexion est configurée pour ce faire sans mot de
passe, il faut en définir un :
> psql osm
osm=> ALTER USER osm WITH PASSWORD '123';
L'utilitaire Osmosis a obligatoirement besoin d'une connexion réseau et d'un mot de passe pour
accéder à la base de données. Tous les autres outils sont également configurés pour les utiliser.
Il faut configurer la connexion à la base de données dans le Makefile. Personnaliser les variables
DB_HOST, DB_NAME, DB_USER et DB_PASSWORD.
En cas de problème voir :
http://wiki.openstreetmap.org/wiki/PostGIS/Installation
http://wiki.openstreetmap.org/wiki/Osmosis/PostGIS_Setup
SQL
La base de données doit être initialisée avant d'être utilisée. Le schéma de base de données
spécifique à Osmosis doit être créé :
> psql osm < ../osmosis/script/pgsnapshot_schema_0.6.sql
Le schéma doit être modifié pour prendre en compte les linestrings des ways automatiquement au
chargement des données :
> psql osm < ../osmosis/script/pgsnapshot_schema_0.6_linestring.sql
Pour finir, des fonctions spécifiques à l'outil d'extraction des données de transport en commun
doivent être chargées :
> psql osm < CreateFunctions.sql
3/4
Extraction transport en commun d'OpenStreetMap - Notice d'exécution
3. Exécution
Les exécutions sont faites par la commande « make » avec le fichier Makefile.
La comme « make all » permet de lancer l'ensemble des exécutions pour tous les jeux de données.
> make all
Chaque étape de chaque jeu de données peut être exécutée indépendamment. Si les étapes en
prérequis n'ont pas déjà été exécutées, make les effectuera également.
am
en
ity
_b
pa
icy
rki
cl e
ng
_re
_
c
pu
arp
nta
bl i
oo
l.*
c_
l.*
t
r
a
typ
ns
po
e_
rt_
rou
sta
te.
am
tio
*
en
n.*
ity
_c
am
ar_
en
sh
ity
ari
_p
ng
pu
ark
.*
bl i
i
n
c_
g
.
t
*
ran
sto
sp
p.*
ort
_s
typ
top
e_
_a
rou
rea
te_
pu
.*
bl i
s
t
o
c_
p.*
tra
ns
po
rt_
sto
p_
are
a_
sto
p
.*
Toutes les exécutions possibles sont détaillées dans le tableau si dessous.
*.osm
x
x
x
x
x
x
x
*.osm.bz2
x
x
x
x
x
x
x
*.shp
x
x
x
x
x
x
x
*.dbf
Obtention du résultat de la requête
Overpass du même nom.
Compression du résultat de la
requête.
Export de la vue en shape file.
x
x
Export de la vue pour les jointures
x (elles n'ont pas de partie spatiale).
Par exemple, pour n'effectuer que la requête Overpass pour les parkings :
> make amenity-parking.osm
Pour convertir en Shapefile les lignes de transport en commun :
> make type-route.shp
À noter le cas particulier des stops, qui utilise la même requête Overpass que type-route mais avec
une extraction différente.
À noter également que les tables de jointures réutilisent également d'autres requêtes Overpass et
qu'elles ne peuvent pas produire un .shp (partie géographie des Shapefiles), mais uniquement une
table (.dbf).
4/4
Téléchargement