Fichiers Shape, GeoJSON et TopoJSon

Connaissez-vous le format shape ?

Il s’agit d’un format binaire destiné à encoder des « formes » c’est à dire des vecteurs du type polygone, lignes, points, etc.

Grâce à celui-ci vous pouvez-récupérer la géométrie de continents, pays, région, lacs, etc.

Il existe un SIG (système information géographique) gratuit et disponible appelé QGIS permettant d’afficher, d’éditer les couches de shapes. Je vous conseille vivement de le télécharger pour rendre de visu votre travail. Il est à noter que celui-ci permet le drag and drop des fichiers shapes (et GeoJSON) directement au sein de la fenêtre principale.

Le format shape

Si vous regardez de plus près le format shape, celui-ci est constitué de plusieurs fichiers avec des extension telles que : SHP, DBF, SHX, etc. En gros les informations sont réparties dans plusieurs fichiers.

Le fichier SHP notamment contient des metadata.
Le fichier DBF contient les attributs des objets contenus dans le fichier SHP.
Le fichier SHX qui contient l’index de la géométrie.

Ou se procurer des fichiers shapes ?

Le plus simple est d’utiliser ceux de Natural Earth Data. Ce site propose des formats shapes plus ou moins détaillés en fonction des usages prévus : ici. Téléchargez un des trois format proposé et vous aurez ce qu’il faut pour travailler.
Différents détails et couches de shapes sont proposés : les pays, les régions, les lignes frontières, les routes, les lacs, etc. Plus vous ajoutez de couches plus il y a des informations, plus il y a de vecteurs.

Ici par exemple les terres (land) : ici.
Ici les côtes.
Ici les mers.

Une fois que vous aurez téléchargé ces trois niveaux de shapes, vous obtiendrez le monde avec les terres, les mers et océans et le contour de côtes, chaque couche de shapes décrivant des informations distinctes.

Voici le rendu des 3 couches ci-dessus dans QGIS.
QGIS

Avec QGIS on peut mixer du raster (des images) et des vecteurs, voici un rendu de shapes (contours) sur la texture mise à disposition par la NASA : La Blue Marble.

Blue marble + shapes

Tout ceci est bien intéressant mais nos shapes (formes) sont au format binaire et cela n’est pas très simple à lire. Il est donc bien utile de transformer ce binaire en JSON (JavaScript Object Notation), et notamment en GeoJSON.

GeoJson

Ce format est bien plus simple à analyser. Premièrement c’est de l’ascii, et ensuite il existe des quantités industrielles de bibliothèques pour naviguer à l’intérieur. Il suffit d’aller lire le site des spécifications de JSON et de lire complètement la page de ce site.

Le format GeoJson est une spécialisation de JSON, un format lisible qui va nous permettre de transformer nos fichiers binaires shapes en format GeoJSon : Voir ce site.

Je propose ici plusieurs techniques pour transformer notre binaire en GeoJSON :
– Utiliser un utilitaire (en ligne de commande) de la série GDAL (outils open source). Son petit nom est ogr2ogr.
– Utiliser QGIS pour ce faire.

Utiliser QGIS pour générer du GeoJSON

Trouver la fonction dans QGIS se mérite ! Ouvrez le menu : Couche -> Sauvegarder sous...
qgis et json
Et voilà le tour est joué le fichier shape a été transformé en GeoJSON.

Voici une dernière capture qui montre notre shape en GeoJSON. A vos parseurs !
geojson

TopoJSON

Le format GeoJSON est riche : Les structures administratives sont décrites et les couches peuvent être nombreuses : lacs, pays, routes, océans, etc. On peut ainsi récupérer que des informations sur la France par exemple alors que le fichier contient des informations bien plus riches.

Il existe un moyen pour simplifier tout ceci en ne conservant que la géométrie et en optimisant le format en retirant toutes les géométries redondantes. Il s’agit de TopoJSON.

Je vous laisse le soin de lire les spécifications qui sont très simples.

Sur ce bonne lecture et à bientôt.

Catégories
0 Comments
0 Pings & Trackbacks

Laisser un commentaire