OGR

Tipps und Tricks rund um OGR

OGR erlaubt das untersuchen und konvertieren von Vektor-GIS-Daten. Siehe Formatinfos und Infos über Tools.

ogrinfo: Infos über einzelne Features:

ogrinfo -al -so KMU.dxf

Gibt allgemeine Infos zum Datensatz aus, wie Ausdehnung, Anzahl Features, Layer, Geometrietypen, etc.

ogrinfo -geom=SUMMARY -al fuaggeobau.dxf | less

Gibt für das angegebene File eine Zusammenfassung der Attribute, Ids und Geometrie an. Mit -geom=SUMMARY wird nicht die gesamte Geometrie herausgeschrieben, sondern nur eine Zusammenfassung (z.B. Anzahl Stützpunkte).

 

Debug-Option für Fortschrittsanzeige

Um bei der Verarbeitung von ogr2ogr eine Rückmeldung zu erhalten über den Fortschritt kann man die Umgebungsvariable CPL_DEBUG=on setzen. Unter Linux:

export CPL_DEBUG=on

Unter Windows in den Umgebungsvariablen setzen.

 

ogr2ogr: Konvertierung Postgis nach DXF

Siehe auch Infos unter der OGR-Formatbeschreibung von DXF. Um Postgis-Daten mit ogr nach DXF exportieren zu können bedarf es folgender Vorarbeiten:

1. Einrichten eines Views mit den entsprechenden Attributen (siehe Liste unten). Dieser View kann auch ein Zusammenzug mehrerer Tabellen mit unterschiedlichen Geometrietypen sein. Bitte schreiben Sie die Attribute exakt so wie sie sind, ansonsten werden sie von OGR nicht erkannt:

  • gid: die Primary key Spalte. Spalte kann auch anders als "gid" heissen.
  • the_geom: die Geometriespalte. Im View können Punkte, Linien, Flächen etc. gemixt werden. - Postgis Datentyp geometry. Spalte kann auch anders als "the_geom" heissen.
  • layer: der Layername im zu exportierenden DXF-File, z.b. 'haltung_text' - Postgis Datentyp Text
  • ogr_style: Styling-Angaben gemäss der OGR-Feature-Styling Spezifikation - Postgis Datentyp Text
  • blockname: optional für Punktdaten. Dann werden die Punktdaten als Block umgesetzt. - Postgis Datentyp Text
  • blockscale: optional für Punktdaten nach dem Format (x,y,z) , also z.b. (1.5,1.5,1.5) - Postgis Datentyp text
  • blockangle: Rotation des Block-Symbols in Altgrad - Postgis Datentyp numeric

2. Optional Einrichten einer DXF header-Datei welche die Blockdefinitionen und Linienstile enthält. (Beispiel DXF Headerdatei)

Befehl für den Export (Unix Shell oder DOS Konsole)

ogr2ogr -select '' -f DXF abwasser-export-uster.dxf -dsco header=header_export_werkplan_abwasser.dxf
-spat 695700 245900 695900 246100
PG:"dbname='uster' host='dbserver' port='5432' user='myuser' password='mypw'
schemas=abwasser tables=abwasser.export_dxf_geo405(the_geom)"

Mit "-select ' '" könnte man eine Filterung (z.b. Aufgrund von Attributen) machen, "-f DXF file.dxf" legt das Ausgabeformat und den Dateinamen fest, -dsco header=headerfile.dxf legt den Name der header Datei mit den Block- und Strichdefinitionen fest, mit -spat xmin ymin xmax ymax" macht man die räumliche Einschränkung, der Rest sind Postgis-spezifische Parameter, wie Verbindungsparameter, Schema, Tabelle und Geometriespalte.

Nachfolgend noch einige Beispiele für verschiedene Objekte:

Konvertierung eines Punktobjektes für ein Koordinatenkreuz

  • the_geom: POINT geometry (gemäss Simple Features)
  • layer: 'koordinatenkreuze'
  • ogr_style: NULL (nicht benötigt)
  • blockname: koordinatenkreuz (Blockdefinition muss in DXF Header-Datei vorhanden sein)
  • blockscale: '(1,1,1)' - die Werte bedeuten dass die originale Blockdefinition nicht skaliert wird
  • blockangle: 0 - bedeutet dass die originale Blockdefinition nicht rotiert wird

Konvertierung eines Textobjekts

  • the_geom: POINT geometry (gemäss Simple Features)
  • layer: 'koordinatenkreuze_text'
  • ogr_style: 'LABEL(t:"700500/242300",s:1.5g,f:"Cadastra Cn,Arial")' - die Spalte enthält den Labeltext, die Grösse und den Font. Es können auch die Ankerpunkte angegeben werden (siehe OGR Feature Styling Spezifikation)
  • blockname: NULL (nicht benötigt)
  • blockscale: NULL (nicht benötigt)
  • blockangle: NULL (nicht benötigt)

Konvertierung eines Linienobjekts

  • the_geom: LINESTRING oder MULTILINESTRING geometry (gemäss Simple Features)
  • layer: 'haltung_art-regenabwasser'
  • ogr_style: 'PEN(c:#0000FF,p:"1g 2g")' - die Spalte enthält z.b. die Linienfarbe und pen-Parameter für die Strichlierung. Das "g" in den Pen-Parametern steht für "ground units", also z.b. "m" im Fall von CH1903-LV03 (siehe OGR Feature Styling Spezifikation)
  • blockname: NULL (nicht benötigt)
  • blockscale: NULL (nicht benötigt)
  • blockangle: NULL (nicht benötigt)

 

ogr2ogr: Konvertierung Postgis nach SpatiaLite

Folgender Befehl konvertiert eine Postgis-Tabelle in eine SQLITE DB die noch nicht existiert. Es werden dabei die Metadaten erzeugt und die Koordinatensysteme eingelesen. -nln wird angegeben um den neuen Tabellennamen festzulegen. Die beiden dsco-Optionen (dataset creation options) legen das Geometrieformat fest und lesen die Koordinatensystemtabelle ein. Die lco (layer creation options) legen fest dass alles klein geschrieben wird und manche Sonderzeichen durch underbars ersetzt werden (LAUNDER=yes) und dass der räumliche Index erstellt werden soll (SPATIAL_INDEX=yes). Es sollte zwingend die SRID (-lco SRID=21781) und der Geometrietyp (-nlt POLYGON) angegeben werden.

ogr2ogr -dsco SPATIALITE=YES -dsco INIT_WITH_EPSG=yes -lco LAUNDER=yes -lco SPATIAL_INDEX=yes
-lco SRID=21781 -nln liegenschaften -nlt POLYGON -f SQLite uster.sqlite
PG:"dbname='uster' host='srv138' port='5432' user='username' password='password' schemas=av_user tables=liegenschaften(the_geom)"

Der folgende Befehl hängt eine andere Tabelle mit -append an eine bestehende SpatiaLite-Tabelle an. Neu ist das append. Die dsco Options müssen nicht mehr angegeben werden, da die Datei ja bereits erstellt wurde:

ogr2ogr -append -lco LAUNDER=yes -lco SPATIAL_INDEX=yes -lco SRID=21781
-nln liegenschaften_beschriftung -nlt POINT -f SQLite uster.sqlite
PG:"dbname='uster' host='srv138' port='5432' user='username' password='password' schemas=av_user tables=liegenschaften_beschriftung(the_geom)"

ogr2ogr: Konvertierung Postgis nach Geopackage

ogr2ogr -f GPKG gebaeude_uster.gpkg -lco SRID=21781 -nln gebaeude -nlt POLYGON -lco SPATIAL_INDEX=yes
   PG:"dbname='uster' host='localhost' port='5432' user='username' password='pword' schemas=av_user tables=gebaeude(the_geom)"

Lesen und Konvertieren einer ESRI Personal-Geodatabase

Zuerst muss in Windows eine Datenquelle erstellt werden: Systemsteuerung → Verwaltung → Datenquellen → Hinzufügen → Microsoft Access-Treiber (.mdb) → Fertigstellen → Datenquellenname (z.B. gep-mdb) und Datenbank auswählen (Pfad zu .mdb-Datei auswählen)→ OK

Infos zu vorhanden Tabellen auslesen:

ogrinfo PGeo:gep-mdb

wobei "gep-mdb" der Name der zuvor definierten Datenquelle (odbc) ist. Danach erfolgt in der Konsole eine Auflsitung der Tabellen

Konvertieren in ein anderes Format

ogr2ogr -f GML einzugsgebiet.gml PGeo:gep-mdb AWH_EINZUGSGEBIET

Der Befehl konvertiert die Tabelle AWH_EINZUGSGEBIET der Personal-Geodatabase "gep-mdb" nach GML.

 

Oracle Spatial

Listing ausgeben über vorhandene Tabellen und Views:

ogrinfo -ro OCI:user/pw@cplandb

cplandb wurde unter /usr/local/lib/instantclient_10_2/network/admin/tnsnames.ora definiert. Siehe auch Installationsanleitung Oracle Client.

Infos über einzelne Features einer Tabelle ausgeben:

ogrinfo -ro -where "area > 200" OCI:user/pw@cplandb USTER_AW.WW_POINT_DETAIL_POLYGON

Konvertierung Oracle Spatial nach ESRI shapefile:

ogr2ogr -f "ESRI Shapefile" pt_detail_line.shp OCI:system/cplmanager@cplandb USTER_AW.WW_POINT_DETAIL_POLYGON

Anscheinend wird dabei auch ein directory mit dem Namen des shp-Files angelegt.

Artikelaktionen
Sitemap AGB Impressum