5 - SQL - Bases de données

PostGIS : Importer des données

PostGIS est beaucoup plus complet que SpatiaLite. En comparaison il propose :

  • une plus grande richesse dans les fonctions spatiales (ex : fonction de conversion de projection, 3D, routing,...) administration de base (gestion des droits, outils d'administration et d'optimisation,...)

  • une meilleure gestion des transactions (ACID).

  • l'utilisation automatique des index spatiaux grâce à « l'optimiseur » de requêtes.

Mais en contrepartie d'une plus grande complexité. L'utilisation de PostGIS n'est donc recommandée que s'il existe déjà une base installée dans votre service, gérée par une équipe spécialisée, ou si vous avez les compétences (et l'autorisation) pour le faire installer sur votre poste de travail dans un but d'analyse spatiale plus que de partage de données.

Pour utiliser ce module il faut avoir accès à une base PostGIS. Le cas échéant les paramètres de connexion doivent être fournis par l'organisateur de la formation.

Pour importer et exporter des données dans PostGIS, il existe plusieurs solutions avec chacune leurs avantages et inconvénients.

Utilisation de l'extension SPIT (outil d'importation de shapefiles dans PostGIS)

Pour importer des fichiers shape et .dbf dans PostgreSQL directement depuis QGIS, il existe une extension baptisée SPIT.

Cette extension doit être activée à l'aide du gestionnaire d'extensions de QGIS.

Une fois l'activation effectuée, il faut cliquer sur l'icône de l'extension SPIT dans la barre d'outils de QGIS.

Importer des Shapes dans PostgreSQL

Cette extension est également accessible depuis le menu Base de données.

La fenêtre suivante apparaît.

importation de Shapefile

Il faut créer une nouvelle connexion ou utiliser une connexion déjà créée.

Une fois que la connexion est établie, cliquer sur Ajouter.

La fenêtre suivante apparaît.

Choix du fichier SHP

Choisir le ou les fichiers shape à importer dans PostGis (les choisir les uns après les autres).

Cliquer sur Open.

La fenêtre suivante apparaît :

connexion PostgreSQL

Le ou les fichiers shape importés dans PostGis apparaissent dans la liste.

Dans le champ Nom de la colonne de géométrie, laisser vide, ou saisir le nom de la colonne de géométrie du fichier shape ou cocher la case Utiliser le nom de colonne géométrique par défaut (the_geom).

Dans le champ SRID, saisir la valeur 2154 qui correspond au système de coordonnées de référence (SCR) RGF93/Lambert 93.

Cliquer sur OK.

Les données sont importées dans PostGIS.

ConseilUtilisation des schémas

Il est recommandé de ne pas utiliser le schéma public, mais plutôt d'utiliser des schémas personnalisés. Ceci permet de séparer le cœur de PostGIS (tables systèmes PostGIS, fonctions...) des données elle-même.

On peut créer des schémas par thématique ou selon d'autres organisations (référentiel / données métiers / données produites ou données tabulaires / données vectorielles par exemple). L'organisation en schémas multiples permet de simplifier la gestion des droits d'utilisation, mais le principal avantage reste de faciliter la mise à jour de PostGIS ainsi que la restauration ou l'échange plus efficaces de données.

La définition d'une structure d'exploitation de la base partagée par tous est du ressort de l'administrateur de la base.

ComplémentAvantages / Inconvénients de SPIT

Avantages :

  • Multiplateforme (Windows, Linux, Unix, Mac OS X)

  • Possibilité d'importer plusieurs fichiers en une seule fois

  • Bref résumé de chaque fichier avant import, tel que le décompte de la géométrie et le type

Inconvénients :

  • prend en compte uniquement les fichiers SHP

  • N'affiche pas le système de projection natif des tables

  • Surtout il entoure tous les noms de champs de "" dans PostGIS pour préserver la casse (majuscule/minuscule). Cette option n'est pas désactivable. Le principal inconvénient étant que dans d'autres outils que QGIS il faut alors systématiquement utiliser les champs entre "" dans les requêtes SQL

  • Ne semble plus maintenu

  • lent sur pour des grosses tables.

L'outil 'PostGIS 2.0 Shapefile and DBF Loader Exporter'

Si vous avez installé une distribution PostGIS sur votre poste de travail, vous disposez de l'outil pgShapeloader aussi connu sous le nom de 'PostgIS shapefile and DBF Loader.'

Dans ce cas, Il est possible de le démarrer depuis le poste de travail :

Démarrer/Programmes/PostGIS 2.0 for PostgreSQL 9.0/PostGIS 2.0 Shapefile and DBF Loader Exporter

La fenêtre suivante apparaît.

PostGIS ShapeFile Import/Export Manager

Cliquer sur View connection details...

Saisir les informations demandées pour :

  • User Name : (ici postgres)

  • Password : (à choisir lors de l'installation de PostGIS)

  • Server Host : localhost Port : (ici 5432)

  • Database : (ici postgis)

détails connexion

Cliquer sur OK.

La fenêtre suivante apparaît.

Connecting

Dans la fenêtre de connexion (Log Window), un message indique si la connexion est établie et rappelle les informations la concernant.

Pour ajouter des fichiers à importer, cliquer sur Add File

On peut choisir entre importer des fichiers .shp ou dbf

import SHP

Attention

Il faut veiller à ce que les chemins et les noms des fichiers ne comportent ni espaces blancs ni accents.

Lorsque le ou les fichiers à importer dans PostGis ont été choisis, cliquer sur Options.

La fenêtre suivante apparaît :

Options import

Selon le type de données à importer, il faut cocher les cases correspondantes.

Puis cliquer sur OK.

Pour le fichier shape et/ou dbf à importer, modifier le SRID en double cliquant dans la colonne SRID ( 2154 pour les données en RGF93/Lambert 93).

Les différents modes sont :

Create : Créé la table et la remplit.

Append : Ajoute les enregistrement à la table (si elle existe déjà).

Delete : Supprime la table et la recrée avec les enregistrements.

Prepare : Créé la table mais ne la remplit pas avec les enregistrements.

Pour afficher la fenêtre des options de l'importation, cliquer sur Options...

Les options les plus importantes à retenir sont les suivantes :

  • Preserve case of column names : conserve la casse (majuscule/minuscule) des colonnes du fichier importé (Les noms de colonnes sont entourés de "" dans PostGIS).

  • Create spatial index automatically after load : crée automatiquement un index spatial après le chargement du fichier importé. Conseillé si vous ne chargez pas d'autres données dans cette table.

  • Load only attribute (dbf) data : permet de ne charger que les données attributaires dans une table au format .dbf

  • Load into GEOGRAPHY column : charge la géométrie des données dans une colonne de type GEOGRAPHY (plutôt que GEOMETRY). Ceci permet des mesures sur le sphéroïde, plutôt que cartésiennes. Pour plus de détails.

  • Generate simple geometries instead of MULTI geometries : crée des géométries simples au lieu de géométries multiples

Il est proposé dans l'exemple de ne cocher que Load only attribute (dbf) data et de renseigner le type d'encodage des caractères du fichier .dbf source : LATIN1 dans la case prévue à cet effet (DBF file character encoding).

nb : au sujet de l'encodage des fichiers SHP voir ici, ainsi que quelques informations complémentaires ici.

Cliquer sur OK.

La fenêtre se ferme et la précédente est à nouveau affichée.

Cliquer sur Import.

La fenêtre de connexion (Log window) fait apparaître un ou des messages sur la procédure d'importation des fichiers choisis.

Si l'importation se déroule correctement, le message suivant apparaît dans la fenêtre de connexion.

log window

La connexion et l'importation de données dans PostGIS étant faite, on peut passer dans QGIS pour afficher des données provenant de PostGIS.

Utilisation de DBmanager

DBManager permet de charger des fichiers dans une base PostGIS connectée sous QGIS, par glisser / lâché de fichiers à partir du navigateur QGIS, ou par le menu 'Table > Importer une couche ou un fichier' pour les couches déjà chargée dans QGIS. Ce dernier menu est également accessible par le bouton DbManager Importer

nb : DBManager permet également de faire des échanges de données avec les bases de données spatialite par glissé / lâché.

La fenêtre d'import permet de saisir les paramètres nécessaires :

DbManager paramètres d'import

ComplémentOgr2ogr

Les spécialistes préfèrent parfois utiliser ogr2ogr pour contrôler l'import des données dans PostGIS. Nous ne détaillerons pas ici cet outil qui est plutôt à réserver à l'administrateur de la base.

Avantages :

  • Prend en charge une multitude de format.

  • Possibilité de changement de projection

  • Possibilité de sélection SQL des données en import.

Inconvénient :

  • Syntaxe complexe à cause des nombreuses options.

nb : Pour les spécialistes l'option "- config PG_USE_COPY YES" permet d’accélérer de façon drastique le chargement de gros fichiers avec ogr2ogr.

Dans la version QGIS 2.8 devrait apparaître un algorithme d'import dans le menu traitement (Processing) 'Import vector into PostGIS database' qui utilisera de façon transparente ogr2ogr.

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Maîtrise d'ouvrage : MEDDE - METL - MAAF / Maîtrise d'œuvre : ENTE Aix - ENSG / Licence ouverte ETALAB Réalisé avec Scenari (nouvelle fenêtre)