#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
doneIl 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


