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 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: 1159

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: 1159

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