OGR
OGR Simple Feature Library:
OGR 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 ist Teil der GDAL-Rasterformate-Bibliothek, die wiederum in den FWTools (C++ Open Source-Programme von Frank Warmerdam) zusammengefasst sind und typischerweise über die Kommandozeile gesteuert werden.
Zum HowTo OGR2OGR
Siehe auch:
Inhaltsverzeichnis
- 1 Über OGR
- 2 Installation FWTools (OGR)
- 3 Dokumentation
- 4 Dateiformate
- 5 Das Werkzeug ogr2ogr
- 6 Das Werkzeug ogrinfo
- 7 Koordinatensystem-Transformation (ogr2ogr-Option SRS)
- 8 Räumlicher Ausschnitt (ogr2ogr-Option spat)
- 9 SQL-Queries (ogrinfo/ogr2ogr-Option SQL)
- 10 OGR2OGR-Optionen Split- und Skipfailures
- 11 ogr2ogr-Konfiguration mit VRT-Datei
- 12 Styles (Grafikmodell)
- 13 Weblinks
Über OGR
- OGR2OGR
- 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, Personal Geodatabase) werden direkt weitergeleitet, so dass die ganze Funktionalität des beteiligten Datenbank-Treibers zugänglich ist.
- 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, 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.
Installation FWTools (OGR)
OGR wird vorwiegend von Programmierern entwickelt, die Linux als Entwicklungsumgebung verwenden. Die Unterstützung von Windows steht daher etwas zurück. Wir helfen gerne bei Fragen.
Installation unter 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:
- 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) | Reader | n/a. | nein | Comma Separated Value (vgl. auch VRT und die OGR SQL unten) |
CSV | .CSV,(.vrt) | Writer | nein | nein | Comma Separated Value (vgl. auch VRT und die OGR SQL unten) |
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). |
Informationen zu weiteren Dateiformaten (alphabetisch):
- 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)
- 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:
- Microstation (DGN)
- Datenbanken:
- PostgreSQL PG:... Reader + Writer (Datenbank) - PostgreSQL
- ODBC:dsn Reader (Datenquelle) - Für die meisten relationalen Datenbanksysteme verfügbar, u.a. MS Access (.mdb)
- MDB (PGeo) Reader (.mdb) - Personal Geodatabase (PGEo) lesen. Dieses Format ist unter Windows z.Zt. nicht verfügbar (ausser via ODBC).
- MySQL
- ORACLE
Das Werkzeug ogr2ogr
Quelle: http://www.gdal.org/ogr/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 ...]]
Optionen:
- -f format_name
- Output-Dateiformat-Name. Siehe oben.
- -append
- Zu bestehendem Laer hinzufügen (Append) anstelle einen neuen zu erzeigen versuchen.
- -overwrite
- Output Layer löschen vor dem Schreiben (falls vom Treiber unterstützt).
- -update
- Existierender Output Layer mit Daten ergänzen (Unterschied zu append?).
- -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-spezifisc (lco= Layer Creation Option)
- -nln name
- Neuer Name dem Output Layer geben (nln= New Layer Name)
- -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.
- -a_srs srs_def
- Assign an output spatial reference system (SRS, Koordiantensystem) (a_srs= Assign SRS).
- -t_srs srs_def
- Reproject/transform to this spatial reference system (SRS, Koordiantensystem) on output (t_srs= Transform SRS)
- -s_srs srs_def
- Override source spatial reference system (SRS, Koordiantensystem) (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.
Das Werkzeug ogrinfo
Mit dem ogrinfo-Tool kann man Schema-Informationen über die unterstützten Formate abfragen.
Optionen:
- -so Summary Only
- -al All Layers
Zeige alle Attribute:
> ogrinfo -so -al Bahnhoefe.shp
Erzeuge Spatial Index (.qix):
> ogrinfo -sql "CREATE SPATIAL INDEX ON Bahnhoefe" Bahnhoefe.shp
Koordinatensystem-Transformation (ogr2ogr-Option SRS)
Beispiel CH1903 nach WGS84
Transformiere Shapefile, das im Koordinatensystem CH1903 vorliegt nach WGS84:
> ogr2ogr out Bahnhoefe.shp -t_srs EPSG:4326
Erläuterungen:
- EPSG:4326 steht für WGS84, also GPS-Koordinaten
- Eine Liste aller EPSG-Codes befindet sich in der Datei gcs.csv im data-Verzeichnis der FWToos (z.B. ).
- EPSG
- PRJ
SRS-Option als URL
"GDAl 1.5 release allows you to import a spatial reference definition from a URL. It’s expected that you might use http://spatialreference.org URLs, but any old URL will do. For example, this command will reproject the world_borders shapefile to an Albers projection that a user contributed that focuses on the Northern Pacific:"
Dasselbe Beispiel wie oben, nun aber mit einer URL:
> ogr2ogr out Bahnhoefe.shp -t_srs http://spatialreference.org/ref/epsg/4326/
Erläuterungen:
- Liste von EPSG-Codes (bzw. URLs) siehe http://spatialreference.org
Räumlicher Ausschnitt (ogr2ogr-Option spat)
Über die spat-Option kann eine BBox angegeben als "xmin ymin xmax ymax" (hier: Region Zürich):
> ogr2ogr -spat 8.38 47.81 8.83 47.30 -f KML output.kml input.shp
SQL-Queries (ogrinfo/ogr2ogr-Option SQL)
Zeige alle Bahnhöfe mit Namen Rapperswil (falls es mehrere gibt...):
> ogrinfo -al -ro out.shp -sql "SELECT * from out WHERE name='Rapperswil'"
Konvertiere nur die Bahnhöfe mit Namen 'Rapperswil' (falls es mehrere gibt...):
> ogr2ogr Bahnhoefe_Rapperswil.shp Bahnhoefe.shp -sql "SELECT * from bahnhoefe WHERE name='Rapperswil'"
OGR2OGR-Optionen Split- und Skipfailures
To split a DGN file into shapefiles with distinct geometry types try:
> ogr2ogr -skipfailures -nlt point out\demo_point.shp demo.dgn > ogr2ogr -skipfailures -nlt linestring out\demo_line.shp demo.dgn > ogr2ogr -skipfailures -nlt polygon out\demo_poly.shp demo.dgn
You will see lots of error messages which you can ignore.
ogr2ogr-Konfiguration mit VRT-Datei
Die VRT-Datei ist eine Konfigurationsdatei im XML-Format, um andere Driver zu konfigurieren. VRT wird hauptsächlich in folgenden Fällen eingesetzt:
- derive spatial layers from flat tables with spatial information in attribute columns.
- to associate coordinate system information with a datasource
- merge layers from different datasources into a single data source
- just to provide an anchor file for access to non-file oriented datasources.
Siehe:
- VRT
- CSV-Format in HowTo OGR2OGR
Styles (Grafikmodell)
Styles werden soweit wie möglich beim Konvertieren (translating) zwischen Formaten beibehalten.
Anwendungen von Styles:
- Zurzeit sind es nur die Formate MIF/TAB und DGN, die Styles unterstützen.
- UMN MapServer und das 'OpenEV' machen Gebrauch davon.
- Zukunft:
- Der KML-Driver wäre ein Kandidat, unterstützt aber leider noch keine.
- Eine Erweiterung des VRT-Formats (siehe oben) wäre naheliegend und könnte relativ einfach realisiert werden.
Dokumentation:
- OGR-Feature Style Specification draft V0.010 - 2006/09/23
Was sind die Gemeinsamkeiten und Unterschiede von SLD und Mapfile (UMN MapServer)?
The concept of assigning rendering rules to geometries is shared in both cases but that's about it. The terminology (pen/brush/etc vs SLD symbolizers) and encoding (compact text strings vs verbose XML) are completely different. SLD also supports building up classifications using filter encoding which is not part of the OGR style concept. Why did OGR invent its own encoding instead of reusing SLD? Mostly because the OGR style encoding predates the days when SLD became well known. But even if we were to do this again today I'm not sure if we would opt for a verbose XML encoding... we'd probably spend a lot of time debating the performance issues vs the benefits of interoperability with SLD.
Beispiele:
- (noch keine verfügbar)
Weblinks
- OGR Simple Feature Library Home (=> FWTools): http://www.gdal.org/ogr/