florian timm

Massenimport in PostGIS

Zur Nutzung des Geoservers empfiehlt es sich, die Daten in eine Datenbank einzuspielen. Oft liegen Geodaten als Shape vor bzw. können leicht aus QGIS oder ArcGIS als solche exportiert werden. Die folgenden Befehle helfen beim Import vieler Shapefiles in einem Rutsch. Als Beispiel wird hier das Digitale Landschaftsmodell vom Bundesamt für Kartographie und Geodäsie importiert.

Wechsel in Nutzerverzeichnis
cd ~

Download der Daten vom BKG und entpacken dieser
wget http://sg.geodatenzentrum.de/web_download/dlm/dlm250-aaa/utm32s/shape/dlm250-aaa.utm32s.shape.ebenen.zip
unzip dlm250-aaa.utm32s.shape.ebenen.zip

Wechsel zu den entpackten Daten
cd dlm250.utm32s.shape.ebenen/dlm250_ebenen

Erstellen eines Bash-Scriptes zum Umformen der Daten in SQL-Dateien…
nano import1

…mit folgendem Inhalt:
for f in *.shp
do
__ shp2pgsql -s 25832 $f public.`basename $f .shp` > `basename $f .shp`.sql__
done

Und eines zweiten zum Import in die Datenbank
nano import2

Mit folgendem Inhalt:
for f in *.sql
do
__ psql -h myserver -d mydb -U myuser -f $f > /dev/null__
done

Die beiden Dateien werden anschließend ausführbar gemacht:
chmod +x ./import1
chmod +x ./import1

Außerdem wird eine Datei erzeugt, in der das Passwort der Datenbank gespeichert wird. Die Datei kann am Ende mittels rm ~/.pgpass gelöscht werden, damit kein Dritter Zugang zum Passwort erhält.
nano ~/.pgpass

Der Aufbau der Datei erflgt nach folgendem Muster:
hostname:port:db:user:passwort

Anschließend werden die Zugriffsrechte der Passwortdatei gesetzt:
chmod 600 ~/.pgpass

Zu guter Letzt werden die beiden Scripte ausgeführt:
.\import1
.\import2