view flys-backend/doc/shapeimporter/documentation.txt @ 3658:55c4b7442236

Initial checkin of documentation of the shape importer. flys-backend/trunk@5252 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 23 Aug 2012 15:46:01 +0000
parents
children
line wrap: on
line source
Geodaten Importer
=================
Der Geodaten Importer ist ein in Python geschriebenes Kommandozeilen Tool zum
Import von Shapefiles in eine Datenbank. Zum Lesen der Shapefiles und zum
Schreiben der Geodaten in die Datenbank wird GDAL verwendet. Zum Import in eine
Oracle Datenbank ist es erforderlich, dass GDAL und GDAL Python Bindungs mit
Oracle Unterstützung installiert sind. Weitere Details hierzu befinden sich im
Kapitel `Systemanforderungen` und `Installationsanleitung`.
Der Importer kann mit einem Shellscript von der Kommandozeilen gestartet werden
(siehe Kapitel `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 hierzu einen speziellen
Parser, der die speziellen Attribute eines Shapefiles liest und in die ent-
sprechende Relation der Datenbank schreibt. Die Parser sind speziell auf das
Dateisystem der BfG ausgerichtet. So wird z.B. erwartet, dass die Shapefiles der
Gewässerachse im Ordner `Geodaesie/Flussachse+km` liegen. Weitere Informationen zu
den einzelnen Parsern sind dem nächsten Kapitel `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:

  INFO: Inserted 4 features         Gibt die Anzahl der erfolgreich importierten
                                    Features an.

  INFO: Failed to create 2 features   Gibt die Anzahl der Features an, die nicht
                                      importiert werden konnten.

  INFO: Found 3 unsupported features  Gibt die Anzahl der Features an, die
                                      aufgrund ihres Datentyps nicht importiert
                                      werden konnten. Z.B: es werden Linien
                                      erwartet, im Shapefile sind jedoch
                                      Polygone enthalten.

  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.

  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.

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.


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:

  Pfad          Der Pfad, in dem die Shapefiles im Dateisystem abgelegt sein
                müssen ausgehend vom Gewässer Verzeichnis.

  Geometrie     Der Geometrie Typ, der für diese Klasse von Shapefiles
                erwartet wird.

  Attribute     Eine Liste der Attribute, die vom Parser aus dem Shape
                gelesen werden.


    Achsen
    ------
    Pfad        Geodaesie/Flussachse+km
    Geometrie   LINESTRING
    Attribute   name, kind


    Hydrologische Grenzen
    ---------------------
    Pfad        Hydrologie/Hydr.Grenzen/Linien
    Geometrie   LINESTRING, POLYGON
    Attribute   name, kind


    Bauwerke
    --------
    Pfad        Geodaesie/Bauwerke
    Geometrie   LINESTRING
    Attribute   name, Name, KWNAAM


    Einzugsgebiete
    --------------
    Pfad        Hydrologie/Einzugsgebiet
    Geometrie   POLYGON, MULTIPOLYGON
    Attribute   name, Name, AREA, area


    Querprofilspuren
    ----------------
    Pfad        Geodaesie/Querprofile
    Geometrie   LINESTRING
    Attribute   KILOMETER, KM, STATION, ELEVATION


    Festpunkte
    ----------
    Pfad        Geodaesie/Festpunkte
    Geometrie   POINT
    Attribute   name, KM, ELBE_KM, X, Y, HPGP


    Talaue
    ------
    Pfad        Hydrologie/Hydr.Grenzen
    Geometrie   POLYGON, MULTIPOLYGON
    Attribute   name


    Pegelstationen
    --------------
    Pfad        Hydrologie/Streckendaten
    Geometrie   POINT
    Attribute   Name, name, MPNAAM


    Hochwasserschutzanlagen
    -----------------------
    Pfad        Hydrologie/HW-Schutzanlagen
    Geometrie   LINESTRING
    Attribute   TYP, Bauart, Name, name


    Kilometrierung
    --------------
    Pfad        Geodaesie/Flussachse+km
    Geometrie   POINT
    Attribute   name, km, KM


    Linien
    ------
    Pfad        Geodaesie/Linien
    Geometrie   LINESTRING, MULTILINESTRING
    Attribute   name, TYP, Z

    Anmerkung: Wenn kein Attribut 'TYP' definiert ist, wird standardmäßig der
    Wert 'DAMM' angenommen. Fehlt ein Attribut 'Z' wird als '9999' als Höhe
    angenommen.


    Überschwemmungsfläche
    ----------------------
    Pfad        Hydrologie/UeSG/Berechnung
    Geometrie   POLYGON, MULTIPOLYGON
    Attribut    name, diff, count, area, perimeter


Systemanforderungen
-------------------
 * Oracle Datenbank inkl. Schema für FLYS
 * GDAL Binding für Python mit Oracle Support
 * ogr2ogr
 * Python >= 2.6


Installationsanleitung
----------------------
 * TODO: GDAL Binding installieren
 * TODO: Python installieren
 * TODO: ogr2ogr installieren


Konfiguration
-------------
Der Geodaten Importer kann über die Datei `contrib/shpimporter/run.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:

  RIVER_PATH    Der Pfad zum Gewässer im Dateisystem.
  RIVER_ID      Die Datenbank ID des zu importierenden Gewässers.
  TARGET_SRS    Das EPSG Referenzsystem in das die Geodaten beim Import
                projeziert werden sollen.
  HOST          Der Host der Datenbank.
  USER          Der Nutzer, der zum Verbinden zur Datenbank verwendet wird.
  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.

  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.

  SKIP_AXIS             Bei gesetztem Wert `1` werden keine Flussachsen importiert.
  SKIP_KMS              Bei gesetztem Wert `1` werden keine Kilometrierungen importiert.
  SKIP_CROSSSECTIONS    Bei gesetztem Wert `1` werden keine Querprofilespuren
                        importiert.
  SKIP_LINES            Bei gesetztem Wert `1` werden keine Linien importiert.
  SKIP_FIXPOINTS        Bei gesetztem Wert `1` werden keine Festpunkte importiert.
  SKIP_BUILDINGS        Bei gesetztem Wert `1` werden keine Bauwerke importiert.
  SKIP_FLOODPLAINS      Bei gesetztem Wert `1` werden keine Talauen importiert.
  SKIP_HYDR_BOUNDARIES  Bei gesetztem Wert `1` werden keine hydrologischen
                        Grenzen importiert.
  SKIP_HWS              Bei gesetztem Wert `1` werden keine
                        Hochwasserschutzanlagen importiert.
  SKIP_GAUGE_LOCATION   Bei gesetztem Wert `1` werden keine Pegelorte importiert.
  SKIP_CATCHMENTS       Bei gesetztem Wert `1` werden keine Einzugsgebiete importiert.
  SKIP_UESG             Bei gesetztem Wert `1` werden keine
                        Überschwemmungsflächen importiert.


Starten des Geodaten Importers
------------------------------
Der Geodaten Importer wird mittels eines Shellskripts von einer Konsole
gestartet. Dazu wechseln Sie auf der Konsole in das Verzeichnis 'TODO' und
führen Sie folgenden Befehl aus:

  $> sh contrib/shpimporter/run.sh > import.log

Der Importer wird nun gestartet. Sämtliche Log-Ausgaben werden in die Datei
`import.log` geschrieben.

http://dive4elements.wald.intevation.org