comparison flys-backend/doc/documentation/de/importer-geodaesie.tex @ 5379:61bf64b102bc mapgenfix

Merge with default branch
author Christian Lins <christian.lins@intevation.de>
date Fri, 22 Mar 2013 11:25:54 +0100
parents d086ce6c13d3
children ed149d5d7fb7
comparison
equal deleted inserted replaced
5175:cfc5540a4eec 5379:61bf64b102bc
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:
22 26
27 %TODO etwas zum srs schreiben.
28
23 \textbf{INFO: Inserted 4 features} 29 \textbf{INFO: Inserted 4 features}
24 \\Gibt die Anzahl der erfolgreich importierten Features an.\\ 30 \\Gibt die Anzahl der erfolgreich importierten Features an.\\
25 31
26 \textbf{INFO: Failed to create 2 features} 32 \textbf{INFO: Failed to create 2 features}
27 \\Gibt die Anzahl der Features an, die nicht importiert werden konnten.\\ 33 \\Gibt die Anzahl der Features an, die nicht importiert werden konnten.\\
28 34
29 \textbf{INFO: Found 3 unsupported features} 35 \textbf{INFO: Found 3 unsupported features of type: wbkMultiLineString}
30 \\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
31 werden konnten. Z.B: es werden Linien erwartet, im Shapefile sind jedoch 37 werden konnten. Wenn etwa Punkte erwartet wurden aber sich im Shapefile
32 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.\\
33 46
34 \textbf{ERROR: No source SRS given! No transformation possible!} 47 \textbf{ERROR: No source SRS given! No transformation possible!}
35 \\Das Shapefile enthält keine Information, in welcher Projektion die Geometrien 48 \\Das Shapefile enthält keine Information, in welcher Projektion die Geometrien
36 vorliegen. Es findet keine Transformation in die Zielprojektion statt. Bitte 49 vorliegen. Es findet keine Transformation in die Zielprojektion statt. Bitte
37 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
86 \subsubsection{Hydrologische Grenzen} 99 \subsubsection{Hydrologische Grenzen}
87 \hspace{1cm} 100 \hspace{1cm}
88 \begin{tabular}[t]{ll} 101 \begin{tabular}[t]{ll}
89 Pfad & Hydrologie/Hydr.Grenzen/Linien \\ 102 Pfad & Hydrologie/Hydr.Grenzen/Linien \\
90 Geometrie & LINESTRING, POLYGON \\ 103 Geometrie & LINESTRING, POLYGON \\
91 Attribute & name, kind \\ 104 Attribute & name, kind, sectie, sobek \\
92 \end{tabular} 105 \end{tabular}
93 106
94 \subsubsection{Bauwerke} 107 \subsubsection{Bauwerke}
95 \hspace{1cm} 108 \hspace{1cm}
96 \begin{tabular}[t]{ll} 109 \begin{tabular}[t]{ll}
147 160
148 \subsubsection{Hochwasserschutzanlagen} 161 \subsubsection{Hochwasserschutzanlagen}
149 \hspace{1cm} 162 \hspace{1cm}
150 \begin{tabular}[t]{ll} 163 \begin{tabular}[t]{ll}
151 Pfad & Hydrologie/HW-Schutzanlagen \\ 164 Pfad & Hydrologie/HW-Schutzanlagen \\
152 Geometrie & LINESTRING \\ 165 Geometrie & LINESTRING, POINT \\
153 Attribute & TYP, Bauart, Name, name \\ 166 Attribute & name, source, description, status\_date, agency,
167 dike\_km, range, z\_target, rated\_level, z \\
154 \end{tabular} 168 \end{tabular}
155 169
156 170
157 \subsubsection{Kilometrierung} 171 \subsubsection{Kilometrierung}
158 \hspace{1cm} 172 \hspace{1cm}
161 Geometrie & POINT \\ 175 Geometrie & POINT \\
162 Attribute & name, km, KM \\ 176 Attribute & name, km, KM \\
163 \end{tabular} 177 \end{tabular}
164 178
165 179
166 \subsubsection{Linien}
167 \hspace{1cm}
168 \begin{tabular}[t]{ll}
169 Pfad & Geodaesie/Linien \\
170 Geometrie & LINESTRING, MULTILINESTRING \\
171 Attribute & name, TYP, Z \\
172
173 Anmerkung & Wenn kein Attribut 'TYP' definiert ist, wird standardmäßig der Wert \\
174 & 'DAMM' angenommen. Fehlt ein Attribut 'Z' wird '9999' als Höhe \\
175 & angenommen. \\
176 \end{tabular}
177
178
179 \subsubsection{Überschwemmungsfläche} 180 \subsubsection{Überschwemmungsfläche}
180 \hspace{1cm} 181 \hspace{1cm}
181 \begin{tabular}[t]{ll} 182 \begin{tabular}[t]{ll}
182 Pfad & Hydrologie/UeSG/Berechnung \\ 183 Pfad & Hydrologie/UeSG/Berechnung \\
183 Geometrie & POLYGON, MULTIPOLYGON \\ 184 Geometrie & POLYGON, MULTIPOLYGON \\
184 Attribut & name, diff, count, area, perimeter \\ 185 Attribut & name, diff, count, area, perimeter \\
185 \end{tabular} 186 \end{tabular}
186
187
188 \subsection{Systemanforderungen}
189 \label{Systemanforderungen}
190 \begin{itemize}
191 \item Oracle Datenbank inkl. Schema für FLYS
192 \item GDAL Binding für Python mit Oracle Support
193 \item ogr2ogr
194 \item Python $>=$ 2.6
195 \end{itemize}
196
197
198 \subsection{Installationsanleitung}
199 \label{Installationsanleitung}
200 \begin{itemize}
201
202 \item Python\\
203 Zum Starten des Importers ist es notwendig Python zu installieren. Dies können
204 Sie mit folgendem Befehl auf der Kommandozeile erledigen:
205
206 \begin{lstlisting}
207 zypper in python
208 \end{lstlisting}
209
210 \item Oracle Instantclient\\
211 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
213 erforderlich, folgende Archive von Oracle herunterzuladen. Zu finden sind die
214 folgenden Pakete unter\\
215 \href{http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html}{http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html}
216
217 \begin{itemize}
218 \item instantclient-basic-linux-x86-64-11.2.0.2.0.zip
219 \item instantclient-sdk-linux-x86-64-11.2.0.2.0.zip
220 \item instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip
221 \end{itemize}
222
223 Anschließend führen Sie folgende Befehle auf der Kommandozeile aus:
224
225 \begin{lstlisting}
226
227 mkdir /opt
228
229 unzip ~/instantclient-basic-linux-x86-64-11.2.0.2.0.zip -d /opt
230 unzip ~/instantclient-sdk-linux-x86-64-11.2.0.2.0.zip -d /opt
231 unzip ~/instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip -d /opt
232
233 mkdir /opt/instantclient_11_2/lib
234 cd /opt/instantclient_11_2/lib
235 ln -s ../libclntsh.so.11.1 .
236 ln -s ../libclntsh.so.11.1 libclntsh.so
237 ln -s ../libnnz11.so .
238 ln -s ../libocci.so.11.1 .
239 ln -s ../libocci.so.11.1 libocci.so
240 ln -s ../libociei.so .
241 ln -s ../libocijdbc11.so .
242 ln -s ../libsqlplusic.so .
243 ln -s ../libsqlplus.so .
244
245 rpm -i --nodeps ~/flys-importer/rpm/RPMS/x86_64/libgdal1180-1.8.0-intevation1.x86_64.rpm
246 rpm -i --nodeps ~/flys-importer/rpm/RPMS/x86_64/libgdal180-devel-1.8.0-intevation1.x86_64.rpm
247 rpm -i --nodeps ~/flys-importer/rpm/RPMS/x86_64/gdal180-1.8.0-intevation1.x86_64.rpm
248
249 \end{lstlisting}
250
251 Sollten keine Fehler aufgetreten sein, haben Sie den \textit{Oracle
252 Instantclient 11.2} erfolgreich entpackt und im Dateisystem unter
253 \textit{/opt/instantclient\_11\_2} abgelegt. Mit den Befehlen $rpm -i --nodeps$
254 haben Sie anschließend die notwendigen Bindings installiert, damit der Importer
255 die Geodaten in die Oracle Datenbank schreiben kann.
256
257 \end{itemize}
258
259 187
260 \subsection{Konfiguration} 188 \subsection{Konfiguration}
261 \label{Konfiguration} 189 \label{Konfiguration}
262 Der Geodaten Importer kann über die Datei \textit{contrib/run\_geo.sh} 190 Der Geodaten Importer kann über die Datei \textit{contrib/run\_geo.sh}
263 konfiguriert werden. Öffnen Sie die Datei mit einem Texteditor Ihrer Wahl. 191 konfiguriert werden. Öffnen Sie die Datei mit einem Texteditor Ihrer Wahl.
265 werden müssen: 193 werden müssen:
266 194
267 \textbf{RIVER\_PATH} 195 \textbf{RIVER\_PATH}
268 \\Der Pfad zum Gewässer im Dateisystem. 196 \\Der Pfad zum Gewässer im Dateisystem.
269 197
270 \textbf{RIVER\_ID} 198 \textbf{RIVER\_NAME}
271 \\Die Datenbank ID des zu importierenden Gewässers. 199 \\Der Datenbank Name des zu importierenden Gewässers. Wird dieser Parameter
272 200 nicht übergeben werden die Ordnernamen im mit dem Parameter RIVER\_PATH
273 \textbf{TARGET\_SRS} 201 angegebenen Verzeichnis als Flussnamen interpretiert und es wird versucht
274 \\Das EPSG Referenzsystem in das die Geodaten beim Import projeziert werden 202 diese zu Importieren.
275 sollen.
276 203
277 \textbf{HOST} 204 \textbf{HOST}
278 \\Der Host der Datenbank. 205 \\Der Host der Datenbank.
279 206
280 \textbf{USER} 207 \textbf{USER}
310 \\Bei gesetztem Wert `1` werden keine Kilometrierungen importiert. 237 \\Bei gesetztem Wert `1` werden keine Kilometrierungen importiert.
311 238
312 \textbf{SKIP\_CROSSSECTIONS} 239 \textbf{SKIP\_CROSSSECTIONS}
313 \\Bei gesetztem Wert `1` werden keine Querprofilespuren importiert. 240 \\Bei gesetztem Wert `1` werden keine Querprofilespuren importiert.
314 241
315 \textbf{SKIP\_LINES}
316 \\Bei gesetztem Wert `1` werden keine Linien importiert.
317
318 \textbf{SKIP\_FIXPOINTS} 242 \textbf{SKIP\_FIXPOINTS}
319 \\Bei gesetztem Wert `1` werden keine Festpunkte importiert. 243 \\Bei gesetztem Wert `1` werden keine Festpunkte importiert.
320 244
321 \textbf{SKIP\_BUILDINGS} 245 \textbf{SKIP\_BUILDINGS}
322 \\Bei gesetztem Wert `1` werden keine Bauwerke importiert. 246 \\Bei gesetztem Wert `1` werden keine Bauwerke importiert.
331 \\Bei gesetztem Wert `1` werden kein Hochwasserschutz Liniendaten importiert. 255 \\Bei gesetztem Wert `1` werden kein Hochwasserschutz Liniendaten importiert.
332 256
333 \textbf{SKIP\_HWS\_POINTS} 257 \textbf{SKIP\_HWS\_POINTS}
334 \\Bei gesetztem Wert `1` werden kein Hochwasserschutz Punktdaten importiert. 258 \\Bei gesetztem Wert `1` werden kein Hochwasserschutz Punktdaten importiert.
335 259
336 \textbf{SKIP\_GAUGE\_LOCATION}
337 \\Bei gesetztem Wert `1` werden keine Pegelorte importiert.
338
339 \textbf{SKIP\_CATCHMENTS} 260 \textbf{SKIP\_CATCHMENTS}
340 \\Bei gesetztem Wert `1` werden keine Einzugsgebiete importiert. 261 \\Bei gesetztem Wert `1` werden keine Einzugsgebiete importiert.
341 262
342 \textbf{SKIP\_UESG} 263 \textbf{SKIP\_UESG}
343 \\Bei gesetztem Wert `1` werden keine Überschwemmungsflächen importiert. 264 \\Bei gesetztem Wert `1` werden keine Überschwemmungsflächen importiert.
344 265
266 \textbf{SKIP\_DGM}
267 \\Bei gesetztem Wert `1` werden keine Informationen über Digitale Geländemodelle importiert.
268
269 \textbf{SKIP\_JETTIES}
270 \\Bei gesetztem Wert `1` werden keine Informationen über Buhnen importiert.
345 271
346 \subsection{Starten des Geodaten Importers} 272 \subsection{Starten des Geodaten Importers}
347 \label{Starten des Geodaten Importers} 273 \label{Starten des Geodaten Importers}
348 Der Geodaten Importer wird mittels eines Shellskripts von einer Konsole 274 Der Geodaten Importer wird mittels eines Shellskripts von einer Konsole
349 gestartet. Dazu führen Sie folgenden Befehl aus:\\ 275 gestartet. Dazu führen Sie folgenden Befehl aus:\\

http://dive4elements.wald.intevation.org