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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Wed 28 March 2018 16:19

EvaNounou
Juste Inscrit !
Date d'inscription: 8 Mar 2018
Messages: 8

Shp2pgsql en ligne de commande/insertion de plusieurs shp

Bonjour à tous,

J'essaye désespérément d'importer tous mes shp commune provenant de l'IGN dans une base postgreSQL. J'ai fais plusieurs recherche et il faudrait que je passe par batch et que j'utilise shp2pgsql.
Donc, plusieurs questions :
- Comment utiliser shp1pgsql en lignes de commande sur Windows ? je n'y arrive pas et je ne sais même pas si il est installé sur mon ordi. Actuellement pour l'import de mes fichiers shape j'utilisais le GUI Postgis mais je ne peux pas en importer en masse en un seul coup donc ça ne va pas bien...
- Comment faire fonctionner le batch sur PostGIS ?

Merci pour votre aide,
Cordialement,
Eva

Hors ligne

 

#2 Thu 29 March 2018 15:18

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

Re: Shp2pgsql en ligne de commande/insertion de plusieurs shp

Bonjour,

Allez je me lance. Point par point.

Effectivement, il vous faut bien shp2pgsql. shp2pgsql normalement est installé en même temps que plusieurs outils. Si vous avez Postgis d'installé sur votre poste aller faire un tour dans le dossier bien de postgresql, vous allez le trouver. Cet outil (c'est un fichier exe) est également installé avec divers outils comme Fwtools, osgeo4W,...
Pour l'exécuter rien de plus simple. Vous cliquer sur le gros bouton "Démarrer" de Windows, vous taper "cmd" puis faites "Entrée".
Normalement une belle fenêtre noire, écrite avec du texte en blanc apparait. C'est la console Windows. Les ennuis commencent ici. Pour lancer un exécutable il suffit de taper son nom puis de faire "Entrée". Seul hic Windows ne va pas s'embêter à passer tous les répertoires pour le trouver. De plus si l'exécutable est présent deux fois sur votre machine, lequel exécuter ? Il faut donc d'indiquer à windows ou celui ci se trouve.
Vous pouvez taper dans votre console :

Code:

C:\PostgreSQL91\bin\shp2pgsql.exe

normalement l'aide de l'outil s'affiche.
La comme shp2pgsql vous permet d'ajouter un fichier shp à la fois. Pour en intégrer plusieurs, il vous faut passer par un bath.

Une fichier bath est juste une fichier texte dans lequel vous mettez une liste de commande et que vous renommer en bath au lieu de txt. Il vous suffit ensuite d'executer le fichier bath de la même manière que l'exécutable que j'ai décrit ci-dessus.

Code:

exemple de fichier bath.
shp2pgsql -s 2154 -g the_geom -W LATIN1 -D -I "fichier1.shp" nomfichier1 | psql -U login -d base -h serveur -p 5432
shp2pgsql -s 2154 -g the_geom -W LATIN1 -D -I "fichier2.shp" nomfichier2 | psql -U login -d base -h serveur -p 5432
shp2pgsql -s 2154 -g the_geom -W LATIN1 -D -I "fichier3.shp" nomfichier3 | psql -U login -d base -h serveur -p 5432
shp2pgsql -s 2154 -g the_geom -W LATIN1 -D -I "fichier4.shp" nomfichier4 | psql -U login -d base -h serveur -p 5432
shp2pgsql -s 2154 -g the_geom -W LATIN1 -D -I "fichier5.shp" nomfichier5 | psql -U login -d base -h serveur -p 5432
...

Votre problématique doit être maintenant de remplir ce fichier. Il n'est pas nécessaire de faire de la programmation pour cela. Vous pouvez par exemple faire un fichier excel et découper votre commande en plusieurs colonnes en ne changeant que le nom des fichiers shp par exemple. Ensuite à partir d'export, de copier, coller, de transfert de format vous devez arriver à produire un fichier texte avec toutes vos commandes. Il ne vous restera plus qu'à le renommer en bath et à le lancer depuis la console. Si la solution "semi-manuelle" ne vous convient pas, il vous faudra passer par de la programmation, en python ou directement en DOS, au autres mais là si vous n'avez aucune notion de programmation vous partez un peu de loin.

bon courage

Nicolas GRANIER

Hors ligne

 

Pied de page des forums

Powered by FluxBB