Mercurial > dive4elements > river
view flys-backend/doc/documentation/de/importer-geodaesie.tex @ 5010:ee52faa6b7ac dami
Corrected typo in field name
author | Tom Gottfried <tom.gottfried@intevation.de> |
---|---|
date | Tue, 19 Feb 2013 09:44:38 +0100 |
parents | 4e5d209253dd |
children | a56efdfcab17 |
line wrap: on
line source
\section{Geodatenimport} Der Geodaten Importer ist ein in der Programmiersprache Python geschriebenes Kommandozeilen Werkzeug zum Import von Shapefiles in eine Datenbank. Zum Lesen der Shapefiles und zum schreiben der Geodaten in die Datenbank wird die GDAL Bibliothek verwendet. Um Daten in eine Oracle Datenbank zu importieren ist es n�tig, dass GDAL und GDAL Python Bindungs mit Oracle Unterst�tzung installiert sind. Bei der Verwendung von PostgreSQL entf�llt dieser Schritt. Weitere Details hierzu befinden sich im Kapitel \ref{Systemanforderungen} und \ref{Installationsanleitung}. Der Importer kann mit einem Shellscript von der Kommandozeile gestartet werden (siehe Kapitel \ref{Starten des Geodaten Importers}). Nach dem Start wird anhand der Konfiguration festgestellt, welche Klassen von Shapefiles aus dem Dateisystem importiert werden sollen. F�r jede Klasse gibt es einen speziellen Parser, der die speziellen Attribute eines Shapefiles liest und in die entsprechende Relation der Datenbank schreibt. Die Parser sind speziell auf das Dateisystem der BfG ausgerichtet. So wird beispielsweise erwartet, dass die Shapefiles der Gew�sserachse im Ordner $Geodaesie/Flussachse+km$ liegen. Weitere Informationen zu den einzelnen Parsern sind dem n�chsten Kapitel \ref{Beschreibung der Parser} zu entnehmen. Der Erfolg oder Misserfolg eines Shape-Imports wird je nach Konfiguration im Logfile vermerkt. Folgende Eintr�ge k�nnen dem Logfile entnommen werden: %TODO etwas zum srs schreiben. \textbf{INFO: Inserted 4 features} \\Gibt die Anzahl der erfolgreich importierten Features an.\\ \textbf{INFO: Failed to create 2 features} \\Gibt die Anzahl der Features an, die nicht importiert werden konnten.\\ \textbf{INFO: Found 3 unsupported features of type: wbkMultiLineString} \\Gibt die Anzahl der Features an, die aufgrund ihres Datentyps nicht importiert werden konnten. Wenn etwa Punkte erwartet wurden aber sich im Shapefile Polygone befanden.\\ \textbf{INFO: Did not import values from fields: TYP ID GRUENDUNG BHW} \\Manche Importer versuchen neben der Geographischen Information weitere Felder in die Datenbank einzulesen. Um festzustellen ob ein Feld aufgrund von Tippfehlern oder unterschiedlicher Schreibweise nicht importiert wurde, gibt diese Information Auskunft dar�ber welche Felder aus der Shape Datei nicht verwendet wurden.\\ \textbf{ERROR: No source SRS given! No transformation possible!} \\Das Shapefile enth�lt keine Information, in welcher Projektion die Geometrien vorliegen. Es findet keine Transformation in die Zielprojektion statt. Bitte beachten Sie, dass FLYS diese Geometrien sp�ter ggf nicht korrekt darstellen kann. \textbf{ERROR: Unable to insert feature: DETAIL} \\Beim Lesen der Attribute eines Features ist ein Fehler aufgetreten. Das Feature konnte nicht in die Datenbank geschrieben werden.\\ \textbf{ERROR: Exception while committing transaction} \\Beim Abschluss des Schreib-Vorgangs in die Datenbank ist ein unerwarteter Fehler aufgetreten. Die Features des Shapes sind nicht importiert worden.\\ \textbf{ERROR 1: ORA-01017: invalid username/password; logon denied} \\Es konnte keine Verbindung zur Oracle Datenbank hergestellt werden. Pr�fen Sie die Verbindungseinstellungen. Damit die Geodaten eines Shapes sp�ter eindeutig in der Datenbank identifiziert werden k�nnen, wird f�r jede Geometrie der Pfad des Shapes im Dateisystem in einer Spalte der Datenbank gespeichert. Anwendungen, die auf der Datenbank aufbauen, k�nnen die Geodaten eines Shapefiles sp�ter anhand dieses Merkmals gruppieren und anzeigen. \subsection{Beschreibung der Parser} \label{Beschreibung der Parser} Wie im letzten Kapitel beschrieben, sind die Parser speziell an das Dateisystem der BfG ausgerichtet. Im Folgenden werden zu jedem Parser folgende Informationen angegeben: \textbf{Pfad} \\Der Pfad, in dem die Shapefiles im Dateisystem abgelegt sein m�ssen ausgehend vom Gew�sser Verzeichnis. \textbf{Geometrie} \\Der Geometrie Typ, der f�r diese Klasse von Shapefiles erwartet wird. \textbf{Attribute} \\Eine Liste der Attribute, die vom Parser aus dem Shape gelesen werden. \subsubsection{Achsen} \hspace{1cm} \begin{tabular}[t]{ll} Pfad & Geodaesie/Flussachse+km \\ Geometrie & LINESTRING \\ Attribute & name, kind \\ \end{tabular} \subsubsection{Hydrologische Grenzen} \hspace{1cm} \begin{tabular}[t]{ll} Pfad & Hydrologie/Hydr.Grenzen/Linien \\ Geometrie & LINESTRING, POLYGON \\ Attribute & name, kind, sectie, sobek \\ \end{tabular} \subsubsection{Bauwerke} \hspace{1cm} \begin{tabular}[t]{ll} Pfad & Geodaesie/Bauwerke \\ Geometrie & LINESTRING \\ Attribute & name, Name, KWNAAM \\ \end{tabular} \subsubsection{Einzugsgebiete} \hspace{1cm} \begin{tabular}[t]{ll} Pfad & Hydrologie/Einzugsgebiet \\ Geometrie & POLYGON, MULTIPOLYGON \\ Attribute & name, Name, AREA, area \\ \end{tabular} \subsubsection{Querprofilspuren} \hspace{1cm} \begin{tabular}[t]{ll} Pfad & Geodaesie/Querprofile \\ Geometrie & LINESTRING \\ Attribute & KILOMETER, KM, STATION, ELEVATION \\ \end{tabular} \subsubsection{Festpunkte} \hspace{1cm} \begin{tabular}[t]{ll} Pfad & Geodaesie/Festpunkte \\ Geometrie & POINT \\ Attribute & name, KM, ELBE\_KM, X, Y, HPGP \\ \end{tabular} \subsubsection{Talaue} \hspace{1cm} \begin{tabular}[t]{ll} Pfad & Hydrologie/Hydr.Grenzen \\ Geometrie & POLYGON, MULTIPOLYGON \\ Attribute & name \\ \end{tabular} \subsubsection{Pegelstationen} \hspace{1cm} \begin{tabular}[t]{ll} Pfad & Hydrologie/Streckendaten \\ Geometrie & POINT \\ Attribute & Name, name, MPNAAM \\ \end{tabular} \subsubsection{Hochwasserschutzanlagen} \hspace{1cm} \begin{tabular}[t]{ll} Pfad & Hydrologie/HW-Schutzanlagen \\ Geometrie & LINESTRING, POINT \\ Attribute & name, source, description, status\_date, agency, dike\_km, range, z\_target, rated\_level, z \\ \end{tabular} \subsubsection{Kilometrierung} \hspace{1cm} \begin{tabular}[t]{ll} Pfad & Geodaesie/Flussachse+km \\ Geometrie & POINT \\ Attribute & name, km, KM \\ \end{tabular} \subsubsection{�berschwemmungsfl�che} \hspace{1cm} \begin{tabular}[t]{ll} Pfad & Hydrologie/UeSG/Berechnung \\ Geometrie & POLYGON, MULTIPOLYGON \\ Attribut & name, diff, count, area, perimeter \\ \end{tabular} \subsection{Systemanforderungen} \label{Systemanforderungen} \begin{itemize} \item Oracle Datenbank inkl. Schema f�r FLYS \item GDAL ab Version 1.9 f�r Python mit Oracle Support \item ogr2ogr \item Python $>=$ 2.6 \end{itemize} \subsection{Installationsanleitung} \label{Installationsanleitung} \subsubsection Oracle Instantclient\\ % TODO: oracle_cx Der Oracle Instantclient 11.2.0.2.0 wird ben�tigt, damit der Importer mittels Python und GDAL in die bestehende Oracle Datenbank schreiben kann. Wenn Sie eine PosgreSQL Datenbank verwenden, k�nnen Sie diesen Schritt �berspringen. Zur Anbindung von Oracle ist es erforderlich, folgende Archive von Oracle herunterzuladen (Sie ben�tigen daf�r ein Oracle Benutzerkonto): Der Oracle Instantclient 11.2 wird ben�tigt, damit der Importer mittels Python und GDAL in die bestehende Oracle Datenbank schreiben kann. Dazu ist es erforderlich, folgende Archive von Oracle herunterzuladen. \begin{itemize} \item instantclient-basic-linux-x86-64-11.2.0.2.0.zip \item instantclient-sdk-linux-x86-64-11.2.0.2.0.zip \item instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip \end{itemize} Zu finden sind die Pakete unter:\\ \href{http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html} {http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html} Um diese Pakete zu installieren, �ffnen Sie eine Konsole und wechseln in das Verzeichnis in welches Sie die heruntergeladenen Pakete gespeichert haben. (z.B.: cd /home/benutzername/Downloads ) Anschlie�end f�hren Sie folgende Befehle auf der Kommandozeile aus: \begin{lstlisting} mkdir /opt unzip instantclient-basic-linux-x86-64-11.2.0.2.0.zip -d /opt unzip instantclient-sdk-linux-x86-64-11.2.0.2.0.zip -d /opt unzip instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip -d /opt mkdir /opt/instantclient_11_2/lib cd /opt/instantclient_11_2/lib ln -s ../libclntsh.so.11.1 . ln -s ../libclntsh.so.11.1 libclntsh.so ln -s ../libnnz11.so . ln -s ../libocci.so.11.1 . ln -s ../libocci.so.11.1 libocci.so ln -s ../libociei.so . ln -s ../libocijdbc11.so . ln -s ../libsqlplusic.so . ln -s ../libsqlplus.so . echo "/opt/instantclient_11_2/lib/" > /etc/ld.so.conf.d/oci.conf ldconfig \end{lstlisting} Sollten keine Fehler aufgetreten sein, haben Sie den \textit{Oracle Instantclient 11.2} erfolgreich entpackt und im Dateisystem unter \textit{/opt/instantclient\_11\_2} abgelegt. \subsubsection Python, Mapserver und GDAL\\ Installieren Sie nun die restlichen ben�tigten Pakete. Dazu installieren Sie zuerst einige Abh�ngigkeiten und anschlie�end die von der Intevation GmbH bereitgestellten speziellen Versionen von gdal und Mapserver. % ^ Das sollte sich in zukunft �ndern und alles in einem repo sein. Um die Abh�ngigkeiten zu installieren f�hren Sie bitte folgende Befehle aus: \begin{lstlisting} zypper ar http://download.opensuse.org/repositories/home:/intevation:/bfg/SLE_11/ "intevation:bfg" rpm --import http://download.opensuse.org/repositories/home:/intevation:/bfg/SLE_11/repodata/repomd.xml.key zypper ref # Paketlist neu laden zypper in python libgeos0 libproj0 proj netcdf libnetcdf4 xerces-c libxerces-c-3_0 FastCGI zypper mr -d "intevation:bfg" zypper ref # Paketliste neu laden ln -s /usr/lib64/libproj.so.0.6.6 /usr/lib64/libproj.so \end{lstlisting} Nun k�nnen Sie die unter \url{http://ftp.intevation.de/local/flys/2012-09-11/RPMS/x86\_64} bereitgestellten Pakete: \begin{itemize} \item libgdal1-1.9.0-intevation1.x86\_64.rpm \item gdal-1.9.0-intevation1.x86\_64.rpm \item python-gdal-1.9.0-intevation1.x86\_64.rpm \item mapserver-6.0.2-1.x86\_64.rpm \end{itemize} Installieren. Laden Sie diese dazu Herunter und wechseln Sie in das Verzeichnis in welches Sie die Pakete heruntergeladen haben und f�hren Sie dann folgende Befehle aus: \begin{lstlisting} rpm -i --nodeps libgdal1-1.9.0-intevation1.x86_64.rpm gdal-1.9.0-intevation1.x86_64.rpm python-gdal-1.9.0-intevation1.x86_64.rpm rpm -i --nodeps mapserver-6.0.2-1.x86_64.rpm \end{lstlisting} \subsection{Konfiguration} \label{Konfiguration} Der Geodaten Importer kann �ber die Datei \textit{contrib/run\_geo.sh} konfiguriert werden. �ffnen Sie die Datei mit einem Texteditor Ihrer Wahl. In den Zeilen 4-9 werden Optionen definiert, die zwangsl�ufig angepasst werden m�ssen: \textbf{RIVER\_PATH} \\Der Pfad zum Gew�sser im Dateisystem. \textbf{RIVER\_NAME} \\Der Datenbank Name des zu importierenden Gew�ssers. Wird dieser Parameter nicht �bergeben werden die Ordnernamen im mit dem Parameter RIVER\_PATH angegebenen Verzeichnis als Flussnamen interpretiert und es wird versucht diese zu Importieren. \textbf{HOST} \\Der Host der Datenbank. \textbf{USER} \\Der Nutzer, der zum Verbinden zur Datenbank verwendet wird. \textbf{PASS} \\Das Passwort f�r USER zum Verbinden zur Datenbank. In den Zeilen 12-23 werden weitere Optionen definiert, die bei Bedarf angepasst werden k�nnen. Falls nicht anders angegeben, k�nnen die Optionen mit den Werten `0` und `1` belegt werden. \textbf{VERBOSE} \\Dieser Wert gibt die Granularit�t der Log-Ausgaben w�hrend des Imports an. Je h�her der Wert, desto mehr Informationen werden in das Logfile geschrieben. Aktuell sind die Werte `0`, `1` und `2` definiert. Wird der Wert `0` gesetzt, werden nur Fehler und Warnungen in das Logfile geschrieben. Bei `1` werden neben Fehlern und Warnungen auch Infos in das Logfile geschrieben. Bei `2` werden s�mtliche Ausgaben des Programms geschrieben. Dieser Modus ist haupts�chlich f�r die Entwicklung gedacht. \textbf{OGR\_CONNECTION} \\Hiermit kann direkt ein beliebiger Verbindungs string angegegeben werden, welcher die host, user und passwort werde �berschreibt. Dieser Option wird direkt an die OGR Bibliothek weitergegeben und erm�glicht verbesserte Tests und Entwicklung mit verschiedenen Daten Backends. \textbf{SKIP\_AXIS} \\Bei gesetztem Wert `1` werden keine Flussachsen importiert. \textbf{SKIP\_KMS} \\Bei gesetztem Wert `1` werden keine Kilometrierungen importiert. \textbf{SKIP\_CROSSSECTIONS} \\Bei gesetztem Wert `1` werden keine Querprofilespuren importiert. \textbf{SKIP\_FIXPOINTS} \\Bei gesetztem Wert `1` werden keine Festpunkte importiert. \textbf{SKIP\_BUILDINGS} \\Bei gesetztem Wert `1` werden keine Bauwerke importiert. \textbf{SKIP\_FLOODPLAINS} \\Bei gesetztem Wert `1` werden keine Talauen importiert. \textbf{SKIP\_HYDR\_BOUNDARIES} \\Bei gesetztem Wert `1` werden keine hydrologischen Grenzen importiert. \textbf{SKIP\_HWS\_LINES} \\Bei gesetztem Wert `1` werden kein Hochwasserschutz Liniendaten importiert. \textbf{SKIP\_HWS\_POINTS} \\Bei gesetztem Wert `1` werden kein Hochwasserschutz Punktdaten importiert. \textbf{SKIP\_GAUGE\_LOCATION} \\Bei gesetztem Wert `1` werden keine Pegelorte importiert. \textbf{SKIP\_CATCHMENTS} \\Bei gesetztem Wert `1` werden keine Einzugsgebiete importiert. \textbf{SKIP\_UESG} \\Bei gesetztem Wert `1` werden keine �berschwemmungsfl�chen importiert. \textbf{SKIP\_DGM} \\Bei gesetztem Wert `1` werden keine Informationen �ber Digitale Gel�ndemodelle importiert. \subsection{Starten des Geodaten Importers} \label{Starten des Geodaten Importers} Der Geodaten Importer wird mittels eines Shellskripts von einer Konsole gestartet. Dazu f�hren Sie folgenden Befehl aus:\\ \begin{lstlisting} sh contrib/run_geo.sh > geo-import.log \end{lstlisting} Der Importer wird nun gestartet. S�mtliche Log-Ausgaben werden in die Datei $geo-import.log$ geschrieben. \textbf{Hinweis} \\Bitte beachten Sie, dass der Geodaten Importer aufgrund der eingesetzten Technologien derzeit nicht in der Lage ist, lesend auf die Oracle Datenbank zuzugreifen. Entsprechend kann beim Import nicht festgestellt werden, ob sich Shapefiles bereits in der Datenbank befinden, oder nicht. Ein erneuter Import Vorgang der Geodaten w�rde also dazu f�hren, dass Geometrien doppelt in der Datenbank abgelegt werden.