Débuter avec PostgreSQL/Postgis -Introduction à pgAdmin4

Suite de l’article (Débuter avec Postgres/Postgis ), nous aborderons dans celui-ci une introduction à l’administration des bases Postgresql/postgis, le chargement d’un shapefile et la connexion et chargement de la couche Postgis à partir de QGis.

La manière la plus pratique d’administrer des bases de données PostgreSQL est d’utiliser l’interface graphique pgAdmin4.

Cet outil s’installe automatiquement lors de l’installation de PostgreSQL. Vous pouvez le lancer à partir de la barre de programmes:

Pour les objectifs de cet article, charger un shapefile en tant que couche Postgis dans votre nouvelle base de données, vous n’avez pas réellement besoin d’opérations d’administration. Mais c’est plus facile de comprendre le fonctionnement en suivant les modifications de la base.

Mais rassurez-vous, vous n’aurez pour l’instant rien à créer. Nous avons demandé au moment de l’installation de Postgis la création d’une base de données exemple. C’est cette base que nous utiliserons dans la suite de l’article.

pgAdmin4vous permet d’administrer une base de données PostgreSQL/Postgis sans vous soucier de la syntaxe SQL correspondante.

Quand vous lancez l’application, le premier écran vous permet de vous connecter au serveur et base de données souhaités.

Le clic-droit sur un élément ouvre le menu contextuel qui vous propose les différentes opérations possibles pour cet élément.

Au moment de l’installation nous avons créé automatiquement deux bases:

  • une base de données PostgreSQL classique, appelée postgres
  • une base de données PostgreSQL/Postgis, appelée postgis_24_sample

C’est cette deuxième que nous allons utiliser pour charger un shapefile. Mais auparavant, profitons pour jeter un coup d’œil et voir quelles sont les différences entre ces deux bases.

Si vous regardez les extensions de chacune d’elles, vous constaterez que la base Postgis possède toute une série d’extensions spécifiques qui permettent de gérer les informations spatiales. C’est la présence de ces extensions qui rend une base PostgreSQL en une base Postgres/Postgis.

Quand vous créez une base de données, vous devez ajouter ces extensions pour la rendre utilisable avec Postgis.

En cliquant droit sur extensions, puis Create -> Extension, vous aurez la liste des extensions possibles.

Ajouter un fichier shapefile dans une base Postgis.

Tout d’abord, qu’est-ce que ça veut dire ajouter un fichier shapefile à une base de données Postgis? Un « fichier » shapefile est en réalité un groupe de fichiers avec le même nom et différentes extensions. Par exemple:

exemple de fichier shapefileL’ensemble de ces fichiers constitue le « shapefile » ouessantCLC_L93. Un fichier contient les géométries, un autre les données attributaires, etc.

Les informations contenues dans les fichiers, seront chargées en tant que Table de la base de données. Une seule table contiendra l’ensemble des informations dispersées dans les fichiers shapefile.

Vous voyez dans l’image précédente à quel niveau les données seront stockées, et vous remarquerez que le niveau « Tables » est un sous-niveau d’un « Schéma » qui est un sous-niveau de « Base de données ». Vous devrez donc indiquer au moment du chargement du shapefile quelle base de données et, éventuellement, quel schéma doivent être utilisés.

Dans notre base d’exemple il y a un schéma « Public » qui a, contrairement aux autres schémas présents, la totalité des fonctions (1454). Nous laisserons ce concept pour plus tard. Retenons seulement que l’on ajoute des fonctions à un schéma au fur et à mesure des besoins. Dans notre exemple, toutes les fonctions étant déjà chargées, ça nous évite ces opérations supplémentaires.

Nous pouvons charger le shapefile avec le programme « Postgis 2.0 Shapefile and DBF Loader ».

Vous pouvez le lancer en tant qu’application autonome, à partir de la barre de programmes Windows :

A la différence de pgAdmin III, vous ne trouverez plus de bouton dans pgAdmin 4 permettant de lancer cette application.

La fenêtre de l’application s’ouvre:

shapefile loadfer dans postgisVous devez commencer par établir la connexion avec votre base de données

Cliquez sur « Add File » et naviguez pour sélectionner le fichier shapefile à charger. Cliquez sur Ouvrir, les informations du fichier à charger s’affichent dans l’Import List

pg30Cliquez sur le bouton Import

Voilà! C’est fait. Vous pouvez voir maintenant sur votre console pgAdmin 4 (après avoir actualisé l’affichage) votre table importée

Renseigner le système de coordonnées

Peut-être vous avez remarqué dans la fenêtre de l’Import List qu le SRID (système de coordonnées) est à zéro. Ceci indique que le programme de chargement n’a pas pu interpréter correctement le fichier .prj du shapefile. Dans notre cas il devrait être 2154 (code EPSG du Lambert 93/RGF93).

Nous allons donc mettre à jour l’information de la colonne géométrie de la table que nous avons créée.

Ouvrez la fenêtre SQL de pgAdmin 4:

Dans la fenêtre Editer SQL tapez la requête suivante:

SELECT UpdateGeometrySRID(‘ouessantclc_l93′,’geom’,2154);

Changez seulement le nom de la table (ouessantclc_l93) par le nom de votre table et le code du SRID (2154) par le code EPSG de votre système de coordonnées.

Exécutez la requête en ckiquant sur le bouton Exécuter (indiqué par la flèche bleue sur l’image).

Vous aurez un message indiquant que la requête s’est bien exécutée:

Charger la couche Postgis dans QGis

Pour nous assurer que tout s’est passé correctement, ouvrez QGis et sélectionnez le bouton de chargement d’une couche Postgis

pg33La fenêtre de connexion s’ouvre. La première fois que vous vous connectez à une base de données il faut configurer sa connexion.

Cliquez sur « Nouveau« , puis renseignez les informations de connexion

Vous avez tout ce qui est nécessaire dans la fenêtre de la console pgAdmin 4. Au niveau du Serveur si vous cliquez droit sur « PostgreSQL 10 » -> Properties , vous aurez toutes les informations nécessaires : Hôte et Port. Le Nom n’est utilisé que pour afficher le menu déroulant des connexions. Vous êtes libre de rentrer n’importe quel nom. Le Service vous le laissez en blanc.

La base de données où vous avez chargé le shapefile est « postgis_24_sample ».

Vous devez rentrer le nom d’utilisateur : on utilisera pour l’instant « postgres » et le mot de passe que vous avez défini pour cet utilisateur au moment de l’installation.

Cliquez sur « Tester la connexion » pour vous assurer que toutes les informations sont bien entrées, puis sur OK.

La nouvelle connexion est ajoutée à la liste. Cliquez sur « Connecter« . Vous aurez les différents Schémas disponibles et dans chacun la liste de tables spatiales:

Sélectionnez la ligne correspondante à la couche chargée du schéma Public et cliquez sur le bouton Ajouter.

La fenêtre de définition du système de coordonnées s’affiche. Sélectionnez le SRC des donnés (dans cet exemple Lambert 93)

pg36La couche est chargée dans QGis.

pg37

Vous pouvez maintenant travailler sur cette couche comme sur toute autre couche dont vous aviez l’habitude (affichage, symbologie, mise à jour géométrique ou attributaire,…)

 

*

12 réflexions sur « Débuter avec PostgreSQL/Postgis -Introduction à pgAdmin4 »

  1. Bonjour,
    Tout d’abord merci pour votre article très bien structuré. Cependant, je bute au début lors de l’import d’un shapefile dans PostGIS, j’ai une erreur du type dbf file (.dbf) can not be opened.
    Est-ce que vous avez une idée de où cela peut provenir ? et comment je peux résoudre l’erreur ?
    Merci,
    Eva

      1. Oui je sélectionne bien le .shp. Mon problème venait d’une directory trop longue. J’ai copié tous les fichiers (.shp, .dbf, et tous les autres fichiers) mais maintenant j’ai un autre problème, c’est séquence d’octets invalide pour l’encodage « UTF8 » . Comment je sais quel est l’encodage de mes fichiers. Je suis partie d’un fichier .csv et je l’ai ensuite importer sous ArcGIS Pro et j’ai généré un .shp. Maintenant j’essaye d’importer ce fichier dans ma base de données. Je suis débutante donc je galère un peu. Heureusement qu’il y a des pages d’aide comme celle-ci =)

        1. Si votre problème vient de l’encodage de votre shapefile je vous plains déjà!
          Pour commencer, est-ce que parmi les différents fichiers de votre shapefile il y a un avec l’extension .cpg?
          Si oui, ouvrez-le avec notepad, vous verrez l’encodage utilisé.
          Si non, de toutes façons commencer par vérifier que dans le noms de colonnes de votre table attributaire vous n’utilisez pas des caractères accentués ou symboles spéciaux.

          1. Encore merci pour votre réponse. Oui je dispose bien d’un fichier avec l’extension .cpg et quand je l’ouvre avec notepad++ c’est écrit juste UTF-8.
            Alors pourquoi ça ne marche pas ?? =(
            Je vais devenir folle et votre première phrase me fait très peur ! =(

  2. Désolé, de poster un message de nouveau mais j’ai essayé de changer la place de tout mon fichier shape mais j’ai une autre erreur cette fois-ci : »Failed in pgui_exec(): ERREUR: séquence d’octets invalide pour l’encodage « UTF8 » : 0xe3 0xa9 0x72″.
    Est-ce qu’il faut que je change l’encodage dans option et lequel dois-je choisir ?
    Merci,
    Eva

      1. Merci beaucoup pour votre aide. J’ai enregistré mon fichier .csv en UTF8 comma separated puis je l’ai inséré dans ArcGIS Pro et j’ai généré de nouveau un fichier .shp dans un dossier avec une directory petite (C/Donnees). J’ai eu l’espoir que ça allait marcher mais rien à y faire ça ne fonctionne pas !
        Quand j’insère mon .shp dans PostGIS j’ai de nouveau la même erreur : « séquence d’octets invalide pour l’encodage « UTF8 » : 0xe3 0xa9 0x72 ».
        Je vais persévérer et y arriver !

  3. Bonjour, merci bien pour ce tutoriel !
    J’ai suivi la première partie de votre tutoriel (installation de postgresql et postgis), mais quand je lance pgadmin4, il affiche : « The application server could not be contacted »
    J’avais déjà installé pgadmin4 auparavant, mais l’avais désinstallée pour suivre votre tutoriel comprenant l’installation de postgis.
    Je me dis qu’il y a peut-être un lien mais je ne vois pas de « résidu » de la première installation.
    Auriez-vous une idée ?
    Merci d’avance,

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *