thesis
This commit is contained in:
parent
3032965402
commit
c801121c40
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -53,9 +53,11 @@
|
||||
\input{tex/visualisierung}
|
||||
\input{tex/validierung}
|
||||
\input{tex/ausblick}
|
||||
|
||||
|
||||
%\textit{kursiv}
|
||||
%\textsc{Autor}
|
||||
%bib
|
||||
\bibliographystyle{plainnat}
|
||||
\bibliographystyle{is-abbrv}
|
||||
\bibliography{bib/literature}
|
||||
\newpage
|
||||
%glosar
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
year = {2012},
|
||||
}
|
||||
|
||||
@Unpublished{thesis:michael,
|
||||
@Mastersthesis{thesis:michael,
|
||||
type = {Bachelorarbeit},
|
||||
author = {{Michael Scholz}},
|
||||
title = {{Schleifenbasierte Verkehrsmodellierung}},
|
||||
|
||||
@ -105,6 +105,7 @@ In diesem Kapitel werden die Grundlagen der Verkehrstechnik und -modellierung be
|
||||
\end{enumerate}
|
||||
Um die Daten f"ur eigene Zwecke verwenden zu k"onnen, wurden die ben"otigten Teile extrahiert und in einem eigenen Datenbankschema abgespeichert. Mehr Informationen zu dem entwickelten Datenbankmodell sind im Kapitel \autoref{sec:modell:datenbankschema} zu finden. Desweiteren wurden verschiedene SQL-Abfragen entwickelt, um die ben"otigten Informationen zu extrahieren.\\ \\
|
||||
Um die gespeicherte Sensorposition zu ermitteln wurde eine SQL-Abfrage \ref{lst:sql_sensorquery} entwickelt, welche Kreuzungs- und Sensornamen, sowie dessen jeweiligen Latitude und Longitude zur"uckgibt. Die Auswahl ist dabei auf die zehn untersuchten Kreuzungen beschr"ankt. Das Feld 'VALIDTO' in der Kreuzungstabelle bestimmt dabei, ob die Kreuzung noch in Betrieb ist. Sensornamen k"onnen ebenfalls mit dieser Abfrage gefiltert werden. In der abgebildeten SQL-Abfrage \ref{lst:sql_sensorquery} werden Sensoren welche mit 'D' beginnen herausgefiltert, da fast ausschlie"slich alle Sensoren, welche zur Kreuzungmodellierung und -berechnung verwendet wurden ein f"uhrendes 'D' aufweisen.\\
|
||||
\lstset{language=SQL}
|
||||
\begin{minipage}[t]{\dimexpr\textwidth-3\fboxsep-2\fboxrule-1em}
|
||||
\begin{lstlisting}[caption={[SQL-Abfrage der Sensorens] SQL-Abfrage der Sensoren}, label={lst:sql_sensorquery}, captionpos=bsec]
|
||||
SELECT CD.REALNAME AS CR_NAME,
|
||||
|
||||
@ -1,40 +1,37 @@
|
||||
\section{Validierung}\label{sec:validierung}
|
||||
In diesem Kapitel wird die Validierung der berechneten Verkehrswerte beschrieben. Dabei wird zun"achst ein angestrebtes Verfahren beschrieben und darauf eingegangen warum dieses Verfahren sich nicht eignet. Um die berechneten Werte dennoch validieren zu k"onnen, wurde eine Verkehrsz"ahlung im Rahmen dieser Arbeit vorgenommen.
|
||||
|
||||
\subsection{Validierung durch Testdatenmenge}{
|
||||
Ein "ubliches Testverfahren ist es, einen Teil der Datenmenge aus der Berechnung au"senvorzulassen und durch die verwendete Berechnung diese fehlenden Daten zu reproduzieren. Durch einen Vergleich der Testdaten und der berechneten Daten, kann nun festgestellt werden wie genau die Berechnung ist. \\ \\
|
||||
Dieses Verfahren eignet sich hier allerdings nicht, da bei den vorliegenden Sensordaten das Auslassen von Sensorwerten ,um diese als Testdaten zu verwenden, die Berechnung unm"oglich macht, da das LGS unlösbar wird (vgl. todo valid sensor). Das ist auf die geringe Menge an Sensoren zur"uckzuf"uhren. Man kann nur in den seltensten F"allen einen Sensor mit einem anderen validieren(Zeitproblem).\\ \\
|
||||
Um das Modell zu validieren kann man aus seiner bekannten Menge an Daten, in diesem Fall die Sensordaten, ein Teil ausw"ahlen, welcher nicht zur Berechnung verwendet wird. Dieser Teil wird nach der Berechnung mit den Ergebnissen der entsprechenden Sensoren verglichen. Ist die Abweichung gro"s, ist das berechnete Ergebniss(f"ur diesen Sensor/Bereich) ein schlechtes. best"atigt sich dagegen der Sensorwert, kann von einem guten Ergebniss f"ur diesen Bereich gerechnet werden.
|
||||
Diese Vorgehen ist nicht m"oglich, da alle Sensorwerte zur Berechnung ben"otigt werden. Um die Daten zu validieren ist eine manuelle Verkehrsz"ahlung n"otig.}
|
||||
zählt immer mehr autos, da die net an rot stehn bleiben dürfen
|
||||
\subsection{Validierung durch Testdatenmenge}
|
||||
Ein "ubliches Testverfahren ist es, einen Teil der Datenmenge aus der Berechnung au"senvorzulassen und durch die verwendete Berechnung diese fehlenden Daten zu reproduzieren. Durch einen Vergleich der Testdaten und der berechneten Daten, kann nun festgestellt werden wie genau die Berechnung ist. \\ \\
|
||||
Dieses Verfahren eignet sich hier allerdings nicht, da bei den vorliegenden Sensordaten das Auslassen von Sensorwerten ,um diese als Testdaten zu verwenden, die Berechnung unm"oglich macht, da das LGS unlösbar wird (vgl. todo valid sensor). Das ist auf die geringe Menge an Sensoren zur"uckzuf"uhren. Man kann nur in den seltensten F"allen einen Sensor mit einem anderen validieren(Zeitproblem).\\ \\
|
||||
Um das Modell zu validieren kann man aus seiner bekannten Menge an Daten, in diesem Fall die Sensordaten, ein Teil ausw"ahlen, welcher nicht zur Berechnung verwendet wird. Dieser Teil wird nach der Berechnung mit den Ergebnissen der entsprechenden Sensoren verglichen. Ist die Abweichung gro"s, ist das berechnete Ergebniss(f"ur diesen Sensor/Bereich) ein schlechtes. best"atigt sich dagegen der Sensorwert, kann von einem guten Ergebniss f"ur diesen Bereich gerechnet werden.
|
||||
Diese Vorgehen ist nicht m"oglich, da alle Sensorwerte zur Berechnung ben"otigt werden. Um die Daten zu validieren ist eine manuelle Verkehrsz"ahlung n"otig.
|
||||
\subsection{Verkehrsz"ahlung}
|
||||
Da kein anderes passendes Testverfahren gefunden wurde, wurde im Rahmen dieser Arbeit eine Verkehrsz"ahlung durchgef"uhrt. Diese Verkehrsz"ahlung wurde mithilfe von Michael Scholz erhoben, welcher diese Daten ebenfalls f"ur seine Bachelor Arbeit ben"otigt.
|
||||
Gez"ahlt wurde dabei mit Strichliste and den Kreuzungen [], [] und []. Dabei wurden in der einen Messreihe die Autos an den Ausg"angen gez"ahlt, um die berechneten Werte der virtuellen Kreuzungsausg"ange in dem Graphenmodell validieren zu k"onnen.
|
||||
Desweiteren wurden die Autos gez"ahlt welche "uber einen speziellen Sensor gefahren sind.
|
||||
Hierf"ur wurden die Sensoren [] und [] gez"ahlt. In einer weiten Z"ahlung wurde nur der Sensore [] betrachtet.
|
||||
Die Ausg"ange und Sensoren wurden dabei "uber 15 Minuten gez"ahlt, da eine genaue Synkronisation mit dem Zeitgeber der Sensoren nicht genau m"oglich ist. F"ur die genauere Untersuchung des Sensors [] wurde eine Minutenweise Z"ahlung vorgenommen, beginnend vom Minutenanfang.
|
||||
In der ersten Messung wurden dabei alle Fahrzeuge gez"ahlt, au"ser Fahrr"ader.
|
||||
|
||||
\subsection{Verkehrsz"ahlung}{
|
||||
Da kein anderes passendes Testverfahren gefunden wurde, wurde im Rahmen dieser Arbeit eine Verkehrsz"ahlung durchgef"uhrt. Diese Verkehrsz"ahlung wurde mithilfe von Michael Scholz erhoben, welcher diese Daten ebenfalls f"ur seine Bachelor Arbeit ben"otigt.
|
||||
Gez"ahlt wurde dabei mit Strichliste and den Kreuzungen [], [] und []. Dabei wurden in der einen Messreihe die Autos an den Ausg"angen gez"ahlt, um die berechneten Werte der virtuellen Kreuzungsausg"ange in dem Graphenmodell validieren zu k"onnen.
|
||||
Desweiteren wurden die Autos gez"ahlt welche "uber einen speziellen Sensor gefahren sind.
|
||||
Hierf"ur wurden die Sensoren [] und [] gez"ahlt. In einer weiten Z"ahlung wurde nur der Sensore [] betrachtet.
|
||||
Die Ausg"ange und Sensoren wurden dabei "uber 15 Minuten gez"ahlt, da eine genaue Synkronisation mit dem Zeitgeber der Sensoren nicht genau m"oglich ist. F"ur die genauere Untersuchung des Sensors [] wurde eine Minutenweise Z"ahlung vorgenommen, beginnend vom Minutenanfang.
|
||||
In der ersten Messung wurden dabei alle Fahrzeuge gez"ahlt, au"ser Fahrr"ader.
|
||||
Im anschlie"senden Vergleich von Sensorwerten mit den gez"ahlten Sensorwerten wurde ein deutlicher Unterschied sichtbar.
|
||||
[statistik hier]
|
||||
|
||||
Im anschlie"senden Vergleich von Sensorwerten mit den gez"ahlten Sensorwerten wurde ein deutlicher Unterschied sichtbar.
|
||||
[statistik hier]
|
||||
1. Z"ahlen der Ausg"ange
|
||||
2. Z"ahlen einzelner Sensoren
|
||||
|
||||
1. Z"ahlen der Ausg"ange
|
||||
2. Z"ahlen einzelner Sensoren
|
||||
Vergleichen der Sensorenwerte
|
||||
Vergleichen der Ausgangswerte von Berechnung/Z"ahlung
|
||||
Validit"at pr"ufen mit standartabweichung 5percentage
|
||||
Hypothese: Berechnete Werte sind gen"ugend Genau. Ja/Nein -> wissenschaftliche methode blabla
|
||||
|
||||
Vergleichen der Sensorenwerte
|
||||
Vergleichen der Ausgangswerte von Berechnung/Z"ahlung
|
||||
Validit"at pr"ufen mit standartabweichung 5percentage
|
||||
Hypothese: Berechnete Werte sind gen"ugend Genau. Ja/Nein -> wissenschaftliche methode blabla
|
||||
|
||||
}
|
||||
|
||||
\subsection{Validierung der Verkehrsaufkommensvorhersage}{
|
||||
\subsection{Validierung der Verkehrsaufkommensvorhersage}
|
||||
hoher wert am ausgang, hoher wert an der n"achsten kreuzung
|
||||
}
|
||||
|
||||
\subsection{Sensor}
|
||||
\subsection{Sensor}
|
||||
|
||||
\subsection{"Uberpr"ufung des Modells}
|
||||
\subsection{"Uberpr"ufung des Modells}
|
||||
Das in Kapitel \autoref{sec:modell} entwickelte Modell muss auf seine G"ultigkeit "uberpr"uft werden. Hierzu wird "uberpr"uft, ob die f"ur das Modell getroffenen Annahmen mit einer realen Verkehrssituation angebracht sind.
|
||||
|
||||
[falschabbieger]
|
||||
|
||||
@ -1,16 +1,17 @@
|
||||
\section{Visualisierung}\label{sec:visualisierung}
|
||||
In diesem Kapitel wird beschrieben, wie der im Kapitel \autoref{sec:modell} und im Kapitel \autoref{sec:berechnung} mit Werten bef"ullter Graph visualisiert wird. Neben dem Graphen wird eine Kreuzungs"ubersicht mithilfe der Geoinformationen der JEE6 Anwendung mit den untersuchten Sensoren am Computer visualisiert.\\ \\
|
||||
In diesem Kapitel wird beschrieben, wie der im Kapitel \autoref{sec:modell} und im Kapitel \autoref{sec:berechnung} mit Werten bef"ullter Graph visualisiert wird. Neben den Graphen wird eine Kreuzungs"ubersicht mithilfe des JMapViewer Framework und Geoinformationen der JEE6 Anwendung mit den untersuchten Sensoren am Computer visualisiert.\\ \\
|
||||
Visualisierung eignet sich deshalb besonders gut, da die berechneten Zusammenh"ange komplex und wenig zug"anglich sind. Eine Visualisierung erm"oglicht eine andere Sicht auf den Sachverhalt und l"asst sich leichter auf Korrektheit oder Fehler "uberpr"ufen.
|
||||
|
||||
\subsection{Visualisierung des Graphen mit JMapViewer}
|
||||
Um den Zusammenhang zwischen Realit"at und dem Graphen-basierten Modell herzustellen wurden die Kreuzungsinformationen auf eine Landkarte projeziert. Hierzu dient das JMapViewer Framework\footnote{JMapViewer Sourcecode ist unter \url{http://svn.openstreetmap.org/applications/viewer/jmapviewer/} zu erhalten.}, welches auf das Kartenmaterial des Open-Street-Map-Projektes, kurz OSM\footnote{Offiziell Website: http://www.openstreetmap.org/}, zugreift und dem Programmierer die M"oglichkeit gibt, eigene Kartenanwendungen zu schreiben.\\ \\
|
||||
In dieser Arbeit wurde die Kreuzungs"ubersicht auf die OSM-Karte projeziert und die Sensoren verzeichnet. Es diente zur "Ubersicht und um die korrekte Positionierung von Kreuzungen und Sensoren zu "uberpr"ufen. Die Sensoren werden hierfür als gelbe Kreise dargestellt, der Kreuzungsbereich wird mit einem roten Rechteck markiert. Die Anwendung bringt schon von Haus aus Navigationsmöglichkeiten mit, um den betrachteten Kartenausschnitt zu manipulieren. Das Framework kann auf drei verschiedene Kartenbildsätze zurückgreifen.
|
||||
Um den Zusammenhang zwischen Realit"at und dem Graphen-basierten Modell herzustellen wurden die Kreuzungsinformationen auf eine Landkarte projeziert. Hierzu dient das JMapViewer Framework\footnote{JMapViewer Sourcecode ist unter \url{http://svn.openstreetmap.org/applications/viewer/jmapviewer/} zu erhalten.}, welches auf das Kartenmaterial des Open-Street-Map-Projektes, kurz OSM\footnote{Offiziell Website: http://www.openstreetmap.org/}, zugreift und dem Programmierer die M"oglichkeit gibt eine eigene Kartenanwendung zu schreiben.\\ \\
|
||||
In dieser Arbeit wurde die Kreuzungsbereiche auf die OSM-Karte projeziert und die Sensoren verzeichnet. Es diente zur "Ubersicht und um die korrekte Positionierung von Kreuzungen und Sensoren zu "uberpr"ufen. Die Sensoren werden hierfür als gelbe Kreise dargestellt, der Kreuzungsbereich wird mit einem roten Rechteck markiert. Die Anwendung bringt schon von Haus aus Navigationsmöglichkeiten mit, um den betrachteten Kartenausschnitt zu manipulieren. Das Framework kann auf drei verschiedene Kartensätze zurückgreifen.
|
||||
\begin{enumerate}
|
||||
\item{Mapnik: CAD "ahnlich Ansicht der Karte.}
|
||||
\item{Mapnik: CAD "ahnlich Ansicht der Karte aus dem OSM Projekt.}
|
||||
\item{OSM Cycle Map: Die Fahrradkarte des OSM Projekts.}
|
||||
\item{Bing Aerial Maps: Microsoft Bing Luftbilder.}
|
||||
\item{Bing Aerial Maps: Microsoft Bing Satellitenbilder.}
|
||||
\item{Tiles At Home: Lokal gespeichertes Kartenset.}
|
||||
\end{enumerate}
|
||||
Durch Zoom und verschieben der Karte können die einzelnen Kreuzungen untersucht werden. Der Detailgrad der Dartsellung ist dabei direkt abhängig von dem Kartenmaterial, das OSM liefert. OSM erlaubt es dem Nutzer, über ein eigenständiges Werkzeug, Details in das Kartenmaterial einzupflegen. Da das Projekt sehr beliebt ist, weisen die meisten Bereiche des betrachteten Ausschnitts in etwa die Qualität der CAD-Zeichnungen der Stadt Darmstadt (siehe \autoref{sec:datengrund:cad}).
|
||||
\begin{figure}
|
||||
\centering
|
||||
\subfigure[JMapViewer mit eingezeichneten Kreuzungsbereichen (rot) und Sebsorpositionen (gelb).] {\includegraphics[width=0.5\textwidth-2\fboxsep-2\fboxrule]{pic/osm_overview}}
|
||||
@ -20,20 +21,28 @@ Visualisierung eignet sich deshalb besonders gut, da die berechneten Zusammenh"a
|
||||
\end{figure}
|
||||
\subsection{Visualisierung des JGraphT-Graphen}{
|
||||
Die Visualisierung des JGraphT Graphen ist eine Visualisierung der Berechnungsstruktur, da die Berechnung an dem Graphen vollzogen wird. Mehr Informationen hierzu sind im Kapitel \autoref{sec:berechnung} zu finden. In Verbindung mit den Latitude und Longitude Koordinaten k"onnen die Knoten des Graphen auf dem Bildschirm angeordnet werden um eine Identifizierung von Objekten zu erleichtern. Der Nutzer erh"alt weiterhin die F"ahigkeit die einzelnen Knoten manuell nachzujustieren. Dies ist insbesondere f"ur solche Knoten ohne g"ultige Koordinaten hilfreich.\\ \\
|
||||
Ziel dieser Visualisierung ist es die berechneten Werte darzustellen. Die Anordnung nach Koordinaten erm"oglicht es den generierten Graphen einfach mit der Realit"at zu vergleichen. Es werden im Gegensatz zu der Visualisierung mit Luftbildern nicht nur die Kreuzungs"ubersicht visualisiert, sondern auch die einzelnen Kreuzungen, da f"ur beide ein Graph vorhanden ist (siehe \autoref{sec:modell}). Die Erzeugung der Graphen ist dabei auf die Visualisierungsf"ahigkeit der Java Graphen-Bibliothek JGraph. Die JGraphT-Bibliothek bietet eine Schnittstelle zu dieser Bibliothek und erlaubt es Graphen mit wenigen Befehlen zu visualisieren.\\
|
||||
Ziel dieser Visualisierung ist es die berechneten Werte darzustellen. Die Anordnung nach Koordinaten erm"oglicht es den generierten Graphen einfach mit der Realit"at zu vergleichen. Es werden im Gegensatz zu der Visualisierung mit Luftbildern nicht nur die Kreuzungs"ubersicht visualisiert, sondern auch die einzelnen Kreuzungen, da f"ur beide ein Graph vorhanden ist (siehe \autoref{sec:modell}). Die Erzeugung der Graphen ist dabei auf die Visualisierungsf"ahigkeit der Java Graphen-Bibliothek JGraph gestützt. Die JGraphT-Bibliothek bietet eine Schnittstelle zu dieser Bibliothek und erlaubt es Graphen mit wenigen Befehlen zu visualisieren. In \autoref{lst:create_vis_graph} ist die Konvertierung von JGraphT und das Auftragen auf ein scrollbares Fenster aufgezeigt.\\
|
||||
\begin{minipage}[t]{\dimexpr\textwidth-3\fboxsep-2\fboxrule-1em}
|
||||
\begin{lstlisting}[caption={[Befehl zur Konvertierung und Darstellung eines JGraphT Graphen als JGraph] Befehl zur Konvertierung und Darstellung eines JGraphT Graphen als JGraph.}, label={lst:sql_sensorquery}, captionpos=bsec]
|
||||
\begin{lstlisting}[caption={[Befehl zur Konvertierung und Darstellung eines JGraphT Graphen als JGraph] Befehl zur Konvertierung und Darstellung eines JGraphT Graphen als JGraph.}, label={lst:create_vis_graph}, captionpos=bsec]
|
||||
//JGraphT Container
|
||||
ListenableDirectedGraph<XR, ST> streetGraph
|
||||
= new ListenableDirectedGraph<>(ST.class);
|
||||
//fill Graph
|
||||
//fill Graph here
|
||||
//...
|
||||
//Initialize JGraph Adapter with the given streetGraph
|
||||
JGraphModelAdapter<XR, ST> adp
|
||||
= new JGraphModelAdapter<>( streetGraph );
|
||||
//Create JGraph with the Adapter
|
||||
JGraph jgraph = new JGraph(adp);
|
||||
//Create a Frame
|
||||
JFrame frame = new JFrame("StreetGraph");
|
||||
//Create a Scrollable Pannel with the JGraph Object inside
|
||||
JScrollPane scrPane = new JScrollPane(jgraph);
|
||||
//Add Scrollpane to the Frame
|
||||
frame.add(srcPane); //todo check
|
||||
\end{lstlisting}
|
||||
\end{minipage}\\
|
||||
|
||||
[bild "ubersicht bild kreuzung]
|
||||
Das Resultat ist eine simple Darstellung des Graphen. Auf Knoten, den Kreuzungen, werden Dabei ... todo ... aufgetragen. Kanten werden in der Kreuzungsübersicht mit dem berechneten Verkehrswert, der in die entsprechenden Richtung aus der Kreuzung fließt, markiert. Um zwei Kanten, die beiden möglichen Fahrrichtungen, zwischen zwei Knoten auseinander halten zu können wird an jeder Kante zusätzlich zu dem Verkehrswert die Kreuzung in dessen Richtung der Verkehr fließt mit angegeben.
|
||||
[bild "ubersicht]
|
||||
}
|
||||
\newpage
|
||||
Loading…
x
Reference in New Issue
Block a user