Mercurial > dive4elements > river
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:\\ |