Je me suis demandé s'il était possible d'examiner le contenu d'un fichier de formes à l'aide de Python sans licence ArcMap. La situation est que vous pouvez créer des fichiers de formes à partir de nombreuses applications différentes, pas seulement à partir du logiciel ESRI. J'aimerais créer un script Python qui vérifie la référence spatiale, le type d'entité, les noms d'attributs et les définitions, ainsi que le contenu des champs d'un fichier de formes, et les compare à un ensemble de valeurs acceptables. J'aimerais que ce script fonctionne même si l'organisation n'a pas de licence ESRI. Pour faire quelque chose comme ceci, devez-vous utiliser ArcPy ou pouvez-vous creuser un fichier de formes sans utiliser ArcPy?
40
Réponses:
Je vous recommanderais de vous familiariser avec l' API Python GDAL / OGR pour pouvoir utiliser à la fois des données vectorielles et raster. Le moyen le plus simple de commencer à utiliser GDAL / OGR consiste à utiliser une distribution python telle que python (x, y) , Anaconda ou OSGeo4W .
Plus de détails sur l'utilisation de GDAL pour vos tâches spécifiques:
De plus, je recommanderais le tutoriel suivant de USU pour vous aider à démarrer.
Reprenant les exemples ci-dessus, le script suivant utilise les outils FOSS pour effectuer les opérations suivantes:
la source
inFeature = None
. Le livre de recettes GDAL / OGR ne fait pas partie de, ni n'a été écrit par l'équipe principale de GDAL / OGR.Il existe de nombreux modules pour lire les fichiers de formes en Python, plus anciens que ArcPy, consultez l’ index des packages Python (PyPi): fichiers de formes . Il y a aussi beaucoup d'exemples dans GIS SE (recherche de [Python] Fiona , par exemple)
Tous peuvent lire la géométrie, les champs et les projections.
Mais d’autres modules comme PySAL: la bibliothèque d’analyses spatiales Python , Cartopy (qui utilisent pyshp ) ou Matplotlib Basemap peuvent également lire des fichiers de formes, entre autres.
Le plus simple à utiliser est Fiona , mais si vous ne connaissez que ArcPy, utilisez pyshp , car osgeo et Fiona exigent l’ installation de la bibliothèque GDAL C / C ++, GeoPandas nécessite le module Pandas et PySAL est trop volumineux (beaucoup d’autres traitements).
Si vous souhaitez uniquement lire le contenu d'un fichier de formes, vous n'avez pas besoin de choses complexes, utilisez simplement le protocole d' interface géographique (GeoJSON) également implémenté dans ArcPy ( ArcPy: AsShape ).
Avec Fiona (en tant que dictionnaires Python):
Avec pyshp (sous forme de dictionnaires Python)
Avec osgeo / ogr (sous forme de dictionnaires Python)
Avec GeoPandas (en tant que cadre de données Pandas)
* note sur les géopandas Vous devez utiliser les anciennes versions de Fiona et GDAL avec celle-ci, sinon l'installation ne s'installera pas. GDAL: 1.11.2 Fiona: 1.6.0 Géopandas: 0.1.0.dev-
Il existe de nombreux tutoriels sur le Web et même des livres ( développement géospatial Python , apprentissage de l'analyse géospatiale avec Python et géotraitement avec Python , sous presse).
Plus généralement, si vous souhaitez utiliser Python sans ArcPy, reportez-vous à la rubrique Mappage thématique simple du fichier de formes à l'aide de Python?
la source
The kinds of data in GIS are roughly divided into rasters representing continuous scalar fields (land surface temperature or elevation, for example) and vectors representing discrete entities like roads and administrative boundaries. Fiona is concerned exclusively with the latter
Outre ArcPy, des bibliothèques géospatiales Python vous donneront ces capacités. Voici deux exemples:
La bibliothèque de fichiers de formes Python (pyshp)
GeoPandas
Si vous êtes intéressé par d'autres bibliothèques, ce post sur les bibliothèques essentielles de Python Geospatial est un bon endroit à regarder.
la source