Il existe plusieurs formats de fichier utilisés dans les logiciels SIG (Shapefile, Geopackage, GeoJSon, OGC GML, OGC KML, etc), mais le plus répondu est le fameux « Shapefile ».
Le shapefile est le plus connu, mais récemment on parle du geopackage très performant, alors quoi choisir: shapefile ou geopackage?
De mon côté j’ai opté pour le format « Geopackage » pour plusieurs raisons que j’explique dans cet article.
Qu’est-ce que le Geopackage?
C’est un format basé sur la base de données SQLite qui permet une meilleure performance (plus de rapidité dans l’exécution des requêtes et l’affichage des données).
Le principe de son utilisation est assez simple: on crée un dossier « Geopackage » qui sera une base de données pour le stockage des couches et d’autres fichiers.
1- Format « Shp »
A- Inconvénients
Format multifichier:
Qui d’entre nous ne s’est pas cassé la tête avec les 3 fichiers d’extension du format « Shp » (.shp, .dbf, .shx)).
Pour copier une couche il faut copier tous les fichiers d’extension, et pour le renommer il faut aussi les renommer tous.
Si par erreur on oublie de renommer un fichier d’extension, et qu’on est débutant, …. imaginez la suite!!!
Et encore, dans une liste de plusieurs couches c’est la perte totale. Au lieu d’avoir 4 fichiers pour 4 couches on en a 12 .
Pour envoyer une couche « Shp » il faut envoyer 3 fichiers au lieu d’un.
Je pense ça diminue la performance et fait perdre du temps.
SCR non défini
Par défaut le fichier shapefile n’a pas de SCR défini. Les 3 fichiers d’extensions n’enregistrent pas cette information.
Il y a la quatrième extension « .prj » qui peut être ajoutée, mais qui n’est pas automatiquement créée. Et souvent, des problèmes surgissent même en ajoutant cette extension.
Et un dernier soucis, cette extension « .prj » n’est pas prise en compte par tous les logiciels SIG.
255 champs d’attributs
Avec le shapefile, pas plus de 255 champs d’attributs. Pour les gros fichiers, ce format est inadapté.
Type de données limité
Les nombres à virgule flottante sont stockés en format texte, donc pas de type de données pour ces pauvres nombres!!!
Les grands entiers n’ont pas du tout de place, on n’en parle pas avec le shapefile. Ce format est à oublier.
Et avec les types de données avancés aussi, le shapefile n’est pas en mesure de les stocker (type le binaire « Blob » par exemple).
L’encodage n’est pas spécifié
Avec ce format pas de moyen pour spécifier l’encodage sauf dans les propriétés du fichiers (l’astuce primitive du clic droit sur le fichier puis propriétés). Et souvent ce n’est pas le bon.
De mon coté, je dois souvent modifier l’encodage des couches manuellement.
Limite de taille à 2GO:
Là, c’est assez clair. La taille des fichiers ne doit pas dépasser 2GO.
Pas de géométrie mixte
Un seul type de géométrie pas plus.
Pas de valeurs Nulles
Pas de distinctement entre « pas de données » et « valeur nulle » (le fameux zéro) pour les champs numériques.
Nom de champs limité à 10 Caractères
C’est un petit inconvénient, mais ça peut être important pour certaines personnes.
Avantages
C’est le format le plus utilisé
c’est un avantage, car en disant « Shapefile », presque, tout le monde comprend, même les débutants. Mais dire « Geopackage », il y aura forcément des personnes qui ne le connaissent pas ou qui ne sont pas familiarisées avec.
Format « Geopackage »
Avantages
Meilleure organisation
Avec ce format, pas besoin de trop se casser la tête. Tout est sauvegardé dans le « Geopackage » sous forme de base de données SQLite.
C’est organisé en arborescence. Dans la base de données « Geopackage » on retrouve toutes les tables créées (géométriques ou pas). Chaque couche est représenté par un seul fichier (voir image ci-dessous).
Et si on regarde dans le dossier contenant le geopackage on retrouve 3 fichiers d’extensions de la base de données. Toutes les couches sont à l’intérieur de ce geopackage.
Types de géométrie plus variés
Avec le geopackage on peut créer des objets de plusieurs géométries:
- Point
- Ligne
- Polygone
- Multipoint
- Multiligne
- Multi-polygone
- Courbe
- Polygones de courbes
- Multi-courbes
- Multi-surface
Dans un seul geopackage, on peut enregistrer plusieurs couches de géométries différentes.
SCR défini
Une fois le SCR défini, il est automatiquement enregistré dans le geopackage, contrairement au problème récurrent de SCR manquant pour le format shapefile.
Léger et rapide
Ce format est plus léger qu’une base de données mais aussi rapide.
Aucune limite
Aucune limite avec
- Nombre de champs d’attributs illimité;
- La taille du fichier illimitée.
Types de données variés
Avec geopackage, on a droit à plusieurs types de données:
- Texte
- Nombre entier
- Nombre décimal
- Date
- Date et heure
- Booléen
- Binaire (BLOB)
Possibilité d’enregistrer un projet en geopackage
La cerise sur le gâteau, on peut enregistrer tout un projet dans une base de données geopackage. Dans ce cas, pas besoin de s’inquiéter d’un oublie de fichier, tout est stocké dans un dossier avec 3 fichiers d’extensions.
Il suffit d’envoyer la base de données, et la personne va recevoir le projet avec toutes les couches et mêmes d’autres fichiers (comme le fichier de style).
Inconvénients:
Peu connu et jeune
C’es un format peu connu et il a besoin de temps pour se faire connaître.
Format multifichier
Geopackage est un format avec 3 fichiers d’extension.
On peut dire alors qu’il est semblable au format shapefile?!!.
Oui!!! ils ont le même nombre de fichiers d’extension!!!
Non!!!
Le geopackage enregistre automatiquement l’encodage et le SCR.
Pour enregistrer plusieurs couches, il est plus performant notamment pour un projet.
- Pour envoyer 10 couches vectorielles format shapefile d’un projet, on envoie un dossier avec 30 fichiers d’extension.
- Pour envoyer les mêmes 10 couches dans une base geopackage, on envoie un seul dossier contenant 3 fichiers d’extensions. Là, une autre différence.
Aucun accès direct aux couches du geopackage
Copier par exemple une couche d’un geopackage directement est impossible (voir image ci-dessous).
Pour extraire une couche enregistrée dans un geopackage, il faut accéder à un logiciel SIG pour exporter cette couche ou bien utiliser un logiciel de gestion de base de données.
Conclusion
Pour ma part « Geopackage »!!! Oui.
Mais je garde quant même le « Shapefile » pour les rares besoins 😉
En SIG, on travaille souvent en projet avec plusieurs couches, et le format geopackage facilite les choses.
Si on opte pour le geopackage, il faut accepter l’effort en plus, qui est d’ouvrir à chaque fois un logiciel SIG ou logiciel de gestion de bases de données pour exporter une couche contenue dans une base geopackage.
Si vos partenaires et collaborateurs utilisent le format shapefile, il faut choisir entre continuer avec le shapefile ou les convaincre d’utiliser le geopackage. Mais ce qui est sûr, tout changement prend du temps, et ce n’est pas facile de changer les habitudes des gens habitués depuis des années au shapefile.
Vous m’avez convaincu! Je passe au Geopackage.
Merci pour le commentaire 😉 et ravie que cet article vous soit utile.
Bonjour, Pour ma part je fonctionne plus qu’avec PostgreSQL / PostGIS depuis cinq ans. Tout le monde y accède via le SIG Web de ma collectivité. Et quand un partenaire a besoin d’un export j’utilise un ETL pour lui extraire au format qu’il souhaite mais ca devient de moins en moins fréquent.
Bonjour, merci de votre commentaire et ça fait toujours plaisir d’apprendre des expériences des autres.
Mais je pense pour ceux qui n’utilisent pas les SGBDD et qui font simplement de la cartographie avec les logiciels SIG, geopackage peut être un bon moyen pour travailler plus efficacement.