source: trunk/data/konvert/postnas_0.5/alkis_konv_batch.sh @ 144

Revision 82, 4.1 KB checked in by frank.jaeger, 13 years ago (diff)

DB-Schema überarbeitet - noch nicht getestet.

Line 
1#!/bin/sh
2## -------------------------------------------------
3## Konvertierung von ALKIS NAS-Format nach PosGIS  -
4## NAS-Daten in einem Ordner konvertieren          -
5## Batch-Teil, Aufruf mit geprueften Parametern    -
6## -------------------------------------------------
7## Stand:
8##  2010-01-06
9##  2010-01-26 postgreSQL 8.3
10##  2010-08-16 Dateiname als Zwischen-Ueberschrift in Fehlerprotokoll
11##  2010-10-14  gdal 1.8 compile aus svn gdal-trunk
12##  2010-11-10  Tabellen "Optimierte Nutzungsarten" Laden
13##  2010-11-25  Tabelle  "Optimierte Gemeinden"     Laden
14##
15##  2011-02-01  Umstellen auf die Verarbeitung gezippter NAS-Daten.
16##       Es wird dabei folgende Ordner-Struktur erwartet:
17##       /mandant/
18##               /0001/*.xml.zip
19##               /0002/*.xml.zip
20##             usw.
21##               /temp/
22##       Also auf der gleichen Ebene wie die Datenordner muss ein Ordner /temp/ existieren.
23##       Dort werden die NAS-Daten temporär ausgepackt.
24##       Relativ zum mitgegebenen Parameter ist das: ../temp/
25##
26##       Achtung: Parallel laufende Konvertierungen zum gleichen Mandanten
27##                würden hier durcheinander geraten. Vermeiden!
28##
29##       Alternative:
30##       Könnte ogr2ogr auch pipe mit stdin verarbeiten?
31##       $  unzip -p  aktuelle.xml.zip  | ogr2ogr ....
32##       Wahrscheinlich nicht, wie heisst dann die *.gfs?
33##
34## Konverter:   /opt/gdal-1.8/bin/ = GDAL 1.8 / PostNAS 0.5
35## Koordinaten: EPSG:25832  UTM, Zone 32
36##              -a_srs EPSG:25832   - bleibt im UTM-System (korrigierte Werte)
37##
38echo "**************************************************"
39echo "**   K o n v e r t i e r u n g     PostNAS 0.5  **"
40echo "**************************************************"
41## Auswerten der Parameter:
42ORDNER=$1
43DBNAME=$2
44DBUSER=$3
45DBPASS=$4
46UPD=$5
47##
48## Fehlerprotokoll
49errprot='/data/konvert/postnas_0.5/log/postnas_err.prot'
50## ! Bei parallelen Konvertierungen sollte die Ausgabe in getrennte Logfiles ausgegeben werden.
51## ! Ggf. die Start-Zeit in den Namen einbauen?
52##
53if [ $ORDNER = "" ]
54then
55        echo "Parameter 1 'Ordner' ist leer"
56        exit 1
57fi
58##
59if [ $DBNAME = "" ]
60then
61        echo "Parameter 2 'Datenbank' ist leer"
62        exit 2
63fi
64##
65if [ $DBUSER = "" ]
66then
67        echo "Parameter 3 'DB-User' ist leer"
68        exit 3
69fi
70##
71if [ $DBPASS = "" ]
72then
73        echo "Parameter 4 'DB-Passwort' ist leer"
74        #exit 4
75        echo "Datenbank-Passwort?  (wird nicht angezeigt)"
76        stty -echo
77        read DBPASS
78        stty echo
79fi
80##
81if [ $UPD = "a" ]
82then
83        verarb="NBA-Aktualisierung"
84        update=" -update "
85else
86        verarb="Erstladen"
87        update=""
88fi
89layer=""
90# leer = alle Layer
91  echo "Datenbank-Name . . = ${DBNAME}"
92  echo "Ordner NAS-Daten . = ${ORDNER}"
93  echo "Datenbank-User . . = ${DBUSER}"
94  echo "Verarbeitungs-Modus= ${verarb}"
95  echo " "
96  cd ${ORDNER}
97  rm ../temp/*.gfs
98  echo "Dateien in " ${ORDNER} " (ls) :"
99  ls
100# for zipfile in ${ORDNER}/*.xml.zip ; do
101  for zipfile in *.zip               ; do
102    echo " "
103    echo "*******"
104    echo "* Archiv: " $zipfile
105    rm ../temp/*.xml
106    unzip ${zipfile}  -d ../temp
107    for nasdatei in ../temp/*.xml ; do
108      echo "* Datei:  " $nasdatei
109      # Zwischenueberschrift im Fehlerprotokoll
110      echo "* Datei: " $nasdatei >> $errprot
111      # Groesse und Datum anzeigen
112      #ls -l ${nasdatei}
113      /opt/gdal-1.8/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \
114        PG:"dbname=${DBNAME} user=${DBUSER} password=${DBPASS} host=localhost port=5432" \
115        -a_srs EPSG:25832  ${nasdatei}  ${layer}  2>> $errprot
116      # Abbruch bei Fehler?
117      nasresult=$?
118      echo "* Resultat: " $nasresult " fuer " ${nasdatei}
119    done
120  done
121  rm ../temp/*.xml
122  echo "** Ende Konvertierung Ordner ${ORDNER}"
123  echo "Das Fehler-Protokoll wurde ausgegeben in die Datei " $errprot
124##
125  echo "** Optimierte Nutzungsarten neu Laden:"
126  psql -p 5432 -d ${DBNAME}  -U ${DBUSER}  < /data/konvert/postnas_0.5/alkis_nutzungsart_laden.sql
127##
128  echo "** Optimierte Gemeindetabelle neu Laden:"
129  psql -p 5432 -d ${DBNAME}  -U ${DBUSER}  < /data/konvert/postnas_0.5/alkis_gemeinden_laden.sql
130##
Note: See TracBrowser for help on using the repository browser.