comparison flys-backend/doc/documentation/de/importer-geodaesie.tex @ 5007:4e5d209253dd dami

Importer doc: Update installation documentation.
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 15 Feb 2013 17:22:07 +0100
parents fa2a3ed97464
children a56efdfcab17
comparison
equal deleted inserted replaced
5006:769593a84606 5007:4e5d209253dd
1 \section{Geodatenimport} 1 \section{Geodatenimport}
2 2
3 Der Geodaten Importer ist ein in Python geschriebenes Kommandozeilen Tool zum 3 Der Geodaten Importer ist ein in der Programmiersprache Python
4 Import von Shapefiles in eine Datenbank. Zum Lesen der Shapefiles und zum 4 geschriebenes Kommandozeilen Werkzeug zum Import von Shapefiles in
5 Schreiben der Geodaten in die Datenbank wird GDAL verwendet. Der Import in eine 5 eine Datenbank.
6 Oracle Datenbank erfordert, dass GDAL und GDAL Python Bindungs mit 6 Zum Lesen der Shapefiles und zum schreiben der Geodaten
7 Oracle Unterstützung installiert sind. Weitere Details hierzu befinden sich im 7 in die Datenbank wird die GDAL Bibliothek verwendet.
8 Um Daten in eine Oracle Datenbank zu importieren ist es nötig, dass
9 GDAL und GDAL Python Bindungs mit Oracle Unterstützung installiert
10 sind. Bei der Verwendung von PostgreSQL entfällt dieser Schritt.
11 Weitere Details hierzu befinden sich im
8 Kapitel \ref{Systemanforderungen} und \ref{Installationsanleitung}. 12 Kapitel \ref{Systemanforderungen} und \ref{Installationsanleitung}.
9 13
10 Der Importer kann mit einem Shellscript von der Kommandozeile gestartet werden 14 Der Importer kann mit einem Shellscript von der Kommandozeile gestartet werden
11 (siehe Kapitel \ref{Starten des Geodaten Importers}). Nach dem Start wird anhand der 15 (siehe Kapitel \ref{Starten des Geodaten Importers}). Nach dem Start wird anhand der
12 Konfiguration festgestellt, welche Klassen von Shapefiles aus dem Dateisystem 16 Konfiguration festgestellt, welche Klassen von Shapefiles aus dem Dateisystem
13 importiert werden sollen. Für jede Klasse gibt es einen speziellen 17 importiert werden sollen. Für jede Klasse gibt es einen speziellen
14 Parser, der die speziellen Attribute eines Shapefiles liest und in die entsprechende 18 Parser, der die speziellen Attribute eines Shapefiles liest und in die entsprechende
15 Relation der Datenbank schreibt. Die Parser sind speziell auf das 19 Relation der Datenbank schreibt. Die Parser sind speziell auf das
16 Dateisystem der BfG ausgerichtet. So wird z.B. erwartet, dass die Shapefiles der 20 Dateisystem der BfG ausgerichtet. So wird beispielsweise erwartet, dass die Shapefiles der
17 Gewässerachse im Ordner $Geodaesie/Flussachse+km$ liegen. Weitere Informationen zu 21 Gewässerachse im Ordner $Geodaesie/Flussachse+km$ liegen. Weitere Informationen zu
18 den einzelnen Parsern sind dem nächsten Kapitel \ref{Beschreibung der Parser} zu 22 den einzelnen Parsern sind dem nächsten Kapitel \ref{Beschreibung der Parser} zu
19 entnehmen. Der Erfolg oder Misserfolg eines Shape-Imports wird je nach 23 entnehmen. Der Erfolg oder Misserfolg eines Shape-Imports wird je nach
20 Konfiguration im Logfile vermerkt. Folgende Einträge können dem Logfile 24 Konfiguration im Logfile vermerkt. Folgende Einträge können dem Logfile
21 entnommen werden: 25 entnommen werden:
26 \\Gibt die Anzahl der erfolgreich importierten Features an.\\ 30 \\Gibt die Anzahl der erfolgreich importierten Features an.\\
27 31
28 \textbf{INFO: Failed to create 2 features} 32 \textbf{INFO: Failed to create 2 features}
29 \\Gibt die Anzahl der Features an, die nicht importiert werden konnten.\\ 33 \\Gibt die Anzahl der Features an, die nicht importiert werden konnten.\\
30 34
31 \textbf{INFO: Found 3 unsupported features} 35 \textbf{INFO: Found 3 unsupported features of type: wbkMultiLineString}
32 \\Gibt die Anzahl der Features an, die aufgrund ihres Datentyps nicht importiert 36 \\Gibt die Anzahl der Features an, die aufgrund ihres Datentyps nicht importiert
33 werden konnten. Z.B: es werden Linien erwartet, im Shapefile sind jedoch 37 werden konnten. Wenn etwa Punkte erwartet wurden aber sich im Shapefile
34 Polygone enthalten.\\ 38 Polygone befanden.\\
39
40 \textbf{INFO: Did not import values from fields: TYP ID GRUENDUNG BHW}
41 \\Manche Importer versuchen neben der Geographischen Information weitere
42 Felder in die Datenbank einzulesen. Um festzustellen ob ein Feld aufgrund
43 von Tippfehlern oder unterschiedlicher Schreibweise nicht importiert wurde,
44 gibt diese Information Auskunft darüber welche Felder aus der Shape Datei
45 nicht verwendet wurden.\\
35 46
36 \textbf{ERROR: No source SRS given! No transformation possible!} 47 \textbf{ERROR: No source SRS given! No transformation possible!}
37 \\Das Shapefile enthält keine Information, in welcher Projektion die Geometrien 48 \\Das Shapefile enthält keine Information, in welcher Projektion die Geometrien
38 vorliegen. Es findet keine Transformation in die Zielprojektion statt. Bitte 49 vorliegen. Es findet keine Transformation in die Zielprojektion statt. Bitte
39 beachten Sie, dass FLYS diese Geometrien später ggf nicht korrekt darstellen 50 beachten Sie, dass FLYS diese Geometrien später ggf nicht korrekt darstellen
88 \subsubsection{Hydrologische Grenzen} 99 \subsubsection{Hydrologische Grenzen}
89 \hspace{1cm} 100 \hspace{1cm}
90 \begin{tabular}[t]{ll} 101 \begin{tabular}[t]{ll}
91 Pfad & Hydrologie/Hydr.Grenzen/Linien \\ 102 Pfad & Hydrologie/Hydr.Grenzen/Linien \\
92 Geometrie & LINESTRING, POLYGON \\ 103 Geometrie & LINESTRING, POLYGON \\
93 Attribute & name, kind \\ 104 Attribute & name, kind, sectie, sobek \\
94 \end{tabular} 105 \end{tabular}
95 106
96 \subsubsection{Bauwerke} 107 \subsubsection{Bauwerke}
97 \hspace{1cm} 108 \hspace{1cm}
98 \begin{tabular}[t]{ll} 109 \begin{tabular}[t]{ll}
149 160
150 \subsubsection{Hochwasserschutzanlagen} 161 \subsubsection{Hochwasserschutzanlagen}
151 \hspace{1cm} 162 \hspace{1cm}
152 \begin{tabular}[t]{ll} 163 \begin{tabular}[t]{ll}
153 Pfad & Hydrologie/HW-Schutzanlagen \\ 164 Pfad & Hydrologie/HW-Schutzanlagen \\
154 Geometrie & LINESTRING \\ 165 Geometrie & LINESTRING, POINT \\
155 Attribute & TYP, Bauart, Name, name \\ 166 Attribute & name, source, description, status\_date, agency,
167 dike\_km, range, z\_target, rated\_level, z \\
156 \end{tabular} 168 \end{tabular}
157 169
158 170
159 \subsubsection{Kilometrierung} 171 \subsubsection{Kilometrierung}
160 \hspace{1cm} 172 \hspace{1cm}
161 \begin{tabular}[t]{ll} 173 \begin{tabular}[t]{ll}
162 Pfad & Geodaesie/Flussachse+km \\ 174 Pfad & Geodaesie/Flussachse+km \\
163 Geometrie & POINT \\ 175 Geometrie & POINT \\
164 Attribute & name, km, KM \\ 176 Attribute & name, km, KM \\
165 \end{tabular}
166
167
168 \subsubsection{Linien}
169 \hspace{1cm}
170 \begin{tabular}[t]{ll}
171 Pfad & Geodaesie/Linien \\
172 Geometrie & LINESTRING, MULTILINESTRING \\
173 Attribute & name, TYP, Z \\
174
175 Anmerkung & Wenn kein Attribut 'TYP' definiert ist, wird standardmäßig der Wert \\
176 & 'DAMM' angenommen. Fehlt ein Attribut 'Z' wird '9999' als Höhe \\
177 & angenommen. \\
178 \end{tabular} 177 \end{tabular}
179 178
180 179
181 \subsubsection{Überschwemmungsfläche} 180 \subsubsection{Überschwemmungsfläche}
182 \hspace{1cm} 181 \hspace{1cm}
189 188
190 \subsection{Systemanforderungen} 189 \subsection{Systemanforderungen}
191 \label{Systemanforderungen} 190 \label{Systemanforderungen}
192 \begin{itemize} 191 \begin{itemize}
193 \item Oracle Datenbank inkl. Schema für FLYS 192 \item Oracle Datenbank inkl. Schema für FLYS
194 \item GDAL Binding für Python mit Oracle Support 193 \item GDAL ab Version 1.9 für Python mit Oracle Support
195 \item ogr2ogr 194 \item ogr2ogr
196 \item Python $>=$ 2.6 195 \item Python $>=$ 2.6
197 \end{itemize} 196 \end{itemize}
198 197
199 198
200 \subsection{Installationsanleitung} 199 \subsection{Installationsanleitung}
201 \label{Installationsanleitung} 200 \label{Installationsanleitung}
202 \begin{itemize} 201
203 202 \subsubsection Oracle Instantclient\\
204 \item Python\\ 203 % TODO: oracle_cx
205 Zum Starten des Importers ist es notwendig Python zu installieren. Dies können 204 Der Oracle Instantclient 11.2.0.2.0 wird benötigt, damit der Importer mittels Python
206 Sie mit folgendem Befehl auf der Kommandozeile erledigen: 205 und GDAL in die bestehende Oracle Datenbank schreiben kann. Wenn Sie
207 206 eine PosgreSQL Datenbank verwenden, können Sie diesen Schritt überspringen.
208 \begin{lstlisting} 207
209 zypper in python 208 Zur Anbindung von Oracle ist es erforderlich, folgende Archive von
210 \end{lstlisting} 209 Oracle herunterzuladen (Sie benötigen dafür ein Oracle Benutzerkonto):
211 210
212 \item Oracle Instantclient\\ 211 Der Oracle Instantclient 11.2 wird benötigt, damit der Importer mittels Python
213 Der Oracle Instantclient 11.2 wird benötigt, damit der Importer mittels Python 212 und GDAL in die bestehende Oracle Datenbank schreiben kann. Dazu ist es
214 und GDAL in die bestehende Oracle Datenbank schreiben kann. Dazu ist es 213 erforderlich, folgende Archive von Oracle herunterzuladen.
215 erforderlich, folgende Archive von Oracle herunterzuladen. Zu finden sind die
216 folgenden Pakete unter\\
217 \href{http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html}{http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html}
218 214
219 \begin{itemize} 215 \begin{itemize}
220 \item instantclient-basic-linux-x86-64-11.2.0.2.0.zip 216 \item instantclient-basic-linux-x86-64-11.2.0.2.0.zip
221 \item instantclient-sdk-linux-x86-64-11.2.0.2.0.zip 217 \item instantclient-sdk-linux-x86-64-11.2.0.2.0.zip
222 \item instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip 218 \item instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip
223 \end{itemize} 219 \end{itemize}
224 220
221 Zu finden sind die
222 Pakete unter:\\
223 \href{http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html}
224 {http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html}
225
226
227 Um diese Pakete zu installieren, öffnen Sie eine Konsole und wechseln
228 in das Verzeichnis in welches Sie die heruntergeladenen Pakete
229 gespeichert haben. (z.B.: cd /home/benutzername/Downloads )
225 Anschließend führen Sie folgende Befehle auf der Kommandozeile aus: 230 Anschließend führen Sie folgende Befehle auf der Kommandozeile aus:
226 231
227 \begin{lstlisting} 232 \begin{lstlisting}
228 233 mkdir /opt
229 mkdir /opt 234
230 235 unzip instantclient-basic-linux-x86-64-11.2.0.2.0.zip -d /opt
231 unzip ~/instantclient-basic-linux-x86-64-11.2.0.2.0.zip -d /opt 236 unzip instantclient-sdk-linux-x86-64-11.2.0.2.0.zip -d /opt
232 unzip ~/instantclient-sdk-linux-x86-64-11.2.0.2.0.zip -d /opt 237 unzip instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip -d /opt
233 unzip ~/instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip -d /opt 238
234 239 mkdir /opt/instantclient_11_2/lib
235 mkdir /opt/instantclient_11_2/lib 240 cd /opt/instantclient_11_2/lib
236 cd /opt/instantclient_11_2/lib 241 ln -s ../libclntsh.so.11.1 .
237 ln -s ../libclntsh.so.11.1 . 242 ln -s ../libclntsh.so.11.1 libclntsh.so
238 ln -s ../libclntsh.so.11.1 libclntsh.so 243 ln -s ../libnnz11.so .
239 ln -s ../libnnz11.so . 244 ln -s ../libocci.so.11.1 .
240 ln -s ../libocci.so.11.1 . 245 ln -s ../libocci.so.11.1 libocci.so
241 ln -s ../libocci.so.11.1 libocci.so 246 ln -s ../libociei.so .
242 ln -s ../libociei.so . 247 ln -s ../libocijdbc11.so .
243 ln -s ../libocijdbc11.so . 248 ln -s ../libsqlplusic.so .
244 ln -s ../libsqlplusic.so . 249 ln -s ../libsqlplus.so .
245 ln -s ../libsqlplus.so . 250
246 251 echo "/opt/instantclient_11_2/lib/" > /etc/ld.so.conf.d/oci.conf
247 rpm -i --nodeps ~/flys-importer/rpm/RPMS/x86_64/libgdal1180-1.8.0-intevation1.x86_64.rpm 252 ldconfig
248 rpm -i --nodeps ~/flys-importer/rpm/RPMS/x86_64/libgdal180-devel-1.8.0-intevation1.x86_64.rpm
249 rpm -i --nodeps ~/flys-importer/rpm/RPMS/x86_64/gdal180-1.8.0-intevation1.x86_64.rpm
250
251 \end{lstlisting} 253 \end{lstlisting}
252 254
253 Sollten keine Fehler aufgetreten sein, haben Sie den \textit{Oracle 255 Sollten keine Fehler aufgetreten sein, haben Sie den \textit{Oracle
254 Instantclient 11.2} erfolgreich entpackt und im Dateisystem unter 256 Instantclient 11.2} erfolgreich entpackt und im Dateisystem unter
255 \textit{/opt/instantclient\_11\_2} abgelegt. Mit den Befehlen $rpm -i --nodeps$ 257 \textit{/opt/instantclient\_11\_2} abgelegt.
256 haben Sie anschließend die notwendigen Bindings installiert, damit der Importer 258
257 die Geodaten in die Oracle Datenbank schreiben kann. 259 \subsubsection Python, Mapserver und GDAL\\
258 260 Installieren Sie nun die restlichen benötigten Pakete.
261 Dazu installieren Sie zuerst einige Abhängigkeiten und anschließend die
262 von der Intevation GmbH bereitgestellten speziellen Versionen von gdal
263 und Mapserver.
264 % ^ Das sollte sich in zukunft ändern und alles in einem repo sein.
265
266 Um die Abhängigkeiten zu installieren führen Sie bitte folgende Befehle aus:
267
268 \begin{lstlisting}
269 zypper ar http://download.opensuse.org/repositories/home:/intevation:/bfg/SLE_11/ "intevation:bfg"
270 rpm --import http://download.opensuse.org/repositories/home:/intevation:/bfg/SLE_11/repodata/repomd.xml.key
271 zypper ref # Paketlist neu laden
272 zypper in python libgeos0 libproj0 proj netcdf libnetcdf4 xerces-c libxerces-c-3_0 FastCGI
273 zypper mr -d "intevation:bfg"
274 zypper ref # Paketliste neu laden
275 ln -s /usr/lib64/libproj.so.0.6.6 /usr/lib64/libproj.so
276 \end{lstlisting}
277
278 Nun können Sie die unter \url{http://ftp.intevation.de/local/flys/2012-09-11/RPMS/x86\_64}
279 bereitgestellten Pakete:
280 \begin{itemize}
281 \item libgdal1-1.9.0-intevation1.x86\_64.rpm
282 \item gdal-1.9.0-intevation1.x86\_64.rpm
283 \item python-gdal-1.9.0-intevation1.x86\_64.rpm
284 \item mapserver-6.0.2-1.x86\_64.rpm
259 \end{itemize} 285 \end{itemize}
286
287 Installieren. Laden Sie diese dazu Herunter und wechseln Sie in das Verzeichnis in welches Sie
288 die Pakete heruntergeladen haben und führen Sie dann folgende Befehle aus:
289
290 \begin{lstlisting}
291 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
292 rpm -i --nodeps mapserver-6.0.2-1.x86_64.rpm
293 \end{lstlisting}
260 294
261 295
262 \subsection{Konfiguration} 296 \subsection{Konfiguration}
263 \label{Konfiguration} 297 \label{Konfiguration}
264 Der Geodaten Importer kann über die Datei \textit{contrib/run\_geo.sh} 298 Der Geodaten Importer kann über die Datei \textit{contrib/run\_geo.sh}

http://dive4elements.wald.intevation.org