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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GeoRezo est partenaire média de la Conférence Francophone SIG 2017 organisée par ESRI.

Les bénévoles de l'association seront présents les 11 et 12 Octobre aux Docks de Paris.

Le programme est riche, mais vous trouverez bien un  moment pour venir faire une pause au stand GeoRezo, et rencontrer les animateurs du portail francophone de la géomatique.

Nous serons à votre écoute pour partager avec vous notre passion pour l’animation du portail GeoRezo.

L'équipe GeoRezo

#1 mar. 28 mars 2017 14:29

bruhnild
Membre
Lieu: Lyon
Date d'inscription: 7 juin 2014
Messages: 37

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 mar. 28 mars 2017 17:01

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 juil. 2010
Messages: 429

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 mar. 28 mars 2017 19:37

cherbe
Membre
Date d'inscription: 1 nov. 2008
Messages: 37

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 (mar. 28 mars 2017 19:41)

Hors ligne

 

#4 mer. 29 mars 2017 10:09

bruhnild
Membre
Lieu: Lyon
Date d'inscription: 7 juin 2014
Messages: 37

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 mer. 29 mars 2017 10:33

bruhnild
Membre
Lieu: Lyon
Date d'inscription: 7 juin 2014
Messages: 37

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 mer. 29 mars 2017 10:40

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 juil. 2010
Messages: 429

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 (mer. 29 mars 2017 10:40)

Hors ligne

 

#7 mer. 29 mars 2017 10:59

bruhnild
Membre
Lieu: Lyon
Date d'inscription: 7 juin 2014
Messages: 37

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

Partagez  |