Les données vectorielles sont traitées dans QGIS par des fichiers shapefile. Mais quand on commence à importer des fichiers issus de OpenStreetMap le volume de données devient vite ingérable et necessite un traitement par des bases de données spatiales. La base de données SPATIALITE de QGIS est la plus adaptée et simple d'utilisation mais lorsqu'on veut avoir acces aux geometrie pour des calculs externes plus poussés, aux relations entre tables et aux requetes SQL, il faut passer a POSTGIS qui est l'extension spatiale de POSTGRES
La derniere partie traite des importations des ficiers OSM dans la base POSTGIS par OSMOSIS.
L'exposé se base sur une configuration LINUX
articles en relation
Installation pstgress sur UBUNTU
Communauté francophone POSTGRESQL
Communautee francophone POSTGIS
installation de POSTGRESQL
On commence par installer le paquet postgresql.
utilisateur postgres en ligne de commande
$ sudo -i -u postgres Password:
Désormais, l'invite de commande doit mentionner que vous êtes actif en tant que postgres. Pour lancer l'invite de commande SQL de PostgreSQL, tapez simplement :
psql
Vous devriez obtenir quelque chose comme :
psql (9.5.10) Type "help" for help. postgres=#
Petit guide de survie pour le client psql
\h pour l'aide-mémoire des commandes SQL \? pour l'aide-mémoire des commandes psql \g ou point-virgule en fin d'instruction pour exécuter la requête \q pour quitter
Créer un utilisateur PostgreSQL
Commencez par créer un nouvel utilisateur, qui portera par exemple le même nom que vous. Dans la ligne de commande ci-dessous, tapez (rappel : la partie « postgres=# » est l'invite de commande, il ne faut pas la retaper ! Ainsi, la commande ci-dessous requiert de taper « CREATE USER <nom_utilisateur>; », en remplaçant <nom_utilisateur> par un identifiant bien choisi) :
postgres=# CREATE USER knobuntu;
N'oubliez pas le point-virgule à la fin…
Par défaut, votre nouvel utilisateur n'a aucun droit. Donnez-lui la possibilité de créer de nouvelles bases de données :
postgres=# ALTER ROLE <nom_utilisateur> WITH CREATEDB;
Ensuite, créez une base de données pour votre utilisateur. Par exemple, vous pouvez prendre comme nom : nom_utilisateur
. Ainsi, la connexion sera automatique.
postgres=# CREATE DATABASE alpesosm OWNER knobuntu;
Attribuer un mot de passe à l'utilisateur pour qu'il puisse se connecter à la base (le ENCRYPTED permet l'utilisation de md5 dans le pg_hba.conf) :
postgres=# ALTER USER <nom_utilisateur> WITH ENCRYPTED PASSWORD 'mon_mot_de_passe';
Vous pouvez maintenant quitter, "redevenir vous-même" et relancer psql directement, en étant cette fois connecté sous votre propre nom :
postgres=# \q postgres@ubuntu:~$ psql nom_base_de_donnee
La ligne de commande est devenue :
nom_base_de_donnee=>
Notez la transformation du # en > : vous n'êtes plus superutilisateur…
Installer POSTGIS et configurer
Sous ubuntu 17.4 les versions à installer sont postgresql9.6 et postgis 2.3
sudo add-apt-repository ppa: ubuntugis / ubuntugis-unstable sudo apt update
sudo apt install postgis postgresql-9.6-postgis-2.3
J
e cree la base osmkno et comme user knosm
Je cree les extensions
sudo -u postgres psql -c "CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology;" osmkno
PGADMIN3
Pgadmin3 est une application graphique permettant de gerer POSTGRESQL
elle est a installer dans les dépots UBUNTU et compris dans le paquet ubuntugis
configurer pgadmin3
pour l'importation et l'exportation des fichiers shapefiles dans le menu Plugin
sudo apt-get install postgis-gui
Editer le fichier sudo gedit /usr/share/pgadmin3/plugins.d/plugins.ini
et ajouter
;
; pgShapeLoader (Linux):
;
Title=PostGIS Shapefile and DBF loader
Command=$$PGBINDIR/shp2pgsql-gui -U $$USERNAME -d $$DATABASE -p $$PORT -h $$HOSTNAME
Description=Open a PostGIS ESRI Shapefile or Plain dbf loader console to the current database.
KeyFile=$$PGBINDIR/shp2pgsql-gui
Platform=unix
ServerType=postgresql
Database=Yes
SetPassword=No
SHP2PGSQL
shp2pgsql.gui est une application graphique permettant de charger les shapesfiles dans Postgres. eslle se trouive dans les paquets ubuntu et dans ubuntugis
OSM2PGSQL
est une application en lifgne de commande permettant de charger les fichiers xml osm dans Postges elle se trouve dans les dépots Ubuntu et dans le paquet ubuntugis
Installer osm2pgsql
liens: https://wiki.openstreetmap.org/wiki/FR:Osm2pgsql
Utilisation en ligne de commande
osm2pgsql -H localhost -U knosm -W -d osmkno -s -a tinee.osm
avec tinee.osm nom du fichier osm a transferer dans la base -d osmkno et l'utilisateur -U knosm en -H ocalhost et demande de mot de passe -W avec l'option -s slim et -a append
dans pgadmin3 cette commande a inserer 5 tables de points lignes polygones etc...
OSMOSIS
est une application java en ligne de commande pour la manipulation des données OSM. L'application se compose d'une série d'outils qui peuvent être chaînés pour effectuer une opération de grande envergure. C'est notamment l'outil permettant d'importer et de traiter les données OSM dans une base de données POSTGIS
articles en relation
Page de référence
Commandes OSMOSIS
Utilisation
les fiichers sont décompressés dans /home/knobuntu/QGis/osmosis
En ligne de commande se placer dans le repertoire d'extractin et lancer la commande ./bin/osmosis suivis des options
cd QGis/osm/osmosis
./bin/osmosis <options>
Exemple de traitement du fichier corse/corse-latest.osm.pbf pour en extraire les sommets dans la base alpesosm
le traitement se fait en 2 étapes :- Extraction des pics du fichier corse-latest.osm.pbf avec osmosis et ecriture du fichier xml corse_peak.osm
- Tansfert du fichier osm dans la base postgres alpesosm
cd QGis/osm/osmosis
./bin/osmosis --read-pbf ../corse/corse-latest.osm.pbf --tf accept-nodes natural=peak --tf reject-ways --tf reject-relations --write-xml corse_peak.osm;
$ osm2pgsql -H localhost -U postgres -W -d alpesosm /home/knobuntu/QGis/osm/osmosis/corse_peak.osm
Cest souvent un travail assez long...
les cles valeurs osm :https://wiki.openstreetmap.org/wiki/FR
osm cle valeur taginfo https://taginfo.openstreetmap.org/k