[OSM-Devserver] o5m - ein unglaubliches Dateiformat (langer Text)

Tobias Wendorff tobias.wendorff at tu-dortmund.de
Fr Jun 24 22:26:06 CEST 2011


Hallöchen,

einige von Euch wissen sicher bereits, dass Markus Weber ein neues
Dateiformat entwickelt: o5m (für osm-Daten) und o5c (für Diffs): [1]
Das Format ist einfach nur genial, lest es Euch durch. Ich habe seit
einigen Tagen auf meinen Systemen Tests durchgeführt und bin echt
hin-und-weg.

Parallel dazu hat er einige Tools entwickelt, wie z.B. [2], welches
PBF-Dateien ohne die Google-Library in unglaublicher Geschwindigkeit
verarbeiten kann.

Sein neues Tool Osmconvert [3] löst einige alte Tools ab und kann
z.B. Diffs auf PBF, OSM und O5M-Dateien einspielen. Aber jetzt kommt
der Hammer: die Dateien sind nicht nur kleiner, sondern die Updates
laufen auch in einer unglaublichen Geschwindigkeit durch!

europe.osm.pbf kann im o5m-Format in nur 8 Minuten auf den aktuellen
Stand (17 Hourly-Diffs) gebracht werden! NRW war in 38 Sekunden durch.
Achtung: Diese Zeit betrifft Umwandlung UND Update in einem! Wenn die
Datei schon umgewandelt ist, fluppt das Update unmerklich durch :-)

Ich habe mal kurz den Planet mit den letzten 20 Stunden Diffs
durchlaufen lassen. Ergebnis: 13 Minuten, 52 Sekunden.
MIT Umwandlung und MIT Diff-Update!

Ich glaube, die täglichen Uploads von Frederi sind somit
überflüssig. Das Zuschneiden anhand der POLY-Files funktioniert
nämlich auch in wenigsten Sekunden.

Und Markus hat noch ein Tool geschrieben: o5mfilter [4]. Dieses
Tool löst sämtliche POI-Fragen, die wir mit Datenbanken lösen
wollten, auf Dateiebene. Meine Bus-Routen oder Sven's Abfragen
zur ClubMate laufen so unglaublich schnell durch:

./osmfilter nrw.o5m --keep="drink:club-mate=retail" - 5.6 Sek.
./osmfilter nrw.osm --keep="drink:club-mate=retail" - > 5 Min.

Man kann mit allen Tools auch User, Changeset usw. rauswerfen,
wodurch die Dateien von den folgenden Tools deutlich schneller
verarbeitet werden. "version" kann zum Aktualisieren jedoch
behalten werden - ich bin ehrlich begeistert.

In ca. einer Woche, nach der ersten Klausur, werde ich versuchen,
eine Import-Routine für osm2pgsql zu schreiben. Aber auch das
Piping von osmconvert verläuft deutlich schneller, als PBF. Des
Weiteren habe ich einen Ansatz für ein neues Download-Tool, bald
mehr dazu.

Probiert das Format aus! @Sven: Folgende Optimierung ist
optimal für den Devserver (-lz) -march=k8 -O3 -pipe

LG
Tobias

Fußnoten:
[1] http://wiki.openstreetmap.org/wiki/O5m
[2] http://wiki.openstreetmap.org/wiki/Pbftoosm
[3] http://wiki.openstreetmap.org/wiki/Osmconvert
[4] http://wiki.openstreetmap.org/wiki/O5mfilter