Datenstrukturen und Algorithmen in Open Street Map

Werbung
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
Herunterladen