Suite

Comment exécuter OGR dans des scripts ArcGIS ?

Comment exécuter OGR dans des scripts ArcGIS ?


Lorsque j'exécute mon script en dehors d'ArcGIS, cela fonctionne car lors de l'exécution, le script utilise un module GDAL et OGR d'osgeo. Lorsque j'utilise un script comme outil dans ArcGIS, cela ne fonctionne pas. Dans PySripter, je peux importer tous les modules et cela fonctionne. Dans la fenêtre Python d'ArcGIS, je ne peux pas importer car j'obtiens cette erreur :

Erreur d'analyse SyntaxError : syntaxe non valide (ligne 2) import ogr Erreur d'exécution Traceback (appel le plus récent en dernier) : fichier "", ligne 1, dans le fichier "C:Python27ArcGIS10.1libsite-packagesosgeoogr .py", ligne 26, dans _ogr = swig_import_helper() Fichier "C:Python27ArcGIS10.1libsite-packagesosgeoogr.py", ligne 22, dans swig_import_helper _mod = imp.load_module('_ogr ', fp, chemin d'accès, description) ImportError : le chargement de la DLL a échoué :

Dans le cas où j'importe gdal dans ArcGIS Python Window, je n'obtiens pas cette erreur. Comment forcer arcgis à importer ogr et à l'utiliser dans ModelBuilder ou Script ?? Je vérifie beaucoup de solutions, notamment la réinstallation, la modification et l'ajout de variables d'environnement. J'ai vérifié :

  1. http://pythongisandstuff.wordpress.com/2011/07/07/installing-gdal-and-ogr-for-python-on-windows/
  2. http://www.wildsong.biz/index.php/Running_GDAL_scripts_in_ESRI_Model_Builder

et je n'ai toujours pas de bonne solution. Une idée?

MISE À JOUR : j'essaie également d'utiliser l'importation directe dans mon script : import imp ogr = imp.load_source('ogr', 'c:Python27Libsite-packagesosgeoogr.py' et j'obtiens la même erreur. Si J'utilise cette méthode dans un script autonome, cela fonctionne.


J'ai fait fonctionner cela sur mon système 10.1, au moins un peu (je peux exécuterimporter ogrà partir de la fenêtre python d'ArcGIS et cela semble fonctionner).

J'ai d'abord essayé de rendre mon système aussi propre que possible. J'ai désinstallé les versions précédentes de GDAL (de l'OSGeo4W). J'ai toujours PostgreSQL+PostGIS qui a sa propre version de GDAL, mais je ne peux pas le désinstaller (j'en ai besoin).

Deuxièmement, il semble que le python d'ArcGIS se trouve dans un dossier différent sur mon système (il se trouve dans C:Program Files (x86)ArcGISDesktop10.1Python27ArcGIS10.1, pas C:Python27ArcGIS10.1) . Cela est probablement dû au fait que mon environnement 10.1 est une nouvelle installation par rapport à une mise à niveau ou quelque chose du genre.

J'ai utilisé les installateurs GDAL de cette page. Spécifiquement:

  • Noyau GDAL
  • Plugin FileGDB (vous voulez probablement ceci)
  • Liaisons Python 2.7

J'ai ensuite configuré les variables d'environnement suivantes :

  • CHEMIN: Ajoutée;C:Program Files (x86)GDALjusqu'à la fin. Cela a résolu l'erreur de chargement de la DLL pour moi.
  • GDAL_DRIVER_PATH: mis àC:Program Files (x86)GDALgdalplugins(pour faire fonctionner les trucs FileGDB)
  • GDAL_DATA: mis àC:Program Files (x86)GDALgdal-data(pour faire fonctionner la reprojection et d'autres choses liées à la projection)


Voir la vidéo: Exécuter des requêtes de sélection avancées sur ArcGIS