Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten

Transcrição

Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
Verkehrsflussvorhersage
und Stauanalyse aufgrund
von Messdaten
Seminar Datenbanksysteme
Master of Science in Engineering
Vertiefungsrichtung Software and Systems
HSR Hochschule für Technik Rapperswil
www.hsr.ch/mse
Betreuer: Prof. Stefan Keller
Autor: Simon Gubler
Rapperswil, Dezember 2011
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
2
Inhaltsverzeichnis
1
Abstract ........................................................................................................................................... 4
2
Keywords ......................................................................................................................................... 4
3
Ausgangslage ................................................................................................................................... 4
4
Problemstellung .............................................................................................................................. 5
5
Aufbau der Arbeit ............................................................................................................................ 7
6
Begriffs-Erklärungen ........................................................................................................................ 7
6.1
Verkehrsarten .......................................................................................................................... 7
6.1.1
Öffentlicher und Privat-Verkehr ...................................................................................... 7
6.1.2
Ortsbezogene Gruppierung ............................................................................................. 7
6.2
Verkehrsfluss / Verkehrsstärke ............................................................................................... 8
6.3
Verkehrsdichte ........................................................................................................................ 8
6.4
Kapazität einer Strasse ............................................................................................................ 8
6.5
Verkehrszustände .................................................................................................................... 8
7
6.5.1
Stockender Verkehr ......................................................................................................... 8
6.5.2
Gestauter Verkehr ........................................................................................................... 8
6.5.3
Stehender Verkehr .......................................................................................................... 8
Fundamentaldiagramm ................................................................................................................... 9
7.1
Formel...................................................................................................................................... 9
7.2
Diagramme und Interpretationen ........................................................................................... 9
8
7.2.1
Fundamentaldiagramm ................................................................................................... 9
7.2.2
q-k–Diagramm ............................................................................................................... 10
Vorgehen ....................................................................................................................................... 12
8.1
Übersicht durchgeführte Schritte.......................................................................................... 12
8.2
Verkehrsmessdaten einlesen in PostgreSQL ......................................................................... 12
8.3
Flussvorhersage ..................................................................................................................... 13
8.3.1
Ansatz 1: Eigene Implementation ................................................................................. 13
8.3.2
Exkurs Window Funktionen in SQL................................................................................ 16
8.3.3
Ansatz 2: MS Excel mit Datamining Add-In ................................................................... 20
8.4
9
Stau-Analyse .......................................................................................................................... 20
8.4.1
Ansatz 1: Analyse nur mit Flussdaten............................................................................ 20
8.4.2
Ansatz 2: Analyse mit zusätzlichen Daten ..................................................................... 22
Fazit ............................................................................................................................................... 23
10
Ausblick...................................................................................................................................... 23
11
Abbildungsverzeichnis ............................................................................................................... 24
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
3
12
Literaturverzeichnis ................................................................................................................... 25
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
4
1 Abstract
Zürich ist stetig am Wachsen und hat schon jetzt ein hohes Verkehrsaufkommen. Deshalb ist es
wichtig dass der Verkehr kontrolliert und soweit möglich gesteuert werden kann. Ich hoffe dass diese
Arbeit hilft ein Verständnis der Verkehrstheorie zu vermitteln und dass die Ergebnisse helfen, in
Zukunft den Verkehr besser vorherzusagen und Stau besser zu erkennen.
Die Arbeit umfasst eine Einführung in die Verkehrstheorie, eine Analyse der Verkehrsflussdaten der
Stadt Zürich sowie einen Performance-Vergleich von verschiedenen Forecast-Algorithmen, die den
Verkehrsfluss bis zu einem Jahr in der Zukunft voraussagen.
Ich habe im Laufe der Arbeit viel gelernt und konnte mein Wissen aus der Informatik praktisch
anwenden was mir sehr gefallen hat. Zwar hat sich meine Hoffnung nicht ganz erfüllt dass nur mit
Flussdaten ein Stau erkannt werden kann aber wenn zumindest für einige Messpunkte die Dichte
oder die Geschwindigkeit gemessen werden kann könnte eine Aussage über den Verkehrszustand
während der gemessenen Zeit gemacht werden.
Interessant fand ich auch ein Regelsystem selber zu implementieren mit dem der Verkehrsfluss
vorausgesagt und validiert werden kann. Spannend fand ich dass eine der einfachsten Regeln die
besten Resultate lieferte und dass der mit-einberechnete Anstieg der letzten Jahre das Resultat bei
einigen Regeln eher verschlechterte.
Im Laufe der Arbeit habe ich viel Rat und Hilfe erhalten. Besonders bedanken möchte ich mich bei
Herrn Bernhard von der Dienstabteilung Verkehr der Stadt Zürich für seine Hilfe mir die Daten zu
schicken und für seine Zeit sowie Herrn Müller vom Mobilitätsinstitut für seine Ratschläge. Ebenfalls
möchte ich Prof. Stefan Keller danken für die Betreuung der Arbeit.
2 Keywords
Fundamentaldiagramm, Verkehrsanalyse, Data Mining, Data prediction, Kreuzvalidierung, SQL
Windowing Funktionen
3 Ausgangslage
Von der Dienstabteilung Verkehr der Stadt Zürich wurden der Fachhochschule Rapperswil VerkehrsZähldaten zur Analyse zugesendet. Die Daten umfassen den Zeitraum vom Jahr 2000 bis 2011. Sie
enthalten die stündlichen Zähldaten von ca. 150 Messstationen die an insgesamt 111 Standorten in
der Stadt Zürich und Umgebung installiert sind. Die Messpunkte sind an den Verkehrsknoten
installiert, zum Beispiel am Limmatquai, der Hardbrücke, am Milchbucktunnel, oder auf der
Autobahn A1 und A3.
Die Daten wurden mit Hilfe von doppelten Induktionsschleifen (Induktionsschleife, 2012) erfasst die
in der Strasse eingebaut sind. Sobald ein Auto über die Induktionsschleife fährt wird es gezählt. Mit
den Induktionsschleifen in der Stadt Zürich kann aber die Geschwindkeit der Autos nicht gemessen
werden. Dies ist nur bei Autobahnen möglich.
Das Format der Daten ist folgendermassen: der oberste Ordner enthält für jedes Jahr einen Ordner.
Jeder Jahr-Ordner hat für jeden Messpunkt eine Textdatei. Diese Textdatei enthält für jede Stunde im
Jahr die Messung im folgenden Format:
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
5
Z074/M002 K365 Stauffacherquai (Tamedia)
01.01.2010 01:00,175
01.01.2010 02:00,400
01.01.2010 03:00,240
…
31.12.2010 23:00,241
01.01.2011 00:00,246
Abbildung 1: Beispiel-Dateiauszug
Die erste Zeile enthält den Datei-Titel, dann folgt für jede Stunde eine Zeile mit der Zeitangabe und
mit Komma getrennt die Anzahl Autos die von der vorherigen Stunde bis zur aktuellen Stunde
vorbeigefahren sind.
Eine andere Startzeile ist
Z078/M001 K32 Birmensdorferstrasse auswaerts
oder
Z078/M002 K32 Birmensdorferstrasse einwaerts
Abbildung 2: Header-Zeilen mit Richtung
Hier zeigt „einwaerts“ bzw. „auswaerts“ an, in welche Richtung gemessen wurde. Die eine Richtung
hat dann M001 als Kennzeichen, die andere Richtung M002.
4 Problemstellung
Ziel der Arbeit ist es, für einen Zeitpunkt in der Zukunft und einen bestimmten Punkt in und um
Zürich eine Stauaussage treffen zu können. Die Ergebnisse der Arbeit sollen von der
Tourenplanungs-Website www.tourpl.ch genutzt werden können um die Reisezeit genauer zu
schätzen.
Das Vorbild ist dabei Google, die mit anonymisierten Daten von Smartphones die Verkehrslage
erfassen, wie hier beschrieben wird: (Cashys Blog)
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
6
Abbildung 3: Google Verkehrslage Anzeige
Mit Google kann auch die Verkehrslage bis zu einer Woche vorhergesagt werden
Abbildung 4: Google Verkehrslage Forecast
Grundsätzlich gibt es zwei Fragestellungen die die Arbeit beantworten soll:
•
•
Wie ist der Verkehrsfluss in einem Zeitpunkt in der Zukunft an einem bestimmten Ort?
Wie kann eine Stauaussage getroffen werden?
Für die zweite Fragestellung gibt es eine konzeptionelle Einschränkung: Wie im Kapitel 7 aufgezeigt
wird werden für eine Stau-Aussage zwei der drei Parameter Fluss, Dichte und Geschwindigkeit
benötigt. Es stehen aber nur die Fluss-Daten zur Verfügung.
Für die Aufgabenstellung stellen sich damit zwei zusätzliche Fragen:
•
•
Kann überhaupt nur aufgrund der Flussdaten eine Aussage über den Stauzustand getroffen
werden?
Wie könnte eine Aussage über den Stauzustand getroffen werden wenn zusätzlich zum Fluss
einer der Parameter verfügbar wäre?
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
7
5 Aufbau der Arbeit
Zuerst wird die Verkehrs-Theorie und das Fundamentaldiagramm vorgestellt, dann wird in Kapitel 8
beschrieben wie die Daten eingelesen und analysiert wurden um die Fragestellungen zu
beantworten. Danach wird ein Ausblick präsentiert.
6 Begriffs-Erklärungen
Die Begriffs-Erklärungen wurden den Papers (Kühne, 2004), (Schäfer, 2011) sowie (Wu, 2000)
entnommen.
6.1
Verkehrsarten
In einem vorgegebenen Gebiet können verschiedene Verkehrsarten existieren. Für die
Verkehrsplanung wird der Verkehr in Gruppen eingeteilt.
Es gibt zwei Gruppierungsmöglichkeiten: Öffentlicher/Privat- Verkehr sowie ortsbezogene
Gruppierung
6.1.1 Öffentlicher und Privat-Verkehr
Öffentlicher Verkehr bezeichnet allen Verkehr mit öffentlichen Verkehrsmitteln, sowohl
schienengebunden als auch öffentlicher Verkehr auf Strassen.
Privater Verkehr bezeichnet allen Verkehr der durch Privatfahrzeuge entsteht. Dazu zählen neben
dem normalen Kfz-Verkehr auch der (motorisierte) Zweirad- und Fußgängerverkehr. Unterteilt wird
der Individualverkehr in Personen- und Güterbeförderung.
6.1.2 Ortsbezogene Gruppierung
Die ortsbezogene Gruppierung unterscheidet wo der Verkehr startet und wo er endet.
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
8
Verkehr der die Zelle
durchfährt ohne anzuhalten
Verkehr der die Zelle
durchfährt aber
zwischendurch stoppt (zB.
für eine Ruhepause)
Verkehr der in der Zelle startet
/stoppt
Verkehr der in der Zelle startet
und stoppt
Abbildung 5: Ortsbezogene Verkehrsarten
6.2
Verkehrsfluss / Verkehrsstärke
Das Wort Verkehrsfluss bzw. Verkehrsstärke entspricht der Anzahl Autos die einen bestimmten
Strassenabschnitt in einer Zeiteinheit überqueren. Er wird in Formeln mit Q oder q bezeichnet.
Das Wort Verkehrsfluss kann auch für den allgemeinen Verkehr stehen.
6.3
Verkehrsdichte
Die Verkehrsdichte bezeichnet die Anzahl Autos oder andere Fahrzeuge die sich zu einem
bestimmten Zeitpunkt auf einem bestimmten Strassenabschnitt befinden. Ihr Formelzeichen ist das D
oder K bzw. k.
6.4
Kapazität einer Strasse
Die Kapazität einer Strasse entspricht dem maximalen Fluss in einem bestimmten Strassenabschnitt
während einer Zeiteinheit.
6.5
Verkehrszustände
6.5.1 Stockender Verkehr
Stockender Verkehr hat eine niedrige, extrem schwankende Geschwindigkeit bei hohem Fluss
6.5.2 Gestauter Verkehr
Gestauter Verkehr hat eine niedrige Geschwindigkeit und einen niedrigen Fluss
6.5.3 Stehender Verkehr
Stehender Verkehr hat fast keine Geschwindigkeit und fast keinen Fluss
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
9
7 Fundamentaldiagramm
7.1
Formel
Die Formel die als Grundlage für das Fundamentaldiagramm dient lautet:
D∗V
Abbildung 6: Fundamental-Formel
) ist also bestimmt durch die Dichte mal die Geschwindigkeit. Da die
Mass
und die Geschwindigkeit das Mass
hat stimmen die Masseinheiten.
Der Fluss (
7.2
Dichte das
Diagramme und Interpretationen
7.2.1 Fundamentaldiagramm
Das Fundamentaldiagramm beschreibt die Verhältnisse der drei Werte
Verkehrsfluss q
Verkehrsdichte k
mittlere Geschwindigkeit v
Es besteht aus drei zweidimensionaler Diagrammen, die die drei Parameter kombinieren: das q-vDiagramm, das q-k-Diagramm und das k-v-Diagramm.
Abbildung 7: Fundamentaldiagramm (Kühne, 2004)
Links unten ist die Formel q=v*k aufgeführt allerdings mit statt v. steht für die
momentane Geschwindigkeit.
steht für die Geschwindigkeit die der freie Verkehr hat, dh. wenn keine Autos auf der Strasse
stehen. und entsprechen der optimalen Geschwindigkeit und der optimalen Dichte um
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
10
, also den maximal möglichen Fluss auf dieser Strecke zu erreichen. Im q-v-Diagramm ist eine
Parabel zu sehen. Der maximale Fluss ist dort nur mit der optimalen Geschwindigkeit möglich ist. Im
q-k-Diagramm ist zu sehen dass die Dichte bis zur optimalen Dichte zunimmt, doch dann ab einer
höheren Dichte behindern sich die Autos zu stark und der Fluss nimmt ab.
Im Diagramm wurde eine mehrspurige Fahrbahn gemessen beträgt dort etwa 80-90
.
Deutlich ist der dunkelgraue Bereich vom hellgrauen unterscheidbar. Der dunkelgraue Bereich ist vor
allem im q-k-Diagramm als klare Linie erkennbar. Das heisst es gibt einen linearen Zusammenhang
zwischen der Dichte und der Menge an gemessenen Fahrzeugen. Wenn die Dichte zu hoch ist und es
Stau gibt stimmt dieser Zusammenhang nicht mehr und das Verhältnis ist nicht mehr stabil.
Eine andere Abbildung der drei Diagramme sieht so aus:
Abbildung 8: Fundamentaldiagramm (Wu, 2000)
Auch hier sind die Formen ähnlich. Der stabile Bereich ist hier grün gekennzeichnet und der instabile
Bereich rot. Besonders schön ist im v-k-Diagramm zu sehen wie die Geschwindigkeit monoton
abnimmt mit zunehmender Dichte.
7.2.2 q-k–Diagramm
Eine genauere Darstellung für das q-k-Diagramm findet sich in Wikipedia
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
11
Abbildung 9: q-k-Diagramm (Fundamentaldiagramm, 2011)
Der Fluss nimmt bis zu einer bestimmten Dichte zu, dann verringert er sich weil mehr Autos auf der
Strasse stehen. Der rote Bereich ganz rechts im Diagramm zeigt wenn ein Stau vorhanden ist,
nämlich dann wenn fast kein Fluss mehr vorhanden ist und dafür die Dichte sehr hoch ist.
Eine Untersuchung von Kim und Keller (2001) zum q-k-Diagramm teilt das Diagramm in verschiedene
Regionen ein die eine Aussage zum Verkehrszustand ermöglichen:
Abbildung 10: q-k-Diagramm mit Klasseneinteilung (Kühne, 2004), S. 17
Die Einteilung unterscheidet die folgenden Zustände:
Freier Verkehr
Teilgebundener Verkehr
Synchroner Verkehr
Stockender Verkehr
Gestauter Verkehr
stationärer und stabiler Verkehrsfluss, deutliche Unterschiede zwischen
Fahrstreifen
meta-stabiler Zustand, Verkehrsteilnehmer in Bewegungsfreiheit
stark eingeschränkt
Geschwindigkeiten auf allen Fahrstreifen gleich und etwas geringer als
im teilgebundenen Verkehr, aber immer noch hoch
niedrige, extrem schwankende Geschwindigkeit bei relativ hoher und
nur kaum schwankender Verkehrsstärke, Geschwindigkeit und
Verkehrsstärke sind nur gering korreliert
niedrige Geschwindigkeit und sehr niedrige Verkehrsstärke,
stromaufwärts laufende Schockwellen
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
12
Stehender Verkehr
Geschwindigkeit und Verkehrsstärke nahezu null
Abbildung 11: Verkehrszustände
8 Vorgehen
8.1
Übersicht durchgeführte Schritte
Im ersten Schritt analysierte ich Daten die der HSR vom Verkehrsinstitut für ein früheres Projekt zur
Verfügung gestellt wurden. In diesem Projekt ging es um die Evaluierung ob die Daten überhaupt
geeignet waren um eine Stau-Aussage zu machen. Nachdem ich mit Herrn Bernhard vom
Verkehrsinstitut gesprochen hatte durfte ich die Daten auch für meine Analysen verwenden.
Da die Daten nur von einem Jahr waren konnte ich keine Vorhersagen treffen, denn ich konnte nicht
aussagen ob der Verkehr im Laufe der Jahre zugenommen hat oder ob ein Wert dieses Jahr
besonders hoch oder klein war.
Aus diesem Grund fragte ich Herrn Bernhard um weitere Daten an die dieser mir freundlicherweise
zustellte. Es waren die Messdaten der letzten zehn Jahre. Nun schrieb ich einen Parser der die Daten
einlas. Als mir klar wurde dass die Aussage ob ein Stau vorhanden ist schwieriger war als gedacht,
konzentrierte ich mich auf die Verkehrsvoraussage. Ich schrieb ein Framework mit dem ich
verschiede Vorhersage-Algorithmen testen konnte.
Danach befasste ich mich wieder mit der Frage wie der Verkehrszustand nur anhand des Flusses
ausgesagt werden kann. Ich schrieb eine Abfrage mit der ich die erste, zweite und dritte Ableitung
berechnen konnte. Danach studierte ich verschiedene Papers die das Fundamentaldiagramm
behandelten.
8.2
Verkehrsmessdaten einlesen in PostgreSQL
Der erste Ansatz war, die Daten in eine PostgreSQL -Datenbank einzulesen. Dafür wurde ein Parser
entwickelt. Der Parser importiert die Filestruktur in die 2 Tabellen Messpunkt und Messung.
Abbildung 12: Tabellen Messung, Messpunkt
Tabelle Messpunkt enthält alle gefundenen Messpunkte mit der Standortbeschreibung sowie der
Richtung in der gemessen wurde.
Tabelle Messung enthält den Zeitpunkt der Messung sowie die Anzahl gezählter Autos.
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
13
Zusätzlich wurde die Tabelle „zeit“ gefüllt um über den Tag Informationen zu erhalten:
Abbildung 13: Tabelle Zeit
Die Spalte „Arbeitstag“ gibt an ob der Tag ein normaler Arbeitstag war oder ein Tag an dem die Leute
frei haben und der deshalb eine ungewöhnliche Verkehrsentwicklung hat.
8.3
Flussvorhersage
8.3.1 Ansatz 1: Eigene Implementation
8.3.1.1 Rule-Interface
Abbildung 14: Rule Interface
Zum einen gibt es das Interface Rule, das alle Rule-Klassen implementieren. Die Methode guess gibt
für einen bestimmten Zeitpunkt einen int-Wert zurück. Der Wert steht für die Schätzung vom
Verkehr in diesem Zeitpunkt.
Die Implementationen der Rule wenden verschiedene Strategien an für die Schätzung.
Es gibt insgesamt die folgenden Regeln:
Regel
Beschreibung
Gibt den Durchschnitt der Anzahl Autos der
letzten 4 Jahre zurück, die zum selben Monat
und selben Tag zur selben Stunde durchgefahren
waren. Wenn der vorauszusagende Tag ein
Werktag ist werden alle nicht Werktage
ausgelassen und umgekehrt.
AverageOfSameHourLast6YearsRule Die gleiche Regel für die letzten 6 Jahre
AverageOfSameHourLast9YearsRule Die gleiche Regel für die letzten 9 Jahre
AverageOfSameHourRule
Gibt den Durchschnitt von derselben Stunde in
AverageOfSameHourLast4YearsRule
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
14
LastTimeSameDayTypeRule
LastYearSameTimeRule
MedianOfSameHourRule
MedianOfTimeRangeRule
allen Werk bzw. Wochenend-Tagen im selben
Monat in den zurückliegenden Jahren zurück
Gibt den Wert zur selben Stunde im letzten Jahr
zurück an dem der Tagestyp dh. Werktag/nicht
Werktag derselbe war.
Gibt den Wert zur selben Stunde im letzten Jahr
zurück
Gibt den Median von derselben Stunde in den
zurückliegenden Jahren zurück
Gibt den Median von der Stunde, der Stunde
vorher und der Stunde nachher in allen
zurückliegenden Jahren zurück
Abbildung 15: Regel-Implementationen
8.3.1.2 Ablauf Validierung
Abbildung 16: Ablauf Validierung
Die Validator-Engine holt die erwarteten Resultate ab und berechnet für jede Rule-Implementation
den Fehler, bzw das Quadrat vom Fehler.
Danach gibt der Validator die Fehlersumme für jede Regel aus.
8.3.1.3 Erlärung der Ergebniss-Anzeige
Die Ergebnisse für einen Standort sind unten aufgeführt. Links ist jeweils die Klasse die die Regel
implementiert, rechts ist der quadrierte, über ein Jahr und alle Messstationen zusammengezählte
Fehlbetrag der Voraussage. Die Prozentzahl dahinter in den Klammern zeigt an wie gross der Fehler
in Prozent der höchsten Fehlerzahl ist:
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
15
Z023/M004 K786 Autob.A1 (Anschl. Altstetten) -> Zürich:
Errors
mining.rules.AverageOfSameHourLast4YearsRule: 724710202(19.629202222556167%)
mining.rules.AverageOfSameHourLast6YearsRule: 680224093(18.42426978577549%)
mining.rules.AverageOfSameHourLast9YearsRule: 629509911(17.05064632734718%)
mining.rules.AverageOfSameHourRule: 1757466654(47.60201837308363%)
mining.rules.LastTimeSameDayTypeRule: 1085311004(29.396287113233523%)
mining.rules.LastYearSameTimeRule: 3692000285(100.0%)
mining.rules.MedianOfSameHourRule: 1697182417(45.969184344198936%)
Errors with average Increase
mining.rules.AverageOfSameHourLast4YearsRule: 945319824(25.604543635618924%)
mining.rules.AverageOfSameHourLast6YearsRule: 912728515(24.72178885544154%)
mining.rules.AverageOfSameHourLast9YearsRule: 850600351(23.039010978841244%)
mining.rules.AverageOfSameHourRule: 1390920249(37.673893326906935%)
mining.rules.LastTimeSameDayTypeRule: 1234446459(33.435708659486195%)
mining.rules.LastYearSameTimeRule: 2896790771(78.46128243188909%)
mining.rules.MedianOfSameHourRule: 1386163841(37.54506321767524%)
Abbildung 17: Ergebnisse Validierungsengine
In den Ergebnissen sind zwei Blöcke zu sehen. Im ersten Block wurden die Regeln normal ausgeführt,
im zweiten Block wurde versucht den Anstieg vom letzten bzw. vorletzten Jahr einzuberechnen. Dazu
wurde die folgende Formel angewendet:
schätzung )*ℎä,-./0 ∗ (1 +
1.5 ∗ 67889:9/-; + 0.5 ∗ 67889:9/-=
)
2
Abbildung 18: Berechnung der Steigung für die Verkehrsschätzung
wobei 67889:9/-; und 67889:9/-= die Differenzen von der Messung im letzten Jahr zur Messung
vorletzten bzw. vorvorletztem Jahr sind. Die Messung im aktuellen Jahr wissen wir nicht, wir nehmen
deshalb an dass der Anstieg letztes Jahr der gleiche ist wie der Anstieg dieses Jahr und multiplizieren
den Anstieg vom letzten Jahr mit der Schätzung für dieses Jahr.
Die Rule AverageOfSameHourLast9YearsRule hat den kleinsten Fehler mit etwa 17% der höchsten
Fehlerzahl. Sie kann die Anzahl Autos mit dem folgenden Fehler voraussagen:
629509911
6.:*ℎ)*ℎ/7,,@7*ℎ9:B9ℎ@9: = C
FGH∗=I
= 268 Fahrzeuge
Abbildung 19: Durchschnittlicher Fehler für beste Verkehr-Voraussage
8.3.1.4 Ergebnisse Zusammenfassung
Für drei Standort wurden die Regeln validiert. Die Ergebnisse sind unten aufgeführt. Es wurden nur
die Prozentangaben aufgeschrieben. Die Fehler mit Berücksichtigung der Steigung wurden ignoriert,
da sie fast immer höher waren als nur die Steigung allein.
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
16
50
45
40
AverageOfSameHourLast4Year
sRule
35
AverageOfSameHourLast6Year
sRule
30
AverageOfSameHourLast9Year
sRule
25
AverageOfSameHourRule
20
LastTimeSameDayTypeRule
15
MedianOfSameHourRule
10
5
0
Bergstrasse 12
Quaibrücke
Autobahn A1
Abbildung 20: Ergbnisse der Forecast-Validierung
Wie zu sehen ist die Vorhersage der Regel AverageOfSameHourLast9YearsRule mit je 15%-20%
allgemein am genauesten. Interessant ist dass AverageOfSameHourRule bzw.
MedianOfSameHourRule bei der Autobahn A1 massiv schlechter abschneidet. Hier herrschen
offenbar andere Verkehrsverhältnisse, die sich allerdings nur auf diese Regel auswirken, es wäre
interessant die Gründe dafür zu erforschen.
8.3.2 Exkurs Window Funktionen in SQL
Während die Group-By Funktion in SQL bekannt ist und viel genutzt wird sind die Window
Funktionen in SQL relativ unbekannt. Für eine Reihe von Problemen können sie jedoch einfach
lesbare SQL-Abfragen ermöglichen:
•
•
•
Sliding Windows: Zu jedem Wert in einem Datensatz soll der Durchschnitt vom vorherigen
Wert, dem aktuellen Wert und dem folgendem Wert berechnet werden. Das Fenster soll
dabei beliebig gross sein.
Abfragen wie: In welchem Monat der Angestellte X am meisten Verkauft für jedes Jahr seit er
für uns arbeitet mit den jeweiligen Umsatzwerten
Gruppenberechnungen, dh. wenn für jeden Datensatz sein Rang, sein Anteil an der
Gesamtsumme in seiner Gruppe berechnet werden soll. Zu welcher Gruppe der Datensatz
gehört legt der Wert einer Spalte fest. Beispiele sind für eine Verkaufsposition welcher Rang
der Verkauf diesen Monat hatte, bzw.
8.3.2.1 Beispiele
Die folgenden Beispiele sind auf der PostgreSQL-Datenbank mit der Staudaten-Datenbank
ausführbar. Sie sind im Standard-SQL geschrieben.
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
17
Das folgende Beispiel gibt für den 4. April 2010 alle Stunden aus sowie die Autos die in einer Stunde
gezählt sein werden. Dieser Wert kann mit der Funktion LAG ermittelt werden. Die Funktion benötigt
den Wert, hier anzahl_autos, sowie den Wert wie viel sie nach „vorne“ springen soll um den Wert zu
holen. Den Ausdruck in den Klammern hinter OVER könnte man so umschreiben: Nimm den gleichen
Datensatz wie im SELECT-Statement (also alle Stunden vom 4. April 2010) und ordne sie nach Jahr,
Monat, Tag und Stunde.
SELECT
stunde,
anzahl_autos,
LAG(anzahl_autos,1) OVER (
ORDER BY
jahr DESC,
monat DESC,
tag DESC,
stunde DESC
) AS anzahl_autos_in_einer_stunde
FROM messung
WHERE messpunkt_id=164 AND jahr=2010 AND monat=4 AND tag=4
Abbildung 21: SQL Windowing Beispiel: Messwerte eine Stunde in der Zukunft
Genauer gesagt beschreibt der Ausdruck hinter OVER das Fenster und die Sortierung für das LAG
gelten soll. Das Fenster ist hier gleich dem gesamten Datensatz. Es könnte aber auch kleiner sein. Das
folgende Beispiel benutzt ein kleineres Fenster:
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
18
SELECT
stunde,
anzahl_autos,
AVG(anzahl_autos) OVER (
ORDER BY
jahr DESC,
monat DESC,
tag DESC,
stunde DESC
ROWS BETWEEN 2 PRECEDING
AND CURRENT ROW
) as anzahl_autos_durchschnitt_letzte_2_stunden
FROM messung
WHERE messpunkt_id=164 AND jahr=2010 AND monat=4 AND tag=4
Abbildung 22: SQL Windowing Beispiel: Sliding Window
Hier beschränken wir das Fenster und berechnen für jede Zeile den Durchschnitt der aktuellen Anzahl
Autos sowie der Anzahl Autos der aktuellen sowie der letzten zwei Stunden aus. Das Fenster
definieren wir mit dem Ausdruck ROWS BETWEEN…
Ein weiteres Schlüsselwort gibt es noch: PARTITION BY. Am besten lässt es sich anhand einer
Fragestellung erklären: Wie können wir Stunden mit dem höchsten Verkehr pro Tag ausgeben?
Der SQL Query der die Antwort liefert sieht so aus:
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
19
SELECT tag, stunde, anzahl_autos
FROM
(
SELECT
tag,
stunde,
anzahl_autos,
RANK() OVER (
PARTITION BY tag
ORDER BY
anzahl_autos DESC
) AS tages_Rang
FROM messung
WHERE messpunkt_id=164 AND jahr=2010 AND monat=4
) AS rating
WHERE tages_Rang =1
ORDER BY tag
Abbildung 23: SQL Windowing Beispiel: Stunden mit dem höchsten Verkehr pro Tag
Der Select besteht aus einem übergeordneten SELECT und einem Sub-SELECT. Die Funktion RANK
gibt den aktuellen Rang des Datensatzes im Fenster aus. Da wir die Spitzenstunde pro Tag ermitteln
wollen haben wir mit „PARTITION BY tag“ das Fenster aufgeteilt in Tage. Das äussere SELECTStatement gibt nur die Stunde mit Rang 1 zurück. Leider unterstützt SQL keine Fenster-Funktionen in
WHERE-Bedingungen. Die nächstliegende Lösung ist mit Subqueries zu arbeiten, hier muss aber auf
die Performance achtgegeben werden, vor allem müssen die Subqueries so weit wie möglich gefiltert
werden, damit nicht die gesamte Tabelle ausgelesen wird.
8.3.2.2 Anwendung auf die Staudatenanalyse
Für die Staudatenanalyse wurden Windowing Funktionen für die folgenden Fragestellungen
verwendet:
•
•
Wie kann für eine Messung die Steigung vom gleichen Tag und der gleichen Stunde vom
letzten bzw. vorletzten Jahr zum aktuellen Jahr berechnet werden?
Wie kann der Verlauf geglättet werden, bzw. wie können die Werte von der vorherigen, bzw.
nachfolgenden Stunde hinzugerechnet werden?
8.3.2.3 Weiterführende Links
Kleines einfaches Beispiel: http://www.adp-gmbh.ch/ora/sql/analytical/partition_by.html
Offizielle Dokumentation von Microsoft: http://msdn.microsoft.com/en-us/library/ms189461.aspx
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
20
Ein grösseres Beispiel das auch die Varianten in „normalen“ SQL zeigt:
http://weblogs.sqlteam.com/jeffs/archive/2007/03/28/60146.aspx
8.3.3 Ansatz 2: MS Excel mit Datamining Add-In
Während der erste Ansatz darin bestand, die Forecast-Regeln selber zu implementieren besteht der
zweite Ansatz mit Excel darin die Zeitreihe mit Hilfe des Data Mining Add-Ins vorherzusagen.
Das Data Mining Add-In ist verfügbar unter
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=7294. Es ist nur für Excel
2007 vorhanden. Für Excel 2010 existiert zurzeit noch kein vergleichbares Add-In. Nachdem das AddIn installiert ist muss die Verbindung zum Analysis Service hergestellt werden. Das Add-In dient als
Client um auf die Data-Mining-Funktionalität zuzugreifen.
Für die Vorhersage von Zeitreihen verwendet Excel die beiden Algorithmen ARTXP sowie ARIMA.
Ein Beispiel für eine einfache Planungsaufgabe findet sich in der Excel Datei Planungsbeispiel.xlsx.
Leider konnte die Excel-Implementation nicht direkt mit der selber entwickelten Regel-Engine
verglichen da die Excel-Engine eher optimiert ist für eine Vorhersage wenige Stunden in der Zukunft
und der Fehler nicht auf eine einfache Art berechnet werden konnte. Vielleicht wäre es besser
gewesen eine „Excel-Regel“ zu implementieren die die Analysis Services Schnittstelle anspricht. Dann
hätten die Vorhersage-Algorithmen direkt verglichen werden können.
8.4
Stau-Analyse
8.4.1 Ansatz 1: Analyse nur mit Flussdaten
Bis jetzt wurde die reine Vorhersage des Flusses behandelt. Was aber nicht bis jetzt beachtet wurde
war wie man zu einer Aussage kommen könnte ob ein stockender Verkehr oder ein Stau vorliegt. Ein
Ansatz wäre aufgrund der Steigungen im Verlauf eine Aussage zu treffen. Gab es eine starke Steigung
mit einer Abflachung und einem leichten Abstieg könnte man das als eine Sättigung interpretieren
mit nachfolgendem stockendem Verkehr. Der Verlauf hätte dann eine ähnliche Form wie im q-kDiagramm.
Ein Beispiel dafür ist in den folgenden 2 Abbildungen zu sehen. Sie zeigt den Verlauf auf der
Quaibrücke Richtung Bürkliplatz sowie der Rosengartenstrasse 23 Richtung Bucheggplatz am 8. April
2010 in rot, in blau den geglätteten Verlauf und in grün die erste Ableitung vom geglätteten Verlauf,
also die prozentuale Zunahme. Die Messung ist von einem Donnerstag.
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
21
Verkehrs-Tagesverlauf Quaibrücke Richtung
Bürkliplatz
2000
140
120
100
80
60
40
20
0
-20
-40
1500
1000
500
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(Leer)
0
Fluss_geglättet
Fluss
erste Ableitung
Abbildung 24: Tagesverlauf Bürkliplatz
Verkehrs-Tagesverlauf Rosengartenstrasse
Richtung Bucheggplatz
2500
100
2000
80
60
1500
40
1000
20
500
0
0
-20
0
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Fluss geglättet
Fluss
erste Ableitung
Abbildung 25: Tagesverlauf Rosengartenstrasse
Aus beiden Bildern ist zu erkennen dass der Verkehr ab 6 Uhr stark zugenommen hat
Bei beiden Bildern ist zu sehen dass der Verkehr ab 9 Uhr abgenommen hat. Ist das wegen einem
Stau der Fall? Nicht unbedingt, denn aus der Erfahrung lässt sich sagen dass Stausituationen vor
allem von 6 Uhr bis 8 Uhr auftreten. In den Diagrammen ist aber während dieser Zeit ein steiler
Anstieg zu bemerken.
Offenbar sind Stau-Situationen mit den vorliegenden Messdaten nicht klar erkennbar. Eventuell
könnten mit einer kürzeren Messfrequenz kurze Staus erkannt werden, zB. wenn der Fluss plötzlich
einbricht, dann ist der Verkehr in dieser Zeit ins Stocken geraten. Mit stündlichen aggregierten
Messungen sind hingegen nur mehrstündige Staus erkennbar.
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
22
8.4.2 Ansatz 2: Analyse mit zusätzlichen Daten
In diesem Kapitel wird angenommen dass zusätzlich zum Fluss weitere Daten vorhanden sind, so dass
die Erkenntnisse aus dem Fundamentaldiagramm benutzt werden können.
8.4.2.1 Analyse mit Dichte-Daten
Wenn die Dichte-Daten vorhanden sind kann mit dem q-k-Diagramm gearbeitet werden.
Abbildung 26: q-k-Diagramm
Für die Dichte muss ein Gebiet um den Messpunkt bestimmt werden und die Anzahl Fahrzeuge auf
diesem Gebiet gezählt werden. Bei auf die Stunde aggregierten Daten muss der Durchschnitt der
Dichte in dieser Stunde berechnet werden.
Um den Verkehrsstatus auszusagen kann dann eine Klassierung wie in Abbildung 10: q-k-Diagramm
mit Klasseneinteilung , S. 17 vorgenommen werden. Im q-k-Diagramm werden mehrere Gebiete
bestimmt, jedes Gebiet kennzeichnet einen anderen Verkehrsstatus. Für jeden Messpunkt müssen
die Grenzen dabei neu bestimmt werden.
Der Bestimmungsalgorithmus bestimmt anhand der Dichte und dem Fluss den Verkehrsstaus.
8.4.2.2 Analyse mit Geschwindigkeits-Daten
Für die Aussage der Verkehrslage kann das q-v-Diagramm hinzugezogen werden:
Abbildung 27: q-v-Diagramm
Wie zu sehen ist kann nur aufgrund der Geschwindigkeit eine Aussage getroffen werden ob der
Verkehr fliessend (grün) oder stockend (rot) ist. Da keine Forschungsresultate gefunden wurden nicht
ausgesagt werden ob ebenfalls eine Einteilung in die verschiedenen Verkehrszustände erfolgen kann.
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
23
9 Fazit
Insgesamt lässt sich sagen dass das Ziel der Stauvorhersage nicht erreicht wurde, dass aber ein
Teilschritt erreicht wurde. Es wurde ein Algorithmus gefunden mit dem bis zu einem Jahr die Daten
gut vorausgesagt werden können. Um Stau zu erkennen braucht es zusätzlich den Parameter Dichte
oder Geschwindigkeit. Dieser muss irgendwie hinzugefügt werden, entweder manuell per Schätzung
oder automatisch mit Messungen.
Kann nun zB. beim Staudamm in Rapperswil eine Messung gemacht werden und mit dieser einen
Messung eine Stauaussage gemacht werden? Nein, denn wie im Fundamentaldiagramm gezeigt muss
zuerst die optimale Geschwindigkeit, bzw. Dichte für den Streckenabschnitt bestimmt werden. Dann
kann eine Aussage getroffen werden ob ein Stau vorhanden ist oder nicht, nämlich wenn die Dichte
grösser ist als die optimale Dichte, bzw. die Geschwindigkeit kleiner ist als die optimale
Geschwindigkeit.
Mit Hilfe vom zB. Fluss und Geschwindigkeit kann dann eine Stauaussage gemacht werden. Wenn
viele Autos langsam durchfahren ist sehr wahrscheinlich ein Stau vorhanden.
10 Ausblick
Wie im Fundamentaldiagramm zu sehen ist kann eine sichere Stau-Aussage nur gemacht werden
wenn zusätzlich die Dichte oder die Geschwindigkeit der Autos vorhanden ist.
Eine Stau-Einschätzung mit Hilfe der Ableitung ist schwierig, denn eine Steigung des Flusses bedeutet
nicht unbedingt dass es während der Stunde keinen Stau gegeben hat, der Stau könnte auch nur
temporär aufgetreten sein. Nur ein mehrstündiger Stau könnte so erkannt werden.
Um eine genauere Stauaussage zu erstellen werden deshalb folgende Angaben benötigt:
•
•
Die durchschnittliche Dichte oder die Geschwindigkeit der Fahrzeuge
Einen kürzeren Zeitintervall um auch kürzere Staus erkennen zu können
Mit den Verfahren in Kapitel 8.4.2 kann vorhergesagt werden ob ein Stau vorhanden ist wenn
zusätzlich die Dichte oder die Geschwindigkeit vorhanden sind.
(Steiner, Verfahren zur Reisezeitschätzung auf Autobahnen, 2006) beschreibt eine Methode wie die
Reisezeit zwischen zwei Messpunkten geschätzt werden kann aufgrund von Einzelfahrzeugdaten. Es
müsste evaluiert werden welche Daten das sind und inwiefern die Methode angewendet werden
kann.
Wenn die Messpunkte zu einem Graphen verbunden werden können kann der Verkehr möglichweise
genauer vorausgesagt werden. In (De Rham, 2007) wurde dieser Ansatz unter anderem auch für
Zürich implementiert wie im Bild unten zu sehen ist.
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
24
Abbildung 28: Stau-Voraussage mit HIlfe von Polydrom
11 Abbildungsverzeichnis
Abbildung 1: Beispiel-Dateiauszug .......................................................................................................... 5
Abbildung 2: Header-Zeilen mit Richtung ............................................................................................... 5
Abbildung 3: Google Verkehrslage Anzeige ............................................................................................ 6
Abbildung 4: Google Verkehrslage Forecast ........................................................................................... 6
Abbildung 5: Ortsbezogene Verkehrsarten ............................................................................................. 8
Abbildung 6: Fundamental-Formel ......................................................................................................... 9
Abbildung 7: Fundamentaldiagramm (Kühne, 2004) .............................................................................. 9
Abbildung 8: Fundamentaldiagramm (Wu, 2000)................................................................................. 10
Abbildung 9: q-k-Diagramm (Fundamentaldiagramm, 2011) ............................................................... 11
Abbildung 10: q-k-Diagramm mit Klasseneinteilung (Kühne, 2004), S. 17 ........................................... 11
Abbildung 11: Verkehrszustände .......................................................................................................... 12
Abbildung 12: Tabellen Messung, Messpunkt ...................................................................................... 12
Abbildung 13: Tabelle Zeit ..................................................................................................................... 13
Abbildung 14: Rule Interface ................................................................................................................. 13
Abbildung 15: Regel-Implementationen ............................................................................................... 14
Abbildung 16: Ablauf Validierung.......................................................................................................... 14
Abbildung 17: Ergebnisse Validierungsengine ...................................................................................... 15
Abbildung 18: Berechnung der Steigung für die Verkehrsschätzung.................................................... 15
Abbildung 19: Durchschnittlicher Fehler für beste Verkehr-Voraussage.............................................. 15
Abbildung 20: Ergbnisse der Forecast-Validierung ............................................................................... 16
Abbildung 21: SQL Windowing Beispiel: Messwerte eine Stunde in der Zukunft................................. 17
18.01.12
Verkehrsflussvorhersage und Stauanalyse aufgrund von Messdaten
25
Abbildung 22: SQL Windowing Beispiel: Sliding Window ..................................................................... 18
Abbildung 23: SQL Windowing Beispiel: Stunden mit dem höchsten Verkehr pro Tag ........................ 19
Abbildung 24: Tagesverlauf Bürkliplatz ................................................................................................. 21
Abbildung 25: Tagesverlauf Rosengartenstrasse .................................................................................. 21
Abbildung 26: q-k-Diagramm ................................................................................................................ 22
Abbildung 27: q-v-Diagramm ................................................................................................................ 22
Abbildung 28: Stau-Voraussage mit HIlfe von Polydrom ...................................................................... 24
12 Literaturverzeichnis
Fundamentaldiagramm. (28. 12 2011). Abgerufen am 28. 12 2011 von Wikipedia.
Induktionsschleife. (2012). Abgerufen am 17. 01 2012 von Wikipedia:
http://de.wikipedia.org/wiki/Induktionsschleife
Cashys Blog. (kein Datum). Abgerufen am 18. 01 2012 von http://stadt-bremerhaven.de/googlemaps-zeigt-live-den-verkehr-an-und-das-funktioniert-mit-euren-daten/
De Rham, C. (30. 04 2007). Polydrom. Abgerufen am 17. 01 2012 von
http://www.astra.admin.ch/dokumentation/00109/00115/00636/index.html?lang=de&dow
nload=NHzLpZeg7t,lnp6I0NTU042l2Z6ln1acy4Zn4Z2qZpnO2Yuq2Z6gpJCDdoJ4fmym162epYb
g2c_JjKbNoKSn6A-Kühne, R. (Oktober 2004). Das Fundamentaldiagramm – Grundlagen und Anwendungen. Abgerufen
am 28. 12 2011 von http://www.tft.pdx.edu/docs/Greenshields_Publication.pdf
Schäfer, B. (2011). Ermittlung der Kapazität von Straßen durch Fahrzeugmessungen im Verkehrsfluss.
Abgerufen am 28. 12 2011 von http://www.hsulm.de/opus/volltexte/2011/65/pdf/Studienarbeit_Fundamentaldiagramm.pdf
Steiner, A. (2005). Entwicklungsumgebung zur Kopplung von mikro- und makroskopischen
Verkehrsflussmodellen. ZHAW.
Steiner, A. (2006). Verfahren zur Reisezeitschätzung auf Autobahnen. ZHAW.
Wu. (2000). Verkehr auf Schnellstraßen im Fundamentaldiagramm. Abgerufen am 28. 12 2011 von
http://homepage.ruhr-uni-bochum.de/Ning.Wu/pdf/FMDG_SVT_8_2000.pdf
18.01.12