Shape file export mit osmlib

From OpenStreetMap Wiki
Jump to: navigation, search

Nachdem Shape-Files in der GIS-Welt von Windows einen Quasi-Standard darstellen, wird hier die Erzeugung von Shape Files aus OSM-Daten unter Windows beschrieben. Eine Anleitung für Ubuntu Linux siehe Convert_osm2shp_using_OSMLibrary_on_Ubuntu (in Englisch). Für den Export wird die OSM Library oder kurz "osmlib" von Jochen Topf verwendet.

Installation Ruby

Zuerst braucht man Ruby. Für Windows am einfachsten über die Download-Seite von Ruby.org zu beziehen. Netterweise gibt es einen "One-Click-Installer" für Windows. Nachdem man also das Installationspaket heruntergeladen hat, führt man die Datei aus - es folgt eine gewöhnliche Windows-Installationsroutine.

Installation OSMLib

Nun öffnet man ein DOS-Fenster und begibt sich in den Ordner

C:\Programme\ruby\bin

um mittels des Tools gem die Installation der osmlib vorzunehmen. Gem ist der "Paketmanager" von Ruby, mit dem sich sehr einfach fehlende Pakete, Libraries etc (im Ruby-Speak also "Gems") nachinstallieren lassen.

Als erstes wird osmlib-base installiert:

C:\Programme\ruby\bin>gem install osmlib-base
Bulk updating Gem source index for: http://gems.rubyforge.org 
Successfully installed osmlib-base-0.1.4
Installing ri documentation for osmlib-base-0.1.4...
Installing RDoc documentation for osmlib-base-0.1.4...


Nun folgt osmlib-export:

C:\Programme\ruby\bin>gem install osmlib-export
Successfully installed osmlib-export-0.1.4
Installing ri documentation for osmlib-export-0.1.4...
Installing RDoc documentation for osmlib-export-0.1.4...

... und zusätzlich die Bibliothek "GeoRuby":

C:\Programme\ruby\bin>gem install GeoRuby
Successfully installed GeoRuby-1.3.4
Installing ri documentation for GeoRuby-1.3.4...
Installing RDoc documentation for GeoRuby-1.3.4...

Nun ist prinzipiell schon alles fertig, aber:

Osmlib kann verschiedene XML-Parser verwenden. Voreingestellt ist REXML, der mit Ruby mitgeliefert wird. LibXML ist allerdings wesentlich schneller (bei meinen Tests ~ 5x). Deshalb empfiehlt sich noch die Installation der LibXML. Diese Library kann man sich nicht mittels gem installieren, sonder man holt sich ein vorkompiliertes Paket von Moves on Rails - ein ZIP-File mit dem Inhalt:

libxmlrelease\bin\libiconv-2.dll
libxmlrelease\bin\libxml2-2.dll 
libxmlrelease\lib\ruby\site_ruby\1.8\i386-msvcrt\xml\libxml_so.so
libxmlrelease\lib\ruby\site_ruby\1.8\xml\libxml.rb

(insgesamt also 4 Dateien). Diese werden in die passenden Verzeichnisse kopiert - das Verzeichnis "libxmlrelease" wird duch das root-Verzeichnis der Ruby-Installation ersetzt ("C:\Programme\ruby\"), also

libiconv-2.dll -> C:\Programme\ruby\bin usw.

Welcher Parser von osmlib benutzt wird, entscheidet der Inhalt der Umgebungsvariable

OSMLIB_XML_PARSER

Man erzeugt also mittels

set OSMLIB_XML_PARSER=Libxml

im DOS-Fenster diese Variable - und startet neu, damit die Variable wirksam wird. Alternativ kann man die Variable natürlich auch über

Start -> Einstellungen -> Systemsteuerung -> System -> Reiter "Erweitert"

und den Button "Umgebungsvariablen" erzeugen. Einfach eine neue Benutzervariable mit dem Namem "OSMLIB_XML_PARSER " und Wert "Libxml" erzeugen. Damit ist die Installation auch schon abgeschlossen.

Arbeiten mit osmlib-export

Dreh- und Angelpunkt ist das Skript

osmexport

das in

C:\Programme\ruby\lib\ruby\gems\1.8\gems\osmlib-export-0.1.3\bin>

zu finden ist. Grundsätzlich arbeitet der Shape-File-Export immer nach dem Schema

osmexport RULEFILE.oxr OSMFILE.osm OUTDIR

Man braucht für die ersten Versuche also:

weitere Infos unter http://wiki.openstreetmap.org/wiki/DE:Datenexport_mit_OSMExport

Personal tools
Namespaces
Variants
Actions
site
Toolbox