OGR
OGR (ausgesprochen "Oger") ist eine ansehnliche Sammlung von Werkzeugen, namentlich OGR2OGR, die Lese- und manchmal Schreib-Zugriffe zu einer Vielzahl von Vektor-Dateiformaten, Datenbanken und übers Internet anbieten (OGR Simple Feature Library). OGR ist Teil der GDAL-Rasterformate-Bibliothek, die typischerweise über die Kommandozeile gesteuert werden.
Siehe auch:
- OGR Homepage
- HowTo OGR2OGR (OGR - Tipps und Tricks), OGR-Tools
- GDAL
- GeoConverter und allgemein GIS-Konverter und GIS-Datei-Formate
Über OGR
- Was ist OGR?
- OGR2OGR ist ein sog. 'starrer' Konverter (1:1-Mapping), der auch Funktionen bzw. SQL-Befehle interpretieren kann - auch ohne Datenbank. SQL-Anfragen an SQL-fähige Treiber (z.B. PostgreSQL/PostGIS, Personal Geodatabase) werden direkt weitergeleitet, so dass die ganze Funktionalität des beteiligten Datenbank-Treibers zugänglich ist (vgl. Kapitel über SQL unten).
- Grundbegriffe von OGR
- OGR wurde auf Basis der OpenGIS "Simple Features"-Spezifikation entworfen. Diese definiert im Wesentlichen eine Geodaten-Architektur und ein Geometrie-Typenmodell. Dieses Geometrie-Typenmodell enthält Definitionen über (Feature) Klassen, Datentypen und Methoden. Geometrietypen sind spezielle Datentypen (siehe auch WKT). Ein Feature kapselt ein vollständiges (Geo-)Objekt mit seiner Geometrie und seinen Sachattributen. Eine Feature Class-Definition enthält die Struktur-Informationen (d.h. Felder-Definitionen) einer ganzen Gruppe von Features-Objekten, d.h. ein ganzer Layer. Ein Layer-Objekt ist also eine Sammlung von Feature-Objekten derselben Feature Klasse. Einer Geometrie und damit auch einem Layer (und einer Feature Klasse) ist ein Koordinatensystem zugeordnet. Layers stammen von einer Datenquelle. Eine Datenquelle repräsentiert eine Datei oder eine Datenbank und kann eine oder mehrere Layer enthalten. Man beachte, dass 'layer' und 'feature' (und Objekt) im Wesentlichen identisch sind.
- Hilfe/Community
- Die Dokumentation von OGR geht etwas in GDAL/FWTools unter (Link siehe unten). Wer Hilfe braucht, sollte sich zuerst diese anschauen und kann sich dann an die FWTools-Mailingliste wenden, die sich auch mit OGR befasst und an GDAL/Maptools anlehnt. Hilft das nicht weiter, steht das GISpunkt HSR-Team gerne zur Seite.
- GDAL, FWTools und OSGeo
- OGR wird als Teil GDAL und diese als Teil der FWTools verteilt (Linux und Windows-Version). Immer mehr Open Source-Software (darunter bald auch OGR) wird auch über die OSGeo Binary Distribution verteilt.
- Gibt es weitere Werkzeuge für OGR?
- Ja, z.B. ein grafisch-interaktives Frontend namens ogr2gui (Windows, Opensource) und natürlich die Webapplikation GeoConverter.
Installation OSGeo4W
OGR wird vorwiegend von Programmierern entwickelt, die Linux als Entwicklungsumgebung verwenden. Die Unterstützung von Windows steht daher etwas zurück. OSGeo4W ermöglicht eine einfach Installation auch unter Windows und umfasst eine Reihe von nützlichen Tools. Genau so einfach gestaltet sich die Installation von FWTools (s. nächstes Kapitel), jedoch wird dieses Softwarepaket zurzeit nicht mehr aktualisiert.
Download (Windows):
Installation FWTools
VERALTET!
Download (Windows): FWTools (enthaltend u.a. OGR), direkt: http://home.gdal.org/fwtools/ .
Installation (Windows):
- Schritt 1: FWTools in ein (temporäres) Verzeichnis downloaden und installieren, z.B. in C:\Program Files\FWTools1.3.9
- Schritt 2: Arbeitsverzeichnis anlegen, z.B. C:\work\OGR\
- Schritt 3: setfw.bat von "C:\Program Files\FWTools1.3.9\" hineinkopieren (Alternative: PATH-Environment-Variable ergänzen). Hinweis: setfw.bat enthält einen lokalen Pfad. Das Batchfile muss allenfalls editiert und der Pfad mit Anführungszeichen unklammert werden, wie folgt:
@echo off SET FWTOOLS_DIR=C:\Program Files\FWTools1.3.9 call "%FWTOOLS_DIR%\bin\setfwenv.bat"
- Schritt 4: INTERLIS-Compiler 'ili2c.jar' herunterladen (interlis.ch > "Compiler für INTERLIS 2.3") und ili2c.jar in das Arbeitsverzeichnis kopieren (Java muss installiert sein).
- Abschluss: Test ob Installation bereit ist:
> cd C:\work\OGR\> > setfw.bat > gdalinfo --version GDAL 1.5dev, FWTools 1.3.9, released 2007/10/11
- Jetzt sollte OGR - und die anderen FWTools - bereit sein. Einige Beispiele sind unten angegeben.
Dokumentation
- Original-Websites:
- OGR-Startseite (en)
- GDAL/OGR-Wiki mit Bugtracker
- Mailing list
- Dokumentation der OGR-Werkzeuge und -Tools:
- HowTo OGR2OGR und FAQ OGR
- ogr2ogr-Konverter
- ogrinfo-Tool
- OGR Cheatsheet von Boston GIS
- Spezielle Themen:
- Koordinatenreferenzsysteme CRS/SRS/PRJ
- OGR SQL
Dateiformate
Übersicht
Driver-Name | File-Ext. | R./W. | KRS | Grafik | Beschreibung |
---|---|---|---|---|---|
Interlis 1 | .ITF,.ILI | Reader | n/a. | nein | INTERLIS 1; Datei ili2c.jar zusätzlich installieren (vgl. INTERLIS). In ITF-Datei darf keine Zeile 'TOPI Topic' stehen (mit Editor abändern). In ILI-Datei dürfen Attributnamen nicht res. INTERLIS-Schlüsselwörtersein, z.B. nicht TYPE oder NAME. |
Interlis 1 | .ITF | Writer | ja | nein | INTERLIS 1 (ITF/ILI); schreibt fälschlicherweise noch 'TOPI Topic' ins ITF. |
Interlis 2 | .XML,.ILI | Reader | n/a. | nein | INTERLIS 2; ili2c.jar zusätzlich installieren |
Interlis 2 | .XML,.ILI | Writer | ja | nein | INTERLIS 2; z.Zt. nur beschränkt benutzbar (u.a. wegen ILI Version 2.2!) |
CSV | .CSV,(.vrt,.csvt) | Reader | n/a. | nein | Comma Separated Value (CSV), vgl. auch "WKT" unten, sowie VRT und das Kapitel über "SQL-Queries" unten. |
CSV | .CSV | Writer | nein | nein | Comma Separated Value (CSV). Durch einen SQL-Befehl (-sql "select *,OGR_GEOM_WKT FROM ...") kann auch WKT-Geometrie geschrieben werden. |
ESRI Shapefile | .SHP,.DBF,.shx | Reader | n/a. | nein | Shapefile (SHP) |
ESRI Shapefile | .SHP,.DBF,.shx | Writer | ja | nein | Shapefile (SHP). Falls Quellformat Angaben zum SRS enthält, wird auch eine PRJ-Datei erzeugt. |
GML | .GML | Reader | n/a. | nein | Geographic Markup Language GML v.2.0(!) |
GML | .GML | Writer | ja | nein | Geographic Markup Language GML v.2.0(!) |
GPX | .GPX | Reader | n/a. | (ja) | GPS Exchange Format GPX; ACHTUNG: ab FWTools 2.0.1 auf Windows (expat-Problem) |
GPX | .GPX | Writer | ja | (ja) | GPS Exchange Format GPX; ab FWTools 2.0.1 auf Windows; |
KML | .KML | Writer | nein | ja | Keyhole Markup Language KML. Writer berücksichtig zwar kein SRS transformiert aber autom. nach WGS84. Kein Reader vorhanden. |
MapInfo File | .MIF,.MID | Reader | n/a. | nein | MapInfo Interchange File (MIF), textbasiert mit .MIF (Schema/Geometrie) und .MID (Sachdaten) (siehe auch .TAB, binär). |
MapInfo File | .MIF,.MID | Writer | ja | ja | MapInfo Interchange File (MIF), textbasiert mit .MIF (Schema/Geometrie) und .MID (Sachdaten) (siehe auch .TAB, binär). |
Weitere Dateiformate
Ungeordnete Liste:
- INTERLIS
- Die aktuelle Version 2.3 könnte voraussichtlich im April 2008 bereit sein.
- Well Known Text (WKT)
- Siehe CSV Reader. Wenn ein Feld "WKT" heisst, nimmt der Driver an, dass dieses als WKT formatierte Geometrie enthalten ist.
- XML-Formate:
- XML sind 'streng' definierte ASCII-Formate, die sich u.a. validieren, d.h. automatisch testen lassen. Einige XML-Reader achten z.B. streng darauf, dass wenn UTF-8 angegeben ist, die Datei auch in UTF-8 codiert ist.
- ASCII-Formate:
- DXF/DWG Writer (*) (.dxf/.dwg) - AutoCAD DXF/DWG-Format v.12/13/14/15/18. (*) Writer nur verfügbar, wenn neu mit zusätzlicher Library kompiliert (ACHTUNG: daher z.Zt. nicht in der Windows-Distribution enthalten)
- Hinweis: There's a patch in trac for a - write-only - DXF driver for OGR: http://trac.osgeo.org/gdal/ticket/2555. There's also a previous DXF driver now living in 'spike' (because of licencing reasons), with only writing capabilities too: http://trac.osgeo.org/gdal/browser/spike/dxfdwg
- VRT Reader (VRT, .vrt) - Virtual Datasource; nützlich z.B. für CSV mit Geometrien!
- GeoJSON Reader (GeoJSON, .js) - Textuelles Format => (NEU!)
- Binäre Dateiformate:
- GeoPackage ([1])
- Microstation (DGN)
- PGeo Reader: ESRI Personal GeoDatabase (.mdb) - ESRI Personal GeoDatabase lesen. Dieses Format ist unter Windows z.Zt. nur via ODBC (PGeo) verfügbar. Siehe auch HowTo OGR2OGR sowie MS Access unten.
- Datenbanken:
- PostgreSQL PG:... Reader + Writer (Datenbank) - PostgreSQL
- ODBC:dsn Reader (Datenquelle) - Für die meisten relationalen Datenbanksysteme verfügbar, u.a. MS Access
- MySQL
- ORACLE
OGR-Werkzeuge
ogr2gui
Graphical user interface for ogr2ogr.
- www.ogr2gui.ca Homepage & Download.
- Allows also batch processing.
- Source code as well as the binary executables for Windows and Linux available.
ogr2ogr
Quelle: http://www.gdal.org/ogr2ogr.html
Usage: ogr2ogr [-skipfailures] [-append] [-update] [-f format_name] [-select field_list] [-where restricted_where] [-sql <sql statement>] [--help-general] [-spat xmin ymin xmax ymax] [-preserve_fid] [-fid FID] [-a_srs srs_def] [-t_srs srs_def] [-s_srs srs_def] [[-dsco NAME=VALUE] ...] dst_datasource_name src_datasource_name [-lco NAME=VALUE] [-nln name] [-nlt type] [layer [layer ...]]
Häufig gebrauchte Optionen:
- -skipfailure
- Bei Fehler weiter-konvertieren.
- -f format_name
- Output-Dateiformat-Name. Siehe oben.
- -select field_list
- Comma-delimited list of fields from input layer to copy to the new layer (defaults to all)
- -sql sql_statement
- SQL statement to execute. The resulting table/layer will be saved to the output.
- -where restricted_where
- Attribute query (like SQL WHERE)
- -spat xmin ymin xmax ymax
- spatial query extents (x und y korrespondieren typischerweise zu lon/lat)
- -dsco NAME=VALUE
- Dataset creation option, format-spezifisch (dsco= DataSet Creation Option)
- -lco NAME=VALUE
- Layer creation option, format-spezifisch (lco= Layer Creation Option)
- -nlt type
- Define the geometry type for the created layer (nlt= New Layer Type). One of NONE, GEOMETRY, POINT, LINESTRING, POLYGON, GEOMETRYCOLLECTION, MULTIPOINT, MULTILINE, MULTIPOLYGON or MULTILINESTRING. Add "25D" to the name to get 2.5D versions.
- -nln name
- Neuer Name dem Output Layer geben (nln= New Layer Name)
- -t_srs srs_def
- Reproject/transform to this spatial reference system (SRS, Koordinatensystem) on output (t_srs= Transform SRS)
Seltenere Optionen:
- -append
- Zu bestehendem Layer hinzufügen (Append) anstelle einen neuen zu erzeugen versuchen (falls vom Treiber unterstützt).
- -overwrite
- Output Layer löschen vor dem Schreiben (falls vom Treiber unterstützt).
- -update
- Existierender Output Layer mit Daten ergänzen (Unterschied zu append?).
- -a_srs srs_def
- Assign an output spatial reference system (SRS, Koordinatensystem) (a_srs= Assign SRS).
- -s_srs srs_def
- Override source spatial reference system (SRS, Koordinatensystem) (s_srs= Source SRS)
- -fid fid
- If provided, only the feature with this feature id will be reported (fid= Feature ID). Operates exclusive of the spatial or attribute queries.
ogrinfo
Dokumentation im Web: ogrinfo.
Mit dem ogrinfo-Tool kann man Schema-Informationen über die unterstützten Formate abfragen.
Usage: ogrinfo [--help-general] [-ro] [-q] [-where restricted_where] [-spat xmin ymin xmax ymax] [-fid fid] [-sql statement] [-al] [-so] [--formats] datasource_name [layer [layer ...]]
Wichtige Optionen:
- -ro: Open the data source in read-only mode.
- -so: Summary Only.
- -al: Zeige alle Layers ab (All Layers). Wird durch den Parameter layer überschrieben.
- layer: One or more layer names may be reported.
Zeige alle Attribute eines Shapefile (es gibt nur einen Layer):
> ogrinfo -so -al Bahnhoefe.shp
Zeige alle Attribute einer PostGIS-Datenbank (Layer towns)
> ogrinfo -so -al PG:dbname=gisdb towns
Erzeuge einen Spatial Index (.qix) für Shapefile/OGR:
> ogrinfo -sql "CREATE SPATIAL INDEX ON Bahnhoefe" Bahnhoefe.shp
ERRORs mit Erläuterungen
- ERROR 1: Attempt to write non-polygon (LINESTRING) geometry to type shapefile.
- This error occurs in the shapefile writer if another object appears from an input stream and the geometry types is not the same as in the first object.
OGR mit Python programmieren
Weblinks
- OGR Simple Feature Library Home (=> FWTools): http://www.gdal.org/ogr/