Lorsque vous chargez un fichier GeoJSON en utilisant le json
bibliothèque, vous obtenez un dict
qui contient une entrée features
, qui contient la liste des fonctionnalités. Chaque fonctionnalité consiste à son tour en un dict
, qui contient entre autres une entrée geometry
. Le geometry
est un dict
contenant les entrées type
et coordinates
. Vous pouvez donc parcourir votre fichier GeoJSON comme ceci :
import json
with open('test.json') as f:
data = json.load(f)
for feature in data['features']:
print feature['geometry']['type']
print feature['geometry']['coordinates']
Ma bibliothèque PyGeoj est spécifiquement conçue comme un lecteur et un écrivain de fichiers geojson, avec une API simple qui transforme le contenu du fichier en objets avec des attributs, vous n'avez donc pas à vous occuper directement des dictionnaires. Il propose également des méthodes pratiques, telles que calculer et ajouter la bbox pour l'ensemble de la collection de fonctionnalités ou uniquement pour chaque fonctionnalité.
Ainsi, par exemple, le code suivant ferait ce que l'affiche demande :
import pygeoj
testfile = pygeoj.load("test.geojson")
for feature in testfile:
print feature.geometry.type
print feature.geometry.coordinates
La bibliothèque peut également importer et exporter des objets depuis/vers d'autres bibliothèques via le _geo_interface_
protocole, entre autres comme on le voit dans la documentation sur la page Github du projet.
Il existe de nombreux modules Python géospatiaux capables de convertir GeoJSON en shapefiles (et inversement) :
- Fiona
- PySAL
- Pyshp 1.7 et versions ultérieures
- GDAL/OGR
- PyQGIS avec la nouvelle API
- python-geojson
voir les applications Python Geo_interface