2017-08-31 2 views
1

J'ai essayé d'obtenir la bibliothèque gdal en utilisant Python 2.7 et Anaconda dans Windows 8 environnement.Installation de gdal avec conda et définition de variables d'environnement

Outre gdal, j'ai aussi installé libgdal (franchement, je ne comprends pas vraiment la différence entre les deux). Je semble maintenant avoir gdal 2.1.0 et 2.0.2 ainsi que libgdal 2.1.0.

Cependant, quand je lance mon code py, il y a une erreur gdal:

'gdalwarp' is not recognized as an internal or external command, operable program or batch file.

Je l'ai déjà fixé la variable d'environnement GDAL_DATA pour pointer vers

C:\Anaconda\pkgs\libgdal-2.1.0-vc9_0\Library\share\gdal

J'ai également ajouté un chemin , même si je ne suis pas tout à fait sûr où cela devrait pointer:

C:\Anaconda\pkgs\libgdal-2.1.0-vc9_0\Library\bin

J'ai essayé la même chose avec gdal 2.0.2 sans succès. gdalwarp.exe semble exister sous libgdal 2.1.0 et gdal 2.0.2.

Des idées? Y a-t-il un problème avec l'installation ou n'ai-je pas correctement défini les variables d'environnement?

Pour votre information, je l'ai essayé différentes commandes d'installation, notamment:

conda install gdal 
conda install -c conda-forge gdal 
conda install -c anaconda gdal 

Addendum: J'ai trouvé une solution manuelle: je définir les variables GDAL_DATA et PATH dans le terminal (pointant vers libgdal 2.1.0) avant d'exécuter le code ...

Cependant, il y a toujours un problème quand je lance mon code py: il est censé convertir un fichier TIFF à shp avec gdal_polygonize:

cmd = 'gdal_polygonize.py %s -f "ESRI Shapefile" %s'%(dst_tif, dst_shp) 

Il n'y a pas d'erreur mais le fichier de formes n'est pas créé (ce qui entraîne une erreur plus tard dans le code). Des idées pour savoir pourquoi gdal ne fonctionne toujours pas correctement?

J'ai essayé pointant les variables d'environnement à osgeo:

set PATH=%PATH%;C:\Anaconda2\Lib\site-packages\osgeo\scripts 
set GDAL_DATA=C:\Anaconda2\Lib\site-packages\osgeo\data\gdal 

fonctionne gdalinfo mais le gdal_polygonize utilisé dans mon code ne semble pas Py à travailler.

Répondre

0

La clé est le script d'activation qui est (potentiellement) exécuté lors de l'activation de l'environnement. Toutes les constructions GDAL pour Conda ne le contiennent pas. D'après mon expérience, les constructions récentes de Conda-Forge sont vraiment bonnes.

Avec vos exigences de py27 et GDAL 2.1 je peux le faire fonctionner en suivant ces étapes:

1) Créer un nouvel environnement: conda create -n gdaltest python=2.7

2) Activer: activate gdaltest

3) Installer GDAL: conda install gdal=2.1 -c conda-forge

4) environnement Réactiver : deactivate + activate gdaltest Cela force l'exécution du script d'activation juste installé, ceci définit les variables d'environnement.

Si je démarre python et exécute os.system("gdalinfo"), je peux voir son ramassé correctement. Et en cours d'exécution os.environ['GDAL_DATA'] confirme le chemin est défini correctement.

Vous pouvez voir la (de) script activation vous à: C:\Miniconda3\envs\<env name>\etc\conda\activate.d\gdal-activate.bat

Il y a quelques années cela n'a pas aussi bien qu'il le fait aujourd'hui, alors assurez-vous que vous avez une version récente Conda (4.3. x) etc.

L'avantage de cette méthode est que lorsque vous changez d'environnement, vos chemins sont également modifiés en conséquence. Un chemin d'accès «codé en dur» GDAL_DATA peut potentiellement causer des problèmes de compatibilité si vous mélangez et associez différentes versions de GDAL (bien que cela devrait normalement fonctionner correctement).