Geopackage
GeoPackage (GPKG) est un format de données géospatiales (ou géomatiques ou SIG) raster ou vecteur, ouvert, non-propriétaire, non lié à un système d'exploitation, et défini le plus possible sur la base de standards OGC ou autres, implémenté sous la forme d'une base de données SQLite. Il a été défini par l'Open Geospatial Consortium (OGC)[1] avec le soutien de l'armée américaine[2] et publié en 2014. GeoPackage a reçu le soutien d'organisations gouvernementales, commerciales, et de la communauté open-source[3]. C'est le format de données par défaut dans QGIS à partir de la version 3.
Origine
Bien qu'il existe des dizaines de formats de fichier et de services pour échanger des données géospatiales, il n'y avait pas de format ouvert qui puisse gérer à la fois des données vecteur et raster, tout en étant efficace, notamment sur des appareils mobiles[4] - [5]. Ce besoin fut exprimé par l'OGC en 2012[6]. Le standard a été approuvé par l'OGC en [7].
Format
Un GeoPackage (*.gpkg) est construit comme un fichier de base de données SQLite 3[8] qui contient des tables de données et de métadonnées selon des définitions spécifiées dans le standard, des règles d'intégrité, des règles de format et des contraintes relatives au contenu.
Le standard GeoPackage décrit un ensemble de règles pour le stockage d'objets vectoriels, de tuiles images et de données raster à diverses échelles, ainsi que leur schéma et métadonnées.
Un GeoPackage peut être étendu en appliquant les règles d'extension définies dans la clause 2.3 du standard. Un ensemble d'extensions approuvées est spécifié en Annexe F du standard. Des extensions additionnelles, propriétaires, peuvent aussi être ajoutées en suivant les règles relatives aux extensions GeoPackage, mais en renonçant à l'interopérabilité.
GeoPackage est conçu pour être aussi léger que possible en termes de volume, et pour se présenter sous la forme d'un fichier unique et directement utilisable. Ceci le rend apte à l'utilisation sur des terminaux mobiles hors connexion[9] et le partage rapide en stockage cloud, sur supports USB, , etc. L'extension F.3 RTree Spatial Indexes spécifie comment utiliser les index spatiaux de SQLite pour accélérer les requêtes spatiales.
Support
Caractéristiques
- Un .gpkg peut contenir un nombre quelconque de couches vecteur (2D ou 2D avec Z et/ou M (valeur)) ou raster (tuiles en jpg, png, ou tif)
- Un .gpkg vide contient quelques tables : gpkg_contents, gpkg_extensions, gpkg_geometry_columns, gpkg_ogr_contents, gpkg_tile_matrix, gpkg_tile_matrix_set, gpkg_spatial_ref_sys
- Pour chaque couche vecteur "..." importée (par ex. depuis un .shp), il s'y ajoute cinq tables : "...", rtree_..._geom, rtree_..._geom_node, rtree_..._geom_parent, rtree_..._geom_rowid
- Un Shapefile de x Mo importé fait augmenter la taille du .gpkg de x Mo (pas de compression ou de gain de place)
- Une base SQLite a un encodage et un seul, spécifié à la création de la base et non modifiable, mais on peut y stocker des couches d'encodages variés. On peut connaître ces encodage par la commande PRAGMA encoding; Les couches importées sont converties dans l'encodage de la base.
- Depuis la version 1.2 GeoPackage gère les tables non spatiales (type de données « attributes »)[11]
- Le standard GeoPackage ne permet qu'une seule géométrie par table.
- Un .gpkg peut stocker le style des couches qu'il contient
- Un .gpkg peut contenir la pyramide des rasters qu'il contient (pas de fichier externe pour le pyramidage)
- Un .gpkg peut contenir des métadonnées en format ISO19139 ou autres
- Un .gpkg peut comporter un index spatial
- Un .gpkg peut comporter un ou des index attributaires [12]
- Un .gpkg peut contenir plus d'objets qu'un Shapefile (par exemple 100 millions)
Manipulations
- Une base Geopackage étant une base SQLite, elle peut être gérée avec tout logiciel gérant du SQLite, par exemple SQLite Manager dans Firefox de même qu'on peut gérer le .dbf d'un Shapefile avec dBase, un tableur, etc., au risque d'en dégrader la structure.
- Convertir un shp en gpkg est simple avec GDAL >=2.3 : ogr2ogr communes.gpkg communes.shp -nlt PROMOTE_TO_MULTI (option pour garantir la conformité du gpkg qui ne doit pas mélanger polygones et multipolygones). Le shp, tiré de ADMIN-EXPRESS (C) IGN fait 137,2Mo, le gpkg 165,9Mo.
- Une base Geopackage peut être gérée par programme en Python via GDAL, ou via Fiona[13] ou directement en tant que base SQLite (cf ici - lien un peu ancien) ou par tout langage de programmation utilisant une bibliothèque permettant de s'interfacer avec GDAL comme R avec la bibliothèque sf[14]
Notes et références
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « GeoPackage » (voir la liste des auteurs).
- « GeoPackage Encoding Standard - OGC ».
- C4ISRNET, « edge-pushing-geo-data-disadvantaged-troops ».
- .
- « GeoPackage as Future Ubiquitous GIS Data Format: A Review », sur www.jurnalteknologi.utm.my (consulté le ).
- R. Singh et L. E. Bermudez, « Emerging Geospatial Sharing Technologies in Earth and Space Science Informatics », AGU Fall Meeting Abstracts, vol. 33, , p. 08 (Bibcode 2013AGUFMIN33C..08S).
- The OGC Forms GeoPackage Standards Working Group - OGC Press Release.
- OGC adopts important GeoPackage Standard for Mobile - OGC Press release.
- « OGC® GeoPackage Encoding Standard ».
- Le standard Geopackage facilite le partage de données géospatiales sur mobiles - Between the Poles.
- (en) « GeoPackage Encoding Standard (OGC), version 1.0 », sur Sustainability of Digital Formats, (consulté le ).
- « GeoPackage vector », sur www.gdal.org (consulté le ).
- « Le format Geopackage et QGis 3 | Blog SIG & Territoires » (consulté le )
- « Geopackage », sur Loïc's blog (consulté le ).
- (en) « Simple Features for R »
Liens externes
- (en) Site officiel
- Geopackage website - Règles d'implémentation, données exemples, , etc.
- Geopackage format description on digitalpreservation
- OGC GeoPackage Quick Facts