Changeset 130 for trunk/data/konvert/postnas_0.6/konv_batch.sh
- Timestamp:
- 11/21/11 16:47:51 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/data/konvert/postnas_0.6/konv_batch.sh
r123 r130 1 #!/bin/ sh1 #!/bin/bash 2 2 ## ------------------------------------------------- 3 3 ## Konvertierung von ALKIS NAS-Format nach PosGIS - … … 6 6 ## ------------------------------------------------- 7 7 ## Stand: 8 ## 2010-11-10 Tabellen "Optimierte Nutzungsarten" Laden9 ## 2010-11-25 Tabelle "Optimierte Gemeinden" Laden10 ##11 8 ## 2011-02-01 Umstellen auf die Verarbeitung gezippter NAS-Daten. 12 9 ## Es wird dabei folgende Ordner-Struktur erwartet: … … 14 11 ## /0001/*.xml.zip 15 12 ## /0002/*.xml.zip 16 ## usw.13 ## usw. 17 14 ## /temp/ 18 15 ## Also auf der gleichen Ebene wie die Datenordner muss ein Ordner /temp/ existieren. 19 16 ## Dort werden die NAS-Daten temporär ausgepackt. 20 ## Relativ zum mitgegebenen Parameter ist das: ../temp/17 ## Relativ zum mitgegebenen Parameter ist das: '../temp/' 21 18 ## 22 19 ## Achtung: Parallel laufende Konvertierungen zum gleichen Mandanten 23 20 ## 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 21 ## 30 22 ## ## 2011-07-25 PostNAS 06, Umbenennung … … 35 27 ## Dort Zeile: "local [db] [user] ident sameuser" 36 28 ## Alt: # PG:"dbname=${DBNAME} user=${DBUSER} password=${DBPASS} host=localhost port=5432" 29 ## 2011-11-21 Korrektur: UPD=$3 nicht $4 30 ## Protokollierung nach Datenbanken getrennt 37 31 ## 38 32 ## Konverter: /opt/gdal-1.9/bin/ = GDAL 1.9 / PostNAS 0.6 … … 43 37 echo "** K o n v e r t i e r u n g PostNAS 0.6 **" 44 38 echo "**************************************************" 45 ## Auswerten derParameter:39 ## Parameter: 46 40 ORDNER=$1 47 41 DBNAME=$2 48 DBUSER=$3 49 #DBPASS=$4 50 #UPD=$5 51 UPD=$4 52 ## 42 UPD=$3 53 43 ## Fehlerprotokoll 54 errprot='/data/konvert/postnas_0.6/log/postnas_err .prot'44 errprot='/data/konvert/postnas_0.6/log/postnas_err_${DBNAME}.prot' 55 45 ## ! Bei parallelen Konvertierungen sollte die Ausgabe in getrennte Logfiles ausgegeben werden. 56 ## ! Ggf. die Start-Zeit in den Namen einbauen? 57 ## 58 if [ $ORDNER = "" ] 46 if [ $ORDNER == "" ] 59 47 then 60 48 echo "Parameter 1 'Ordner' ist leer" 61 49 exit 1 62 50 fi 63 ## 64 if [ $DBNAME = "" ] 51 if [ $DBNAME == "" ] 65 52 then 66 53 echo "Parameter 2 'Datenbank' ist leer" 67 54 exit 2 68 55 fi 69 ## 70 # if [ $DBUSER = "" ] 71 # then 72 # echo "Parameter 3 'DB-User' ist leer" 73 # exit 3 74 # fi 75 ## 76 # if [ $DBPASS = "" ] 77 # then 78 # echo "Parameter 4 'DB-Passwort' ist leer" 79 # #exit 4 80 # echo "Datenbank-Passwort? (wird nicht angezeigt)" 81 # stty -echo 82 # read DBPASS 83 # stty echo 84 #fi 85 ## 86 if [ $UPD = "a" ] 56 if [ $UPD == "a" ] 87 57 then 88 58 verarb="NBA-Aktualisierung" 89 59 update=" -update " 90 60 else 91 verarb="Erstladen" 92 update="" 61 if [ $UPD == "e" ] 62 then 63 verarb="Erstladen" 64 update="" 65 else 66 echo "Parameter 3 'Aktualisierung' ist weder e noch a" 67 exit 3 68 fi 93 69 fi 94 70 layer="" … … 98 74 con="-p 5432 -d ${DBNAME} " 99 75 # 100 echo "Datenbank-Name . . = ${DBNAME}" 101 echo "Ordner NAS-Daten . = ${ORDNER}" 102 # echo "Datenbank-User . . = ${DBUSER}" 103 echo "Verarbeitungs-Modus= ${verarb}" 76 echo "Datenbank-Name . . = ${DBNAME}" 77 echo "Ordner NAS-Daten . = ${ORDNER}" 78 echo "Verarbeitungs-Modus= ${verarb}" 79 echo " " 80 cd ${ORDNER} 81 rm ../temp/*.gfs 82 echo "Dateien in " ${ORDNER} " (ls) :" 83 ls 84 # Alte delete-Eintraege (vorangegangener Abbruch?) loeschen, oder abarbeiten? 85 echo 'TRUNCATE table "delete";' | psql $con 86 for zipfile in *.zip ; do 104 87 echo " " 105 cd ${ORDNER} 106 rm ../temp/*.gfs 107 echo "Dateien in " ${ORDNER} " (ls) :" 108 ls 109 # Alte delete-Eintraege (vorangegangener Abbruch?) loeschen, oder abarbeiten? 110 # echo 'TRUNCATE table "delete";' | psql $con -U ${DBUSER} 111 echo 'TRUNCATE table "delete";' | psql $con 112 # 113 # for zipfile in ${ORDNER}/*.xml.zip ; do 114 for zipfile in *.zip ; do 115 echo " " 116 echo "*********" 117 echo "* Archiv: " $zipfile 118 rm ../temp/*.xml 119 unzip ${zipfile} -d ../temp 120 121 # Es sollte eigentlich immer geneu ein XML-File in jedem ZIP-File stecken, 122 # aber es geht auch anders. 123 for nasdatei in ../temp/*.xml ; do 124 echo "* Datei: " $nasdatei 125 # Zwischenueberschrift im Fehlerprotokoll 126 echo "* Datei: " $nasdatei >> $errprot 127 # Groesse und Datum anzeigen 128 #ls -l ${nasdatei} 129 if [ $UPD = "e" ] 130 then 131 # E R S T L A D E N 132 /opt/gdal-1.9/bin/ogr2ogr -f "PostgreSQL" -append ${update} -skipfailures \ 133 PG:"dbname=${DBNAME} host=localhost port=5432" \ 134 -a_srs EPSG:25832 ${nasdatei} ${layer} 2>> $errprot 135 # Abbruch bei Fehler? 136 nasresult=$? 137 echo "* Resultat: " $nasresult " fuer " ${nasdatei} 138 else 139 # A K T U A L I S I E R U N G 140 echo "- 1. Nur delete-Layer auswerten" 141 /opt/gdal-1.9/bin/ogr2ogr -f "PostgreSQL" -append ${update} -skipfailures \ 142 PG:"dbname=${DBNAME} host=localhost port=5432" \ 143 -a_srs EPSG:25832 ${nasdatei} delete 2>> $errprot 144 nasresult=$? 145 echo "* Resultat: " $nasresult " fuer delete aus " ${nasdatei} 146 # 147 # Durch die Funktion 'deleteFeature' in der Datenbank die delete-Objekte abarbeiten 148 echo "- 1a. delete-Layer abarbeiten:" 149 psql $con < /data/konvert/postnas_0.6/delete.sql 150 # 151 echo "- 2. alle Layer auswerten" 152 /opt/gdal-1.9/bin/ogr2ogr -f "PostgreSQL" -append ${update} -skipfailures \ 153 PG:"dbname=${DBNAME} host=localhost port=5432" \ 154 -a_srs EPSG:25832 ${nasdatei} ${layer} 2>> $errprot 155 nasresult=$? 156 echo "* Resultat: " $nasresult " fuer " ${nasdatei} 157 # 158 echo "- 2a. delete-Layer nochmals leoeschen:" 159 echo 'TRUNCATE table "delete";' | psql $con 160 fi 161 done 162 # Ende Zipfile 163 echo "*********" 88 echo "*********" 89 echo "* Archiv: " $zipfile 90 rm ../temp/*.xml 91 unzip ${zipfile} -d ../temp 92 # Es sollte eigentlich immer geneu ein XML-File in jedem ZIP-File stecken, 93 # aber es geht auch anders. 94 for nasdatei in ../temp/*.xml ; do 95 echo "* Datei: " $nasdatei 96 # Zwischenueberschrift im Fehlerprotokoll 97 echo "* Datei: " $nasdatei >> $errprot 98 if [ $UPD -eq "e" ] 99 then 100 # E R S T L A D E N 101 /opt/gdal-1.9/bin/ogr2ogr -f "PostgreSQL" -append ${update} -skipfailures \ 102 PG:"dbname=${DBNAME} host=localhost port=5432" \ 103 -a_srs EPSG:25832 ${nasdatei} ${layer} 2>> $errprot 104 # Abbruch bei Fehler? 105 nasresult=$? 106 echo "* Resultat: " $nasresult " fuer " ${nasdatei} 107 else 108 # A K T U A L I S I E R U N G 109 echo "- 1. Nur delete-Layer auswerten" 110 /opt/gdal-1.9/bin/ogr2ogr -f "PostgreSQL" -append ${update} -skipfailures \ 111 PG:"dbname=${DBNAME} host=localhost port=5432" \ 112 -a_srs EPSG:25832 ${nasdatei} delete 2>> $errprot 113 nasresult=$? 114 echo "* Resultat: " $nasresult " fuer delete aus " ${nasdatei} 115 # 116 # Durch die Funktion 'deleteFeature' in der Datenbank die delete-Objekte abarbeiten 117 echo "- 1a. delete-Layer abarbeiten:" 118 psql $con < /data/konvert/postnas_0.6/delete.sql 119 # 120 echo "- 2. alle Layer auswerten" 121 /opt/gdal-1.9/bin/ogr2ogr -f "PostgreSQL" -append ${update} -skipfailures \ 122 PG:"dbname=${DBNAME} host=localhost port=5432" \ 123 -a_srs EPSG:25832 ${nasdatei} ${layer} 2>> $errprot 124 nasresult=$? 125 echo "* Resultat: " $nasresult " fuer " ${nasdatei} 126 # 127 echo "- 2a. delete-Layer nochmals leoeschen:" 128 echo 'TRUNCATE table "delete";' | psql $con 129 fi 164 130 done 165 rm ../temp/*.xml 166 echo " " 167 echo "** Ende Konvertierung Ordner ${ORDNER}" 168 echo "Das Fehler-Protokoll wurde ausgegeben in die Datei " $errprot 131 # Ende Zipfile 132 echo "*********" 133 done 134 rm ../temp/*.xml 135 echo " " 136 echo "** Ende Konvertierung Ordner ${ORDNER}" 169 137 ## 170 171 138 echo "** Optimierte Nutzungsarten neu Laden:" 139 psql -p 5432 -d ${DBNAME} < /data/konvert/postnas_0.6/nutzungsart_laden.sql 172 140 ## 173 echo "** Optimierte Gemeindetabelle neu Laden:" 174 psql -p 5432 -d ${DBNAME} < /data/konvert/postnas_0.6/gemeinden_laden.sql 141 echo "** Optimierte Gemeindetabelle neu Laden:" 142 psql -p 5432 -d ${DBNAME} < /data/konvert/postnas_0.6/gemeinden_laden.sql 143 # 144 echo "Das Fehler-Protokoll wurde ausgegeben in die Datei '$errprot' " 175 145 ##
Note: See TracChangeset
for help on using the changeset viewer.