source: trunk/data/konvert/postnas_0.6/konv_batch.sh @ 105

Revision 105, 4.0 KB checked in by frank.jaeger, 13 years ago (diff)

Anpassung an PostNAS-Version 0.6:
Buchauskunft und Navigation: Formate des Feldes "lage" (Straßenschlüssel) werden gesteuert über einen neuen conf-Parameter $dbvers (05 oder 06).
Konverter-Scripte für PostNAS 0.6 in einem neuen Ordner.

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