Nivologie

 

osmosis800Les 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.

si une base de données possède le même nom que l'utilisateur avec lequel on se connecte alors le client psql se connecte par défaut à cette base.
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

installation de UBUNTUGIS

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 :
  1. Extraction des pics du fichier  corse-latest.osm.pbf avec osmosis et ecriture du fichier xml corse_peak.osm
  2. 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
.Une fois importé dans la BDD  ces fichiers énormes doivent etre réduits par des requetes sql et des traitements appropriés pour ne retenir que  les valeurs necessaires a l'affichage  pour ne pas ralentir le fonctionnement de QGIS

Cest souvent un travail assez long...

liens utiles

les cles valeurs osm :https://wiki.openstreetmap.org/wiki/FR

osm cle valeur taginfo https://taginfo.openstreetmap.org/k


 Extraction OSM https://overpass-turbo.eu/