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

Revision 162, 3.8 KB checked in by frank.jaeger, 12 years ago (diff)

Entwurf: Post-Processing-Scripte Flur/Gemarkung/Gemeinde?

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