banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 03 June 2015 14:24

Maxime Vitter
Participant occasionnel
Lieu: Lyon
Date d'inscription: 26 Apr 2013
Messages: 31

gdal_merge.py en ligne de commande

Bonjour,

Je souhaite utiliser gdal_merge.py en ligne de commande afin d'assembler de nombreuses petites images en tif (+ de 600 images).

Après plusieurs essais où je lui indique des chemins de GDAL ou python différents, j'obtiens toujours un message d'erreur de ce type. Sur l'exemple, il s'agit d'un cas simple d'assemblage de deux images.

avez-vous une idée de la cause et de comment la contourner?

merci pour votre aide
Maxime


Code:

 
> system(paste0(ch_GDAL,"python.exe ",ch_GDAL,"gdal_merge.bat -of GTiff -o D:/THESE/ASCOSEG_vbigData/data/3_images_tif/essai.tif D:/THESE/ASCOSEG_vbigData/data/3_images_tif/go_06_1016_6344_9.tif D:/THESE/ASCOSEG_vbigData/data/3_images_tif/go_06_1016_6346_9.tif")
+ )
ImportError: No module named site
Message d'avis :
l'exécution de la commande 'C:/OSGeo4W64/bin/python.exe C:/OSGeo4W64/bin/gdal_merge.bat -of GTiff -o D:/THESE/ASCOSEG_vbigData/data/3_images_tif/essai.tif D:/THESE/ASCOSEG_vbigData/data/3_images_tif/go_06_1016_6344_9.tif D:/THESE/ASCOSEG_vbigData/data/3_images_tif/go_06_1016_6346_9.tif' renvoie un statut 1 
>

Maxime VITTER - Doctorant CIFRE en télédétection

Hors ligne

 

#2 Thu 04 June 2015 08:46

Nicolas Granier
Participant assidu
Date d'inscription: 19 Apr 2007
Messages: 271

Re: gdal_merge.py en ligne de commande

Bonjour,
C'est un message d'erreur assez classique.
La console indique que le module site.py n'existe pas.
Pour cela il vous faut indiquer dans les variables d'environnement une variable PYTHONPATH qui contiendra la valeur de l'emplacement des librairies python de la version de python installée avec OSGEO. Normalement => C:\OSGeo4W64\apps\Python27\Lib

Si cela ne fonctionne pas vous pouvez peut être aussi essayer de remplacer le "python.exe" par "C:/OSGeo4W64/bin/python.exe" si vous avez plusieurs versions de pythons installées
A+
Nicolas GRANIER

Hors ligne

 

#3 Fri 05 June 2015 16:03

Maxime Vitter
Participant occasionnel
Lieu: Lyon
Date d'inscription: 26 Apr 2013
Messages: 31

Re: gdal_merge.py en ligne de commande

Bonjour,

merci pour votre réponse. J'ai pu avancé. malgré tout je suis de nouveau bloqué via un second message d'erreur. Il doit falloir déclarer d'autres librairies de python? avez-vous une idée?

Code:

> system(paste0("C:/OSGeo4W64/bin/python.exe ",ch_GDAL,"gdal_merge.py -of GTiff -o D:/MVI/THESE/ASCOSEG_vbigData/data/3_images_tif/essai.tif D:/MVI/THESE/ASCOSEG_vbigData/data/3_images_tif/go_06_1016_6344_9.tif D:/MVI/THESE/ASCOSEG_vbigData/data/3_images_tif/go_06_1016_6346_9.tif"))
Traceback (most recent call last):
  File "C:/OSGeo4W64/bin/gdal_merge.py", line 37, in <module>
    import gdal
  File "C:\OSGeo4W64\apps\Python27\lib\site-packages\gdal.py", line 2, in <module>
    from osgeo.gdal import deprecation_warn
  File "C:\OSGeo4W64\apps\Python27\lib\site-packages\osgeo\__init__.py", line 21, in <module>
    _gdal = swig_import_helper()
  File "C:\OSGeo4W64\apps\Python27\lib\site-packages\osgeo\__init__.py", line 17, in swig_import_helper
    _mod = imp.load_module('_gdal', fp, pathname, description)
ImportError: DLL load failed: Le module spécifié est introuvable.
Warning message:
running command 'C:/OSGeo4W64/bin/python.exe C:/OSGeo4W64/bin/gdal_merge.py -of GTiff -o D:/MVI/THESE/ASCOSEG_vbigData/data/3_images_tif/essai.tif D:/MVI/THESE/ASCOSEG_vbigData/data/3_images_tif/go_06_1016_6344_9.tif D:/MVI/THESE/ASCOSEG_vbigData/data/3_images_tif/go_06_1016_6346_9.tif' had status 1 
>

merci encore pour votre aide
Maxime


Maxime VITTER - Doctorant CIFRE en télédétection

Hors ligne

 

#4 Mon 08 June 2015 11:48

Nicolas Granier
Participant assidu
Date d'inscription: 19 Apr 2007
Messages: 271

Re: gdal_merge.py en ligne de commande

Bonjour,
après pas mal d'investigation, il s'agit d'une problème de lien sur un fichier qui est du à des "\" au lieu de "/".
L'erreur est sur ce fichier là :  C:\OSGeo4W64\apps\Python27\Lib\site-packages\osgeo\__init__.py

J'ai modifié le fichier pour virer l'erreur.
Je mets le fichier en PJ.
A+

Nicolas GRANIER

Dernière modification par Nicolas Granier (Mon 08 June 2015 11:50)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#5 Mon 08 June 2015 15:08

Maxime Vitter
Participant occasionnel
Lieu: Lyon
Date d'inscription: 26 Apr 2013
Messages: 31

Re: gdal_merge.py en ligne de commande

Bonjour,

merci beaucoup! ça fonctionne!

j'ai testé une installation indépendante de GDAL avec des liaisons Python en suivant ce lien
https://pythongisandstuff.wordpress.com … n-windows/

j'ai obtenu mon résultat malgré un plantage de Python à la fin du processus. Je ne suis pas convaincu.

votre solution fonctionne très bien et j'opte pour celle-ci. Merci pour votre temps et vos recherches.
Si je comprends bien, il s'agit d'un conflit de code Linux/Windows? car je suppose que ce problème n'a pas lieu sous linux?
Malgré tout, si je suis amené à implémenter mon script sur un autre ordinateur je suis obligé de remplacer ce .py de la même manière. Ce n'est pas pratique. peut on envisager une mise à jour de ce problème dans les prochaines versions de GDAL?

encore merci et Bravo!
A +
Maxime


Maxime VITTER - Doctorant CIFRE en télédétection

Hors ligne

 

#6 Mon 08 June 2015 17:11

Nicolas Granier
Participant assidu
Date d'inscription: 19 Apr 2007
Messages: 271

Re: gdal_merge.py en ligne de commande

Si je comprends bien, il s'agit d'un conflit de code Linux/Windows?


oui c'est ça les chemins de dossier en unix sont sous la forme dossier1/dossier2/... et sous Windows c'est dossier1\dossier2\...
Je n'ai fait dans le fichier python à problème qu'insérer une ligne pour remplacer les "\" par des "/".

car je suppose que ce problème n'a pas lieu sous linux?


pas testé mais je ne pense pas

Ce n'est pas pratique. peut on envisager une mise à jour de ce problème dans les prochaines versions de GDAL?


OSGEO4W n'est qu'une seule des applications intégrant GDAL. je ne suis pas sur que l'erreur soit dans tous les applicatifs. Par exemple QGIS intègre aussi une version complète de GDAL. Si vous regarder dans le dossier bin de qgis vous retrouverez surement aussi un gdal_merge.py"
Si vous êtes "English fluently" vous pouvez reporter le problème sur la page de suivi de bug (faut s'inscrire avant) ici :
http://trac.osgeo.org/gdal/

Bonne continuation dans vos projets géomatiques.
Nicolas GRANIER

Hors ligne

 

Pied de page des forums

Powered by FluxBB