Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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 Thu 20 June 2013 08:00

Samy-DT
Participant assidu
Date d'inscription: 5 Apr 2011
Messages: 211

QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

Bonjour,

J'ai un besoin croissant d'apprendre à automatiser certaines tâches sous les SIG. Je travaille sous QGIS 1.8, installé avec OSGeo4W, version 1.9.2 de gdal, et je suis sous Windows 7.

Je dois reprojeter et convertir du .tab au .shp des dizaines de couches de ma base de données. Idéalement, je sortirai même les .tab directement dans une base Spatialite...

J'ai vu que je pouvais utiliser ogr2ogr pour à la fois changer le type et la projection, ainsi que le dossier de sortie.

Ci-joint la ligne de commande que j'ai tenté sans succès, avec les questions que je me pose en commentaire. Désolé pour le fichier .txt, le .bat ne passe pas.

Pouvez-vous m'aider à débloquer ce premier batch ?

Merci d'avance, a+

Dernière modification par Samy-DT (Thu 20 June 2013 08:04)


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

Hors ligne

 

#2 Thu 20 June 2013 08:27

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

bonjour,

en fait, pour convertir un ensemble de fichiers d'un format à un autre, il suffit de mettre le nom du dossier sans passer par de la prog' batch
qqch comme

Code:

[ton chemin]\ogr2ogr.exe -s_srs EPSG:3727 -t_srs EPSG:2975 [dossier des TABS] [dossier des SHPs]

Pour mettre le shp dans une base spatialit, il faudra sans doute passer par du batch.
pour débugger le tien, procède par étape avec des echo pour voir si la boucle fonctionne bien


geodata au cerema et petits billets en géomatique

Hors ligne

 

#3 Thu 20 June 2013 12:50

Samy-DT
Participant assidu
Date d'inscription: 5 Apr 2011
Messages: 211

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

Ok pour le chemin de sortie,

Les crochets sont obligatoires ? pour l'instant comme ça bloque au niveau de ogr2ogr je ne peux pas vérifier si ça marche ^^.

Pour utiliser ogr2ogr.py à partir des dossiers python\plugins\Sextante\gdal de QGIS dans le batch, faut-il déclarer une variable d'environnement ?

A+

Hors ligne

 

#4 Thu 20 June 2013 14:40

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

Les crochets, c'est juste pour l'exemple. il te faut mettre ton chemin à la place vers ogr2ogr

il vaut mieux renseigner la variable d'environnement PATH vers les différentes dlls


geodata au cerema et petits billets en géomatique

Hors ligne

 

#5 Thu 20 June 2013 21:17

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

Bonsoir,

Menu Analyse > Modeler et créer ton modèle ?! Tu peux te créer des scripts aussi.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#6 Sun 23 June 2013 08:31

Samy-DT
Participant assidu
Date d'inscription: 5 Apr 2011
Messages: 211

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

Bonjour,

Pouvez-vous me confirmer si j'utilise le bon ou le mauvais ogr2ogr ? D'ailleurs quelle est la différence entre un bon et un mauvais ogr2ogr ?...
Bref je note que le seul exécutable que j'ai se trouve dans un dossier ms4w de mon pc, mais que quand je le test seul, j'ai un message d'erreur qui me dit que gdal19.dll n'est pas installé, bien que la .dll en question soit bien dans un autre dossier de ms4w.

D'autre part j'ai des ogr2ogr.py et .pyc dans le dossier des plugins Sextante de qgis. Déjà si quelqu'un pouvait m'éclairer sur le rôle des uns et des autres, ça serait cool.
A vu de nez, je dirais que le .exe est plutôt à utiliser dans un batch et le .py dans un script Python, mais je n'ai pas encore vraiment compris les frontières entre les langages...Peut-on utiliser un script python dans un batch ? Je sais pas...

Merci pour vos conseils,

A+

Hors ligne

 

#7 Wed 26 June 2013 08:31

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

D'ailleurs quelle est la différence entre un bon et un mauvais ogr2ogr ?...


tu peux avoir plusieurs ogrogr: celui installé via les fwtools, celui de mapserver, celui de qgis. Ces trois pourraient cohabiter et correspondre à de multiples versions de gdal/ogr, offrant l'accès à une palette différente de formats.

quand je le test seul, j'ai un message d'erreur qui me dit que gdal19.dll n'est pas installé, bien que la .dll en question soit bien dans un autre dossier de ms4w.


Il faut que tu ajoutes le chemin vers cette dll dans la var. d'environnement PATH. gdal19 semble indiquer que la version de GDAL/OGR que tu utilises est la 1.9. C'est une mouture relativement avancée.

D'autre part j'ai des ogr2ogr.py et .pyc dans le dossier des plugins Sextante de qgis. Déjà si quelqu'un pouvait m'éclairer sur le rôle des uns et des autres, ça serait cool.
A vu de nez, je dirais que le .exe est plutôt à utiliser dans un batch et le .py dans un script Python, mais je n'ai pas encore vraiment compris les frontières entre les langages...Peut-on utiliser un script python dans un batch ? Je sais pas...


Oui, on peut utiliser un script python dans un batch.
C'est le cas d'un programme comme gdal_polygonize.py.

Code:

@python gdal_polygonize.py

Ne te préoccupe pas des fichiers python. Utilise les exécutables.

Dernière modification par baobazz (Wed 26 June 2013 08:31)


geodata au cerema et petits billets en géomatique

Hors ligne

 

#8 Thu 27 June 2013 14:42

Samy-DT
Participant assidu
Date d'inscription: 5 Apr 2011
Messages: 211

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

Salut Baobazz,

Impec' pour le problème de .dll, le problème de variable d'environnement est résolu.

En revanche la commande ne marche toujours pas.

J'ai simplifié le code pour qu'il ressemble le plus possible aux plus simples trouvés sur le net (cf. pièce jointe).

J'ai beau avoir comparé avec plusieurs exemples sur le net, il me manque des connaissances pour savoir où ça coince.

J'aimerais bien comprendre et finir par le faire marcher.

Merci,
A+


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

Hors ligne

 

#9 Thu 27 June 2013 16:02

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

quel est ton message d'erreur?


geodata au cerema et petits billets en géomatique

Hors ligne

 

#10 Fri 28 June 2013 07:07

Samy-DT
Participant assidu
Date d'inscription: 5 Apr 2011
Messages: 211

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

"\R était inattendu"

Hors ligne

 

#11 Fri 28 June 2013 10:42

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

Le script:

Code:

@echo off
for /f "delims=" %%a IN ('dir /b /s C:\TEMP\*.shp') do ogr2ogr -s_srs EPSG:3727 -t_srs EPSG:2975 %%~na_2975.shp %%~na.shp
pause

Petit conseil, dans un premier temps, quand tu batches, teste des choses avec commande echo.

Code:

@echo off
for /f "delims=" %%a IN ('dir /b /s C:\TEMP\*.shp') do echo "ogr2ogr -s_srs EPSG:3727 -t_srs EPSG:2975 %%~na_2975.shp %%~na.shp"
pause

Dernière modification par baobazz (Fri 28 June 2013 11:03)


geodata au cerema et petits billets en géomatique

Hors ligne

 

#12 Fri 28 June 2013 15:02

Samy-DT
Participant assidu
Date d'inscription: 5 Apr 2011
Messages: 211

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

Merci Baobazz pour cette proposition.

ça fait avancer les choses, mais nous n'y sommes pas encore tout à fait. L'exécution de ton code ouvre une fenêtre cmd et affiche l'opération mais ne créé pas physiquement les nouvelles couches.

D'autre part, comme je veux aussi comprendre le batch pour progresser j'ai plusieurs questions :

- /f semble avoir pour fonction d'ouvrir chaque fichier et d'en parcourir les lignes. En jouant avec les tokens et delim on peut naviguer dedans, ok.
Or dans mon cas, c'était plutôt lire des fichiers dans plusieurs répertoires. Du coup pourquoi utiliser /f plutôt que /R ? Car si je cite "batcher.fr", /R "parcourt l'arborescence de répertoires depuis la racine [lecteur:]chemin, en exécutant FOR dans chaque répertoire de l'arborescence." ça semblait être ça...

- Pourquoi utiliser "delims=" sans rien mettre comme délimitateur ? En faisant les petits exemples de Batcher.fr je comprends que ça sert à séparer les différentes parties au sein d'un fichier...quelle utilité ici ?


- %%~na_2975.shp : affiche chaque fichier renommé ? Pourquoi ~na alors que la variable s'appelle %%a ?

- %%~na.shp  : affiche le nom du fichier traité ?

Désolé pour toutes ces questions, mais ce n'est pas limpide...en tous cas par pour moi.

A+

Dernière modification par Samy-DT (Fri 28 June 2013 15:04)

Hors ligne

 

#13 Mon 01 July 2013 12:40

Samy-DT
Participant assidu
Date d'inscription: 5 Apr 2011
Messages: 211

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

Bonjour,

J'ai fini par réussir à faire tourner ce batch avec la ligne suivante écrite directement dans la ligne de commande OsGeo4w à la racine de ma base de données test :

for /R %f in (*.tab) do ogr2ogr -s_srs EPSG:3727 -t_srs EPSG:2975 %f_2975 %f.


Ceci dit, j'aurais bien aimé comprendre le code de vos propositions, surtout celle de Baobazz. ça m'intéresse de savoir pourquoi /f, pourquoi %~fna.shp etc...

Merci !

A+

Hors ligne

 

#14 Mon 01 July 2013 13:14

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

%%~na permet de récupérer le nom du fichier sans l'extension quand la variable s'appelle %%a
si c'est %%f comme dans ton exemple, il faut alors mettre
%%~nf
quant à delims, il est possible que ça marche sans (j'ai fait un bête copier coller)


geodata au cerema et petits billets en géomatique

Hors ligne

 

#15 Mon 01 July 2013 19:28

Samy-DT
Participant assidu
Date d'inscription: 5 Apr 2011
Messages: 211

Re: QGIS 1.8 / Gdal 1.9.2 (Win 7) : Batcher

Ok, noté, merci pour tes réponses.

A+

Hors ligne

 

Pied de page des forums

Powered by FluxBB