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

Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.

Vous allez recevoir un message pour effectuer ce changement de mot de passe.

Merci de bien respecter les règles préconisées.

#1 Tue 28 March 2017 14:29

bruhnild
Participant actif
Lieu: Lyon
Date d'inscription: 7 Jun 2014
Messages: 130

Création fichier .bat à partir de commande OGR

Bonjour à toutes et à tous,

Je cherche à créer un fichier .bat à partir d'une commande ogr mais je n'arrive pas à trouver la bonne syntaxe.

Voici ma ligne de commande :

C:\Program Files\PostgreSQL\9.4\bin>for %f in (chemin_vers_les_shp\*.shp) do ogr2ogr -update -append -lco SCHEMA=temp -f "PostgreSQL" PG:"host=localhost user=postgres password=****** dbname=test" -t_srs EPSG:2154 -nlt PROMOTE_TO_MULTI %f

Cette commande assez classique permet d'importer tous les shapefiles d'un dossier dans une base de données postgres/postgis.

Voici ce que contient mon .bat :

@ECHO OFF
SET C:\Program Files\PostgreSQL\9.4\bin
for %f in (chemin_vers_les_shp\*.shp) do ogr2ogr -lco SCHEMA=temp -f "PostgreSQL" PG:"host=localhost user=postgres password=****** dbname=test" -t_srs EPSG:2154 -nlt PROMOTE_TO_MULTI %f
PAUSE

De plus, ma commande ogr renvoie une erreur lorsque les shp se trouvent déjà dans le shema "temp". J'ai tenté de mettre un -skipfaillure et -overwrite=yes mais ça ne fonctionne pas...

Pouvez vous m'aider?

Merci d'avance!

Hors ligne

 

#2 Tue 28 March 2017 17:01

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1134

Re: Création fichier .bat à partir de commande OGR

Salut,

je ne sais pas si cela va aider mais il me semble que dans un batch
il faut doubler le caractère % quand on utilise un paramètre de boucle

ex :

Code:

@ECHO OFF
SET C:\Program Files\PostgreSQL\9.4\bin
for %%f in (chemin_vers_les_shp\*.shp) do ogr2ogr -lco SCHEMA=temp -f "PostgreSQL" PG:"host=localhost user=postgres password=****** dbname=test" -t_srs EPSG:2154 -nlt PROMOTE_TO_MULTI %%f
PAUSE

Hors ligne

 

#3 Tue 28 March 2017 19:37

cherbe
Participant occasionnel
Date d'inscription: 1 Nov 2008
Messages: 41

Re: Création fichier .bat à partir de commande OGR

Bonsoir
Pas pris le temps de rechercher tes erreurs. Voici ce que  j'utilise pour les fichiers du cadastre envoyés dans une base SQLITE :

Code:

FOR /F %%A IN ('DIR *.THF. /b') DO
      (
      ogr2ogr -f "SQLite" %%A.sqlite %%A
      )
FOR /F %%B IN ('DIR *.sqlite /b') DO
      (
      ogr2ogr -f "SQLite" -append fusion.sqlite %%B
      )

Dernière modification par cherbe (Tue 28 March 2017 19:41)

Hors ligne

 

#4 Wed 29 March 2017 10:09

bruhnild
Participant actif
Lieu: Lyon
Date d'inscription: 7 Jun 2014
Messages: 130

Re: Création fichier .bat à partir de commande OGR

Merci tumasgiu, pour la tentative de réponse,

Aujourd'hui mon code ressemble à ça:

Code:

@ECHO OFF
cd C:\Program Files\PostgreSQL\9.4\bin\
for %%f in (chemin_vers_les_shp\*.shp) do ogr2ogr -lco SCHEMA=temp -f "PostgreSQL" PG:"host=localhost user=postgres password=***** dbname=test" -t_srs EPSG:2154 -nlt PROMOTE_TO_MULTI %%f
PAUSE

J'ai une erreur :

Unable to find driver 'PostgreSQL'.

J'ai cherché des pistes sur les forums mais rien qui n'ai vraiment éclairé ma lanterne...

Hors ligne

 

#5 Wed 29 March 2017 10:33

bruhnild
Participant actif
Lieu: Lyon
Date d'inscription: 7 Jun 2014
Messages: 130

Re: Création fichier .bat à partir de commande OGR

Merci cherbe, pour la tentative de réponse,

Aujourd'hui mon code ressemble à ça:

Code:

@ECHO OFF
cd C:\Program Files\PostgreSQL\9.4\bin\
for %%f in (chemin_vers_les_shp\*.shp) do ogr2ogr -lco SCHEMA=temp -f "PostgreSQL" PG:"host=localhost user=postgres password=***** dbname=test" -t_srs EPSG:2154 -nlt PROMOTE_TO_MULTI %%f
PAUSE

J'ai une erreur :

Unable to find driver 'PostgreSQL'.

J'ai cherché des pistes sur les forums mais rien qui n'ai vraiment éclairé ma lanterne...

Hors ligne

 

#6 Wed 29 March 2017 10:40

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1134

Re: Création fichier .bat à partir de commande OGR

Je crois que la version de OGR shippée avec Postgis n'est pas compilée
avec le driver PostgreSQL.

Si vous tenez absolument à utiliser ce driver, vous pouvez soit utiliser une autre
version de GDAL/OGR qui est compilée avec ce driver , en l'installant à part ou
avec OSGEO4W ( que vous possédez déjà si vous avez QGIS d'installé ),
soit utiliser le driver PGDUMP.

les liens pour les installs :
https://trac.osgeo.org/osgeo4w/
http://www.gisinternals.com/release.php

Dernière modification par tumasgiu (Wed 29 March 2017 10:40)

Hors ligne

 

#7 Wed 29 March 2017 10:59

bruhnild
Participant actif
Lieu: Lyon
Date d'inscription: 7 Jun 2014
Messages: 130

Re: Création fichier .bat à partir de commande OGR

Merci pour le coup de pouce! Ca marche à présent en déclarant le chemin vers OSGEO4W  (C:\OSGeo4W64) big_smile

Hors ligne

 

Pied de page des forums

Powered by FluxBB