#1 Sun 20 March 2011 14:47
- omorin
- Participant occasionnel
- Date d'inscription: 4 Jun 2008
- Messages: 12
Script d'integration de shp vers Postgis
Bonjour,
J'ai fait un petit script qui déverse les .shp présents dans un répertoire dans une base Postgis.
Je l'utilise pour la base IGN RGE que je viens de téléchargé.
Code:
echo "Chargement de fichier dans une base" echo "Les décors sont de Roger Harth et les costumes de Donald Cardwell, le scénario d'Olivier Morin" echo "Adresse du serveur (x.x.x.x) :" read adresse if [ -z "$adresse" ] then adresse="x.x.x.x" fi echo "Nom d'utilisateur (sig) :" read utilisateur if [ -z "$utilisateur" ] then utilisateur="sig" fi echo "Nom de la base (sig) :" read base if [ -z "$base" ] then base="sig" fi echo "Nom du schema (public) :" read schema if [ -z "$schema" ] then schema="public" fi echo "[Prefixe de la table :]" read prefixe if [ -n "$prefixe" ] then prefixe="$prefixe-" fi echo "SRID (2154):" read srid if [ -z "$srid" ] then srid="2154" fi for fichier in `ls | egrep -i ".SHP$"` do table=$( echo ${fichier%.*} | tr '[:upper:]' '[:lower:]' ) echo "Traitement du fichier $fichier vers la base $base dans la table $schema.$prefixe$table en $srid" shp2pgsql -I -s $srid -W LATIN1 $fichier $schema.$prefixe$table > $schema-$prefixe$table.sql psql -U $utilisateur $base -h $adresse < $schema-$prefixe$table.sql psql -U $utilisateur $base -h $adresse -c "\d $schema.$prefixe$table" > $schema-$prefixe$table.log psql -U $utilisateur $base -h $adresse -c "select count(*) as \"Nombre de lignes\" from \"$schema\".\"$prefixe$table\"" >> $schema-$prefixe$table.log done
Il faudra changer les réponses par défaut et mettre l'asresse du serveur à la place de x.x.x.x.
En effet je lance ce script d'un poste client Ubuntu ver un serveur PostGis Ubuntu.
Les shp sont supposés être en LATIN1 et la base en UTF8
Les commentaires et remarques sont les bienvenus !
Dernière modification par omorin (Mon 21 March 2011 12:02)
Hors ligne
#2 Sun 20 March 2011 16:33
Re: Script d'integration de shp vers Postgis
Bonjour,
Je me permets de déplacer votre message ici [Géo'BD].
Bon dimanche,
Bruno
Hors ligne