Le format Geopackage et QGis 3

Un format ouvert pour l’information géospatiale

GeoPackage est un format compact, portable, auto-descriptif et ouvert, basé sur des normes, indépendant de la plate-forme et permettant de transférer des informations géospatiales.

Le standard GeoPackage est composé d’un ensemble de conventions pour stocker dans une base de données SQLite les éléments suivants :

  • des entités vectorielles
  • des matrices de tuiles d’images et de rasters à différentes échelles
  • des attributs (données non spatiales)
  • des extensions

Pour être
clair, un GeoPackage est le conteneur SQLite et la norme de codage
GeoPackage régit les règles et les exigences du contenu stocké dans un
conteneur GeoPackage. Le standard GeoPackage définit le
schéma d’un GeoPackage, notamment les définitions de table, les
assertions d’intégrité, les limitations de format et les contraintes de
contenu. Le contenu requis et pris en charge d’un GeoPackage est entièrement défini dans la norme. Ces
fonctionnalités reposent sur une base commune et le mécanisme
d’extension fournit aux développeurs une manière d’inclure des
fonctionnalités supplémentaires dans leurs GeoPackages.



Comme GeoPackage est un conteneur de base de données, il prend en charge son utilisation directe par les différents logiciels SIG. Cela signifie que les données d’un GeoPackage peuvent être consultées et mises à jour dans un format de stockage « natif » sans conversion de format intermédiaire. Les GeoPackages conformes aux exigences de la norme et n’implémentant pas d’extensions spécifiques du fournisseur sont interopérables dans tous les environnements informatiques d’entreprise et personnels. Les GeoPackages sont particulièrement utiles sur les appareils mobiles tels que les téléphones portables et les tablettes dans les environnements de communication où la connectivité et la bande passante sont limitées.

Geopackage dans QGis

Si vous utilisez déjà des bases de donnés Spatialite dans QGis vous vous demandez qu’est ce que Geopackage apporte de nouveau: essentiellement la possibilité de stocker des rasters dans une base SQLite.

Si, par contre, vous êtes toujours à travailler avec des fichiers shapefile (shp), nous avons déjà publié plusieurs articles qui expliquent les avantages du travail avec SQLite

Le format Geopackage correspond à tout ce qui est dit pour Spatialite et QGis en vous donnant de nouvelles possibilités.

Donc, si vous faites le pas de passer du travail avec des shapefiles à SQLite, optez pour Geopackage plutôt que des bases Spatialite.

Comment créer un Geopackage avec QGis 3.4

GeoPackage est un package de données standard OGC pouvant stocker différents types de types de données spatiales tels que des points, des polylignes et des polygones. Nous pouvons enregistrer plusieurs couches dans un seul fichier GeoPackage (.gpkg). C’est un excellent moyen de stocker et d’organiser vos données spatiales sous QGIS. Lorsque vous enregistrez vos fichiers spatiaux au format GeoPackage, vous pouvez facilement les trouver sans avoir à parcourir et à creuser dans tous vos dossiers.

L’utilisation de Geopackage pour stocker nos données spatiales présente de nombreux avantages. Nos données seront placées dans un emplacement centralisé. En utilisant cette méthode, nous pouvons réduire l’encombrement qui se produit lorsque nous traitons des centaines de fichiers. Il est plus facile de transférer d’énormes quantités de couches dans un seul géopackage.

Pour créer une couche de géopackage dans  QGIS il suffit de:

1-Ouvrir QGIS
2-Aller dans Couche | Créer une couche | Nouvelle couche de géopackage

  3- Taper le nom de la nouvelle couche GeoPackage, donner un nom à la table et, éventuellement, sélectionnez une géométrie dans la liste.

Si vous comptez importer des couches existantes dans votre Geopackage, vous pouvez cliquer sur OK. Votre Geopackage sera créé et vide, enfin, presque. Vous aurez cette table vide qui sera présente mais que vous pourrez effacer à tout moment.

Si, par contre, vous souhaitez commencer à créer une véritable couche de travail, vous utiliserez le bloc « Nouveau champ » de la fenêtre pour définir vos colonnes de table.

Votre fichier Geopackage est créé. Pour l’utiliser dans QGis vous devez vous connecter à cette nouvelle base de données:

La nouvelle base de données apparaît alors dans l’explorateur:

Comment peupler une base de données Geopackage

Vous disposez de trois méthodes pour ajouter des couches dans un fichgier Geopackage:

Création à partir de rien

Vous allez rajouter une table vide en définissant les champs (colonnes) manuellement. Pour cela vous allez répeter les opérations décrites plus haut lors de la création du Geopackage (menu Couche-> Créer une couche -> Nouvelle couche Geopackage). Une fois la fenêtre de création ouverte, utilisez le bouton … pour aller pointer sur le fichier geopackage dans lequel vous souhaitez créer une nouvelle couche:

Remplissez les champs nécessaires (nom de la tabvle, géométrie,…) ainsi que la définition de vos colonnes. Quand vous cliquerez sur OK vous aurez le message suivant:

Cliquez sur Ajouter une nouvelle couche. cette couche sera alors ajoutée à la liste des couches de votre fichier geopackage.

Enregistrer à partir d’une couche existante

Vous pouvez exporter vers un fichier geopackage une couche déjà existante. Pour cela,sélectionnez votre couche dans le panneau « Couches« , puis Exporter -> Sauvegarder les entités sous…

Dans la fenêtre sui s’ouvre, dans la liste des formats, sélectionnez Geopackage

Dans Nom de fichier, cliquez sur le bouton … et pointes sur votre fichier Geopackage.

Renseignez les champs nécessaires et cliquez sur OK. La couche est importée dans votre Geopackage.

Importer une couche existante avec DB Manager

Le DB Manager vous permet de gérer complètement vos données et bases de données.

Pour l’ouvrir allez dans le menu Base de données -> DB Manager

Dans la fenêtre de DB Manager, pour importer une couche existante dans votre fichier geopackage,

  • cliquez dans le panneau Fournisseurs de données sur votre fichier Geopackage
  • cliquez sur l’outil Import de couche/fichier
  • renseignez les champs de la fenêtre  Importer une couche vecteur

Important!: Cochez les cases SRC source et SCR cible et vérifiez que les SRC correspondent bien à ce que vous souhaitez. Cochez la case Créer un index spatial si vous en souhaitez un. Si vous omettez ces informations à cette étape, il sera très, très compliqué d’en revenir après…

4 réponses sur “Le format Geopackage et QGis 3”

  1. Bonjour,

    Merci, votre article est vraiment intéressant.
    Je m’intéresse au stockage des données raster dans des bases de données.
    J’ai regardé du côté de rasterlite, mais il semble compliqué à mettre en place.
    Geopackage me semble une bonne solution.
    Vous décrivez l’import de données vecteur dans une base geopackage. Mais pas les rasters ! j’ai regardé comment s’effectue cette manip, apparemment il faut passer par gdal en ligne de commande. Ca ne me ravi pas trop…
    Avez vous explorer d’autre pistes pour l’implémentation de raster dans une bd geopackage ?

    Merci

    Sylvain

    1. Je n’ai pas de réponse aujourd’hui, je suis dessus. Au fait, si vous travaillez avec QGis 3 (3.4) vous pouvez sans problème intégrer des rasters dans un geopackage en utilisant la méthode charger le raster en tant que couche dans QGis -> cliquer sur Exporter -> Enregistrer sous…
      Il faut choisir en Mode sortie : image (et surtout pas donnée brute)
      Par contre, s’il y a déjà des données vecteur dans le geopackage, vous aurez un message qui n’a pas de sens (la couche XXX existe déja dans le geopackage…) et même si vous acceptez d’écraser l’existant, vous aurez un message d’erreur et rien en sortie.
      De même si vous avez des rasters dans le geopackage et vous voulez ajouter des couches vecteur, QGis 3.4 plante sans même un message d’erreur.

  2. Merci !!
    Effectivement avec votre méthode, il est possible d’implémenter une base de données exclusivement composée de Raster !!
    Si je veux faire des opérations sur ces rasters (en fusionner deux par exemple). Selon vous, quelle est la meilleure solution ? Je les fusionne avant avec gdal, ou alors est ce qu’il y a des outils geopackage pour faire cela ?

    1. Des outils geopackage?? Peut être vous voulez parler d’outils dans QGis? En tout cas, vous pouvez (j’ai testé) utiliser les outils raster de QGis (mais ce ne sont que des interfaces pour GDAL) pour fusionner deux rasters contenus dans geopackage. Mais comme ilm manque unhe option pour éditer la commande gdal dsans les fenêtres de QGis, vous ne piouvez enregistrer la fusion que dans un nouveau geopackage. On devrait modifier la ligne de commande pour créer un nouvel subset dans le geopackage existant. D’ailleurs c’est ce même problème qui fait bugger la présence de raster et vecteur.

Laisser un commentaire

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