Datenstrukturen und Algorithmen in Open Street Map Modul: Algorithmische Geometire Von: Elisabeth Lehmann 12INB-P Inhalte Was ist OpenStreetMap? Das Konzept Datenstrukturen in OSM 1) 2) 3) a) b) c) d) e) Node Way Relation Tags OSM-Format 4) Algorithmen a) b) c) d) e) f) Allgemeine Vorgehensweise Abstraktionsverfahren DijkstraAlgorithmus/beidseitiger Dijkstra HISP-Algorithmus A*-Algorithmus Contraction Hierarchies 5) Quellen 1) Was ist OpenStreetMap? • ein 2004 gegründetes Projekt einer freien Weltkarte • Sammlung von verschiedenen Daten, welche selbst erhoben werden -> darf lizenzkostenfrei eigesetzt und beliebig weiterverarbeitet werden 2) Das Konzept • • • das Routing (Wegwahlfunktion) steht im Vordergrund optisches darstellen von Straßenattributen Aufgabengebiete für die Funktionalität ◦ ◦ ◦ ◦ geografische Rohdaten Anwendungsprogrammierung Renderer Beispiel: OSMarelmon 3) Datenstrukturen in OSM a) Node • • kleinstes OSM-Objekt bilden Gerüst der OSM-Karte • • • • Bestimmen zum Beispiel Verläufe von Straßen, Umrisse von Grundstücken, Ecken von Häusern repräsentieren GPS-Punkte besitzen ID, Breitengrad und Längengrad, Versionsnummer, Zeitstempel Changeset-ID enthält letztes Bearbeitungsdatum des Knoten (mit dazugehöriger User-ID) b) Way • • • ein Way besteht aus mindestens zwei Knoten verknüpft diese miteinander stellen jegliche Arten von Verbindungen zwischen Punkten her (in Array gespeichert) • • • • zum Beispiel Uferverläufe oder Straßen mit gleichem Knoten als Start-und Endpunkt entstehen Flächen gleiche Metatags wie Nodes (ohne Breiten-und Längengrad) einzelnen Knoten als Referenztags eingebunden <way id="9714974" version="16" timestamp="2012-06-28T23:41:09Z" changeset ="122312034" uid="1999074" user="perihel"> <nd ref="304335953"/> <nd ref="1563547869"/ > <nd ref="1396523373"/ > <nd ref="13878099"/> </way> c) Relation • • größter und umfassendster Datentyp in OSM erfassen komplexer und abstrakter Formen • • Zum Beispiel Abbiegevorschriften Buslinien besitzt Referenzen (Member genannt)auf Konten, Wege und andere Relationen <relation id="1239081" version="2" timestamp="201206-28T20:41:04Z" changeset ="122312034" uid="1999074" user="perihel"> <member type="node" ref="867397262„ role="stop"/> <member type="node" ref="213127" role="platform"/> <member type="way" ref="19012912" role=""/> <member type="relation" ref="09278124" role=""/> </relation> d) Tags • • • Datenstrukturen bieten Metatags und vom Benutzer frei handhabbare Tags vor dem Endtag wird Benutzer die Möglichkeit geboten, selbst definierte Tags einzufügen bestehen aus key-value-Paaren • (wobei key angibt, was Relation beschreibt) <tag k="maxspeed:winter" v="60"> e) OSM-Format • • • Speicherung sämtlicher Daten in OSM XML Minimal-und Maximalfunktionen können verwendet werden Reihenfolge der Objekte: • • • • • Knoten Wege Relationen, deren Referenzen und Tags einfach lesbar, systemunabhängig, nur Parser muss vorhanden sein durch Größe der Dateien Kompression nötig • zum Beispiel planet.osm mit 370GB unkomprimiert (Stand 2013) 4) Algorithmen • viele verschiedene Algorithmen, da unterschiedliche Funktionen angefragt werden • Hauptteil bildet die Routen-Planung • jedoch auch im Bereich der Geschwindigkeitsmessung oder von Höhenunterschieden a) allgemeines Vorgehen sammeln der Attribute zu jedem OSM-Objekt Speichern der Koordinaten des Knoten Knoten beim Einlesen des Weges gespeichert Bestimmen des geeignet Weges 1. 2. 3. 4. I. II. III. ungeeignete Wege verwerfen zulässige Richtung und Geschwindigkeit bestimmen Weg bestimmen b) Abstraktionsverfahren • graphen-ähnliche Darstellung bestehend aus Segment-Node (analog Knoten), Segment (gerichtete Verbindungen), Restriction (nicht nutzbare Verbindungen) Segment-Nodes und Segments können jedoch nicht einfach als Knoten bzw. Kanten des Graphen verwendet werden -> Restrictions müssen berücksichtigt werden • c) Dijkstra-Algorithmus (1959) • • Bestimmung des kürzesten Weges unter Berücksichtigung des Kantengewichts (zum Beispiel der benötigten Zeit) Problem bei der Rouenplanung: die kürzeste Strecke ist nicht unbedingt die schnellste ->mehrere Attribute pro Kante eingefügt (Entfernung [km], sondern auch Zeit [min]) • • О(E + V *log(V)) • V=Knotenmenge, E=Kantenmenge Textmasterformat bearbeiten ◦ Zweite Ebene ◦ Dritte Ebene Vierte Ebene Fünfte Ebene d) HISP-Heuristik • Hierarchical shortest path • sucht kürzesten Weg von zwei endknoten zu Knoten der obersten Hierarchieebene im Umkreis mit gegebenen Radius • Zum Beispiel von Stadt zu Autobahnkreuz e) A*-Algorithmus Finde den kürzesten von Arad nach Buadpest f) Contraction Hierarchies • • • • Routing-Algorithmus derzeitige Grundlage für mobile Navigation bei westeuropäischen Straßennetz etwa 20.000mal schneller als Dijkstra Suchanfragen in unter 1ms beantwortet wenn nur Distanz und nicht Route abgefragt wird, verbraucht sogar Datenstruktur weniger Speicherplatz Quellen http://www.fim.unipassau.de/fileadmin/files/lehrstuhl/sauer/geyer/BA_Sebastian Brunner_-201308.pdf ftp://ftp.informatik.unistuttgart.de/pub/library/medoc.ustuttgart_fi/DIP-3232/DIP3232.pdf http://tobias-knerr.de/bachelorarbeit/Bachelorarbeit.pdf http://cvpr.uni-muenster.de/teaching/ws05/kiWS05/script/KIKap04-2.pdf http://www.openstreetmap.de/faq.html#was_ist_osm