Shape file export mit osmlib
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:
- ein .osm-File. Am besten ein nicht zu großes, da das Parsen der XML-Files doch ein bisschen zeitaufwendig sein kann.
- einen Outputordner. Ein Shape file besteht ja immer aus mehreren Dateien, die dann im OUTDIR erzeugt werden.
weitere Infos unter http://wiki.openstreetmap.org/wiki/DE:Datenexport_mit_OSMExport