source: trunk/data/konvert/postnas_0.7/konv_batch.sh @ 163

Revision 163, 4.3 KB checked in by frank.jaeger, 12 years ago (diff)

Vers. 0.7: Flächen von Fluren, Gemarkungen, Gemeinden zusammen fassen und darstellen

Line 
1#!/bin/bash
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##
8## Ordner-Struktur:
9##   /mandant/
10##           /0001/*.xml.zip
11##           /0002/*.xml.zip
12##          usw.
13##           /temp/
14##   Auf der gleichen Ebene wie die Datenordner muss ein Ordner /temp/ existieren.
15##   Dort werden die NAS-Daten temporär ausgepackt.
16##   Relativ zum mitgegebenen Parameter ist das: '../temp/'
17##   Parallel laufende Konvertierungen zum gleichen Mandanten
18##   würden hier durcheinander geraten. Vermeiden!
19##
20## Stand:
21##   2012-02-10 Umbennung nach 0.7
22##   2012-02-17 Optimierung
23##
24## Konverter:   /opt/gdal-1.9.1/bin/ = GDAL 1.9-DEV / PostNAS 0.7
25## Koordinaten: EPSG:25832  UTM, Zone 32
26##              -a_srs EPSG:25832   - bleibt im UTM-System (korrigierte Werte)
27##
28echo "**************************************************"
29echo "**   K o n v e r t i e r u n g     PostNAS 0.7  **"
30echo "**************************************************"
31## Parameter:
32ORDNER=$1
33DBNAME=$2
34UPD=$3
35if [ $ORDNER == "" ]
36then
37        echo "Parameter 1 'Ordner' ist leer"
38        exit 1
39fi
40if [ $DBNAME == "" ]
41then
42        echo "Parameter 2 'Datenbank' ist leer"
43        exit 2
44fi
45if [ $UPD == "a" ]
46then
47        verarb="NBA-Aktualisierung"
48        update=" -update "
49else
50        if [ $UPD == "e" ]
51        then
52                verarb="Erstladen"
53                update=""
54        else
55                echo "Parameter 3 'Aktualisierung' ist weder e noch a"
56                exit 3
57        fi
58fi
59layer=""
60# leer = alle Layer
61## Fehlerprotokoll:
62errprot='/data/konvert/postnas_0.7/log/postnas_err_'$DBNAME'.prot'
63#
64# DB-Connection
65con="-p 5432 -d ${DBNAME} "
66echo "Datenbank-Name . . = ${DBNAME}"
67echo "Ordner NAS-Daten . = ${ORDNER}"
68echo "Verarbeitungs-Modus= ${verarb}"
69echo " "
70cd ${ORDNER}
71rm ../temp/*.gfs
72echo "Dateien in " ${ORDNER} " (ls) :"
73ls
74# Alte delete-Eintraege (vorangegangener Abbruch?) loeschen, oder abarbeiten?
75echo 'TRUNCATE table "delete";' | psql $con
76for zipfile in *.zip ; do
77  echo " "
78  echo "*********"
79  echo "* Archiv: " $zipfile
80  rm ../temp/*.xml
81  unzip ${zipfile}  -d ../temp
82  # Es sollte eigentlich immer geneu ein XML-File in jedem ZIP-File stecken,
83  # aber es geht auch anders.
84  for nasdatei in ../temp/*.xml ; do
85    echo "* Datei:  " $nasdatei
86    # Zwischenueberschrift im Fehlerprotokoll
87    echo "* Datei: " $nasdatei >> $errprot
88    if [ $UPD == "e" ]
89    then
90      # E R S T L A D E N
91      /opt/gdal-1.9.1/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \
92         PG:"dbname=${DBNAME} host=localhost port=5432" \
93         -a_srs EPSG:25832  ${nasdatei}  ${layer}  2>> $errprot
94      # Abbruch bei Fehler?
95      nasresult=$?
96      echo "* Resultat: " $nasresult " fuer " ${nasdatei}
97    else
98      # A K T U A L I S I E R U N G
99      echo "- 1. Nur delete-Layer auswerten"
100      /opt/gdal-1.9.1/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \
101         PG:"dbname=${DBNAME} host=localhost port=5432" \
102         -a_srs EPSG:25832  ${nasdatei}  delete  2>> $errprot
103      nasresult=$?
104      echo "* Resultat: " $nasresult " fuer delete aus " ${nasdatei}
105      #
106      # Durch die Funktion 'deleteFeature' in der Datenbank die delete-Objekte abarbeiten
107      echo "- 1a. delete-Layer abarbeiten:"
108      psql $con  < /data/konvert/postnas_0.7/delete.sql
109      #
110      echo "- 2. alle Layer auswerten"
111      /opt/gdal-1.9.1/bin/ogr2ogr -f "PostgreSQL" -append  ${update}  -skipfailures \
112        PG:"dbname=${DBNAME} host=localhost port=5432" \
113        -a_srs EPSG:25832  ${nasdatei}  ${layer}  2>> $errprot
114      nasresult=$?
115      echo "* Resultat: " $nasresult " fuer " ${nasdatei}
116      #
117      echo "- 2a. delete-Layer nochmals leoeschen:"
118      echo 'TRUNCATE table "delete";' | psql $con
119    fi
120  done
121  # Ende Zipfile
122  echo "*********"
123done
124rm ../temp/*.xml
125echo " "
126echo "** Ende Konvertierung Ordner ${ORDNER}"
127##
128echo "** Optimierte Nutzungsarten neu Laden:"
129psql -p 5432 -d ${DBNAME} < /data/konvert/postnas_0.7/nutzungsart_laden.sql
130##
131echo "** Post Processing neu Laden:"
132psql -p 5432 -d ${DBNAME} < /data/konvert/postnas_0.7/pp_laden.sql
133#
134echo "Das Fehler-Protokoll wurde ausgegeben in die Datei '$errprot' "
135##
Note: See TracBrowser for help on using the repository browser.