FlatMap - ein Dateiformat für OSM Daten

Thomas Hulka

Playlists: 'fossgis2022' videos starting here / audio

FlatMap ist ein einfaches, kompaktes Dateiformat für OpenStreetMap Daten, das direkten Zugriff auf die OSM Elemente per ID erlaubt (random access). Das ermöglicht Analyse und Verarbeitung von OSM Daten ohne Datenbank. Nach Erläuterung des Formats werden OSM Daten mit FlatMap und der modernen Programmiersprache F# verarbeitet.

FlatMap erlaubt die direkte Verarbeitung von OSM Daten, Datenanalysen und Software werden dadurch einfacher und ressourcenschonender. Es wird praktisch gezeigt, wie mit einer FlatMap Datei und einer einfachen Zugriffsbibliothek die OSM Daten verarbeitet werden können. Dazu wird die moderne Programmiersprache F# verwendet.

Für die kompaktere und effizientere Datenspeicherung werden die Node-Referenzen in Ways aufgelöst. Dies resoniert mit aktuellen Überlegungen zum OSM Datenmodell, wobei dieses hier unverändert bleibt und die Node-Ids in den Ways erhalten bleiben. Eine FlatMap Datei ist daher vollständig.

Sowohl die „planet“ Datei, als auch Extrakte sind kompakt, wobei die Komprimierung mit der Dateigröße zunimmt. Die Kompaktheit ergibt sich aus Datenstruktur (btree) und Codierung (varint, delta, offset). Eine interne byteorientierte generelle Komprimierung, wie sie bei pbf Dateien praktiziert wird, erfolgt nicht. Diese wird auf die gesamte Datei angewandt, etwa für den Dateitransfer. Da eine komprimierte FlatMap Datei so groß wie eine pbf Datei ist, ist FlatMap auch Alternative für die Datenübertragung.

Der Verzicht auf Protocol Buffers, FlatBuffers, Cap’nProto und ähnliche vereinfacht die Implementierung von Zugriffsbibliotheken und erhöht deren Performanz.

Das Format befindet sich in der finalen Entwurfsphase, Feedback ist willkommen. Offen ist etwa die Notwendigkeit von Metadaten, die zurzeit nicht enthalten sind.

https://github.com/snuup/flatmap
https://github.com/snuup/openstreetmap-with-fsharp

Download

Embed

Share:

Tags