Mercurial > dive4elements > river
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} |