diff --git a/ThesTeX/content/2-state-of-the-art.tex b/ThesTeX/content/2-state-of-the-art.tex index 90620cf..cd1f8ae 100644 --- a/ThesTeX/content/2-state-of-the-art.tex +++ b/ThesTeX/content/2-state-of-the-art.tex @@ -1,2 +1,2 @@ -\input{content/2.0-collection} +%\input{content/2.0-collection} \input{content/2.1-text} \ No newline at end of file diff --git a/ThesTeX/content/2.1-text.tex b/ThesTeX/content/2.1-text.tex index 5bd8212..770a8ec 100644 --- a/ThesTeX/content/2.1-text.tex +++ b/ThesTeX/content/2.1-text.tex @@ -1,6 +1,9 @@ -\section{State of research} +With an administrative background, the first approach to log processing which comes to mind are the various log processing frameworks. +\autoref{sec:logproctheo} shows the current state of tools and processes for managing large volumes of log and time series data. +An overview of the field of pedestrian track analysis is located in \autoref{sec:pedest}. +Finally, in \autoref{sec:gametheo} the connection of spatial anaylses and digital game optimizations is showcased. -\section{Log processing} +\section{Log processing}\label{sec:logproctheo} System administrators and developers face a daily surge of log files from applications, systems, and servers. For knowledge extraction, a wide range of tools is in constant development for such environments. Currently, an architectural approach with three main components is most frequently applied. @@ -51,7 +54,7 @@ Additional functionality can be added with plugins, e.g. for new data sources or The query languages of the data sources is abstracted by an common user interface. -\section{Pedestrian traces} +\section{Pedestrian traces}\label{sec:pedest} Analyzing pedestrian movement based on GPS logs is an established technique. In the following sections, \autoref{sssec:gps} provides an overview of GPS as data basis, \autoref{sssec:act} highlights some approaches to activity mining and \autoref{sssec:vis} showcases popular visualizations of tempo-spatial data. \nomenclature{\m{G}lobal \m{P}ositioning \m{S}ystem}{GPS} @@ -75,37 +78,73 @@ Informations of this kind are relevant e.g. for improvements for tourist managem Beside points of interest (POIs), individual behaviour patterns can be mined from tracks, as described in \cite{ren2015mining}. Post-processing of these patterns with machine learning enables predictions of future trajectories \cite{10.1007/978-3-642-23199-5_37}. - +%TODO more?? \subsection{Visualization}\label{sssec:vis} +Visualizations help to understand data sets, especially for spatial data. -\image{.81\textwidth}{../../PresTeX/images/strava}{Heatmap: Fitnesstracker\cite{strava}}{img:strava} +\subsubsection{Heatmap} +One of the most basic visualization of large amounts of spatial data is the heatmap. +As the example in \autoref{img:strava} shows, it allows to identify areas with high densities of data points very quickly. +This comes however with the loss of nearly all context information. +For example, the temporal information - both the time slice and the relative order of the data points - is completely absent. +A workaround is an external control element for such information to control the unerlying dataset. -\image{.72\textwidth}{../../PresTeX/images/space-time}{Space-time cube examples\cite{bach2014review}}{img:spacetime} +\image{\textwidth}{../../PresTeX/images/strava}{Heatmap: Fitnesstracker \cite{strava}}{img:strava} -\image{\textwidth}{../../PresTeX/images/traj-pattern}{Flock and meet trajectory pattern\cite{jeung2011trajectory}}{img:traj-pattern} +\subsubsection{Track attributes} +An example of a rendering methodology including more attributes, \cite{stopher2002gps} details the possibilities using cartographic signatures as seen in \autoref{img:track-attr}. +When track lines are used, there are some options to indicate attributes of the track, too. +Besides the color, e.g. the width and stroke-type of the line can indicate certain attributes. +A combination of these allows the visualization of multiple attributes at once. +However, such views are limited in the amount of tracks and attributes to display before been confusing and ambiguous. + +\image{\textwidth}{track-attributes}{Track rendering with acceleration attributes \cite{stopher2002gps}}{img:track-attr} + + +\subsubsection{Space-time cube} +One way to address the lack of temporal context is the space-time cube concept reviewed in \cite{kraak2003space}. +By mapping an additional temporal axis as third dimension on a two-dimensional map, tracks can be rendered in a three-dimensional context. +The example in \autoref{img:spacetime} shows how such a rendering allows to identify individual movement patterns and locations of activity in between. +However, it also demonstrates the problems of the difficult interpretation of the 3D map, especially with overlappig tracks. +Beside from overcrouded ares, many people have difficulties of miss-interpreting the 3D movements. +The space flattened alternative on the right tries to reduce this problem with a spatial abstraction. + +\image{\textwidth}{../../PresTeX/images/space-time}{Space-time cube examples \cite{bach2014review}}{img:spacetime} + +An approach for an time-aware heatmap utilizing space-time cubes is shown in \autoref{img:spacetime2}. +This highlights hotspots of activity over an temporal axis. +\image{\textwidth}{space-time-density}{Space-time cube density examples \cite{demvsar2015analysis}}{img:spacetime2} + +\subsubsection{Trajectory patterns and generalizations} +To simplify the visualization of large amounts of indiviual tracks, the derivation of patterns applying to the tracks allows to highlight key areas. +\autoref{img:traj-pattern} shows two examples of such patterns: Flock, where a group of tracks are aligned for some time, and meet, which defines an area of shared presence. +It is possible to apply such pattern time aware or time agnostic, i.e. whether to take the simultaneous appearance into account. \cite{jeung2011trajectory} + +\image{\textwidth}{../../PresTeX/images/traj-pattern}{Flock and meet trajectory pattern \cite{jeung2011trajectory}}{img:traj-pattern} + +An approach for addressing the generalization aspects necessary to visualize massive movement data is described in \cite{adrienko2011spatial}. +They work on traffic data as shown in \autoref{img:generalization}. +With an increasing generalization parameter, the flows refine to more abstract representations of travel. \image{\textwidth}{../../PresTeX/images/generalization}{Trajectories and generalizations with varying radius parameter \cite{adrienko2011spatial}}{img:generalization} -\section{Analyzing games} -\begin{itemize} - \item there's more than heatmaps - \item combine position with game actions - \item identify patterns, balancing issues - \item manual processes %\citetitle{Drachen2013}\citetitle{AHLQVIST20181} -\end{itemize} -%\image{.5\textwidth}{game-an}{chat logs with players location \cite{Drachen2013}}{img:chatlogs} -%\image{.5\textwidth}{ac3-death}{identify critical sections \cite{Drachen2013}}{img:ac3death} -\twofigures{0.5}{../../PresTeX/images/game-an}{Chat logs with players location}{img:chatlogs}{../../PresTeX/images/ac3-death}{Identify critical sections}{img:ac3death}{Game analytics \cite{Drachen2013}}{fig:gameanal} +\section{Analyzing games}\label{sec:gametheo} +Modern video games with always-on copyprotection or online masterservers allow game studios to collect metrics about players' performances. +In \cite{Drachen2013}, the authors describe the use of GIS technologies for such environments. +For example, \autoref{img:chatlogs} shows a correlation between the frequency of certain keywords in the chat messages and the players' current location. +This indicates a possible bug in the game to look out for. +Not only technical problems, design errors or bad balancing can be visualized, too. +\autoref{img:ac3death} uses a heatmap to highlight areas with high failure rates during playtesting. +These failure hotspots points can then be addressed for a convienient game flow. +\image{\textwidth}{../../PresTeX/images/game-an}{chat logs with players location \cite{Drachen2013}}{img:chatlogs} +\image{\textwidth}{../../PresTeX/images/ac3-death}{identify critical sections \cite{Drachen2013}}{img:ac3death} +%\twofigures{0.5}{../../PresTeX/images/game-an}{Chat logs with players location}{img:chatlogs}{../../PresTeX/images/ac3-death}{Identify critical sections}{img:ac3death}{Game analytics \cite{Drachen2013}}{fig:gameanal} + +In contrast to the complete virtual games above, \cite{AHLQVIST20181} describes the mining of spatial behaviour of players through an real-world base online game. +With an focus on replicating the real world, players have to align social and natural resources. +The results of these simulations can then be used to built agent-based simulations with realistic behaviour. -\section{Summary} -\begin{itemize} - \item Log processing: Powerful stacks - \item Movement analysis: Large field already explored (GPS influence, Patterns, Behavior recognition, …) - \item Track rendering: Track (with attributes), Space-time cube, Heatmap, … - \item Spatial analysis of digital games with GIS - \item Analysis of location based games: Laborious manual process -\end{itemize} \ No newline at end of file diff --git a/ThesTeX/content/3-solution.tex b/ThesTeX/content/3-solution.tex index 7423c53..b23f65c 100644 --- a/ThesTeX/content/3-solution.tex +++ b/ThesTeX/content/3-solution.tex @@ -1,4 +1,4 @@ -With an administrative background, the first approach to log processing which comes to mind are the various log processing frameworks. +With an administrative background, the first approach to log processing which comes to mind is the various log processing frameworks. The following chapter \autoref{sec:logproc} takes a dive into this world and evaluates the feasability of two such system for the scope of this thesis. Based on the findings, an alternative approach is then outlined in \autoref{sec:alternative-design}. diff --git a/ThesTeX/content/appendix.tex b/ThesTeX/content/appendix.tex index d3ccd94..d33d963 100644 --- a/ThesTeX/content/appendix.tex +++ b/ThesTeX/content/appendix.tex @@ -7,19 +7,19 @@ \section{Containers} \subsection{Kibana test setup} \label{app:kibana} -\lstinputlisting[language=yaml,caption={Docker-compose file for Kibana test setup},label=code:kibana]{code/kibana-docker-compose.yml} +\lstinputlisting[language=yaml,caption={Docker-compose file for Kibana test setup},label=code:kibana,numbers=left]{code/kibana-docker-compose.yml} \subsection{Biogames server dockerized} \label{app:biogames} \image{\textwidth}{biogames.pdf}{Dockerized setup for biogames}{img:bd2gdocker} -\lstinputlisting[language=yaml,caption={Docker-compose file for Biogames server},label=code:bd2s]{code/biogames/docker-compose.yml} -\lstinputlisting[language=yaml,caption={Dockerfile for Biogames server},label=code:bd2d]{code/biogames/Dockerfile} -\lstinputlisting[language=bash,caption={Entrypoint for Biogames docker container},label=code:bd2e]{code/biogames/start.sh} +\lstinputlisting[language=yaml,caption={Docker-compose file for Biogames server},label=code:bd2s,numbers=left]{code/biogames/docker-compose.yml} +\lstinputlisting[language=yaml,caption={Dockerfile for Biogames server},label=code:bd2d,numbers=left]{code/biogames/Dockerfile} +\lstinputlisting[language=bash,caption={Entrypoint for Biogames docker container},label=code:bd2e,numbers=left]{code/biogames/start.sh} \subsection{Traefik reverse proxy}\label{app:traefik} -\lstinputlisting[language=yaml,caption={Docker-compose file for Traefik reverse proxy},label=code:bd2t]{code/traefik.yml} -\lstinputlisting[language=yaml,caption={Traefik reverse proxy configuration (traefik.toml)},label=code:bd2toml]{code/traefik.toml} +\lstinputlisting[language=yaml,caption={Docker-compose file for Traefik reverse proxy},label=code:bd2t,numbers=left]{code/traefik.yml} +\lstinputlisting[language=yaml,caption={Traefik reverse proxy configuration (traefik.toml)},label=code:bd2toml,numbers=left]{code/traefik.toml} \subsection{Geogame Log Analysis project setup}\label{app:dcs} -\lstinputlisting[language=yaml,caption={Docker-compose file for Geogame Log Analysis project},label=code:gglap]{code/project.yml} +\lstinputlisting[language=yaml,caption={Docker-compose file for Geogame Log Analysis project},label=code:gglap,numbers=left]{code/project.yml} \section{TODO} \subsection{Examples} %TODO ?!?! diff --git a/ThesTeX/content/literature.bib b/ThesTeX/content/literature.bib index 9fb6bba..19e7bdb 100644 --- a/ThesTeX/content/literature.bib +++ b/ThesTeX/content/literature.bib @@ -540,3 +540,20 @@ isbn="978-3-642-23199-5" author={Anselin, Luc}, year={1989} } +@inproceedings{kraak2003space, + title={The space-time cube revisited from a geovisualization perspective}, + author={Kraak, Menno-Jan}, + booktitle={Proc. 21st International Cartographic Conference}, + pages={1988--1996}, + year={2003} +} +@article{demvsar2015analysis, + title={Analysis and visualisation of movement: an interdisciplinary review}, + author={Dem{\v{s}}ar, Ur{\v{s}}ka and Buchin, Kevin and Cagnacci, Francesca and Safi, Kamran and Speckmann, Bettina and Van de Weghe, Nico and Weiskopf, Daniel and Weibel, Robert}, + journal={Movement ecology}, + volume={3}, + number={1}, + pages={5}, + year={2015}, + publisher={BioMed Central} +} \ No newline at end of file diff --git a/ThesTeX/images/space-time-density.png b/ThesTeX/images/space-time-density.png new file mode 100644 index 0000000..0496c42 Binary files /dev/null and b/ThesTeX/images/space-time-density.png differ diff --git a/ThesTeX/images/track-attributes.png b/ThesTeX/images/track-attributes.png new file mode 100644 index 0000000..b4e8fdc Binary files /dev/null and b/ThesTeX/images/track-attributes.png differ