master
Clemens Klug 2018-05-03 15:46:00 +02:00
parent 24b1cc2efb
commit 5e28b9eecc
10 changed files with 79 additions and 182 deletions

View File

@ -2,7 +2,7 @@
%Necessary Information
\author{Clemens Klug}
\title{A Framework for the Analysis of Spatial Game Data}
\subtitle{Ein Analyseframework f\"ur raumbezogene Spieldaten}
\subtitle{Ein Analyseframework f\"ur raumbezogene Spieldaten\\2. Vortrag}
%The day of the presentation
%\date{\today}
\date{February 28, 2018}
@ -22,5 +22,5 @@
\titlegraphic{\includegraphics[width=13mm,height=13mm]{image/logo}}
%\gittrue
\gittrue
\presentationtrue

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
PresTeX/images/grafana.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

View File

@ -16,7 +16,13 @@ compress
\newcommand\meta{../meta}
\input{\meta/config/commands}
\newcommand{\backupbegin}{
\newcounter{finalframe}
\setcounter{finalframe}{\value{framenumber}}
}
\newcommand{\backupend}{
\setcounter{framenumber}{\value{finalframe}}
}
\def\signed #1{{\leavevmode\unskip\nobreak\hfil\penalty50\hskip2em
\hbox{}\nobreak\hfil(#1)%
@ -94,162 +100,6 @@ compress
%%%%%%%%%% Content starts here %%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Location based Games}
\begin{frame}{Location based Games}
\framesubtitle{Put the 'fun' in education}
\begin{columns}
\column{0.55\linewidth}
Intersection of GIS and gaming technology\footnotemark
\begin{itemize}
\item Game actions tied to real-world spatial places ('Break the magic circle')%TODO citation
\item Locomotion as essential game part
\item Trade-offs between board and race style games\footnotemark
\item Foster recognition of environment
\item Focus through game related tasks
\end{itemize}
\column{.45\linewidth}
\image{.5\textwidth}{gg2}{Geogame map view}{img:gg2}
\end{columns}
\addtocounter{footnote}{-1}
\footcitetext{Ahlqvist2018}\stepcounter{footnote}
\footcitetext{1705427}
\end{frame}
\begin{frame}{Research with location based games}
\begin{columns}
\column{0.35\linewidth}
\begin{itemize}
\item Define mission statement
\item Build statistical framework
\item Questionnaires
\begin{itemize}
\item Pre
\item Post
\end{itemize}
\item {[Data entry]}
\item Statistical processing
\end{itemize}
\column{.6\linewidth}
\image{\textwidth}{biodiv-schaal}{Statistical framework for BioDiv2Go\footnotemark}{img:biodiv-schaal}
\end{columns}
%\addtocounter{footnote}{-1}
\footcitetext{Schaal2017}%\stepcounter{footnote}
\end{frame}
\section{Goal definition}
\begin{frame}{Goal definition}
\framesubtitle{A Framework for the Analysis of Spatial Game Data}
\begin{itemize}
\item Framework for analysis
\item Two target groups:
\begin{itemize}
\item Expert users/researchers
\item Staging/designing staff
\end{itemize}
\item Integration of external data (questionnaire results)
\item Adaptable for multiple games
\end{itemize}
\end{frame}
\begin{frame}{Components}
Prerequisites: Game log
\begin{itemize}
\item Creation
\item Storage
\end{itemize}
New components
\begin{itemize}
\item Per-game importer (Web client, File loader, …)
\item Analyzer modules (number crunching)
\item Output \& Visualization (CSV, [Geo]JSON, KML, Graphs, …)
\item Interface (Configuration)
\item Cross-game comparisons
\end{itemize}
\end{frame}
\section{State of research}
\frame
{
\tableofcontents[sectionstyle=show/hide,hideothersubsections]
}
\subsection{Log processing}
\begin{frame}{Modern log processing stacks}
Technologies: Collection, Time-series databases, Frontend
\begin{itemize}
\item ELK (Elastic search, Logstash, Kibana)\autocite{andreassen2015monitoring} \autocite{yang2016aggregated} \autocite{steinegger2016analyse} \autocite{sanjappa2017analysis}
\item Collectd, Influx DB, Grafana \autocite{komarek2017metric}
\item
\end{itemize}
\begin{itemize}
\item[+] widely deployed
\item[+] powerful query languages %TODO example
\item mainly web/container/hardware monitoring
\item[-] spatial analysis: heavily anonymized
\item[-] fast-paced environment
\end{itemize}
\end{frame}
\subsection{Pedestrian traces}
\begin{frame}{Analyzing pedestrian movement}
\framesubtitle{… based on GPS logs}
\begin{itemize}
\item GPS overestimates systematically \autocite{Ranacher_2015}
\item GPS is a suitable instrument for spatio-temporal data\autocite{van_der_Spek_2009}
\item Activity mining \autocite{Gong_2014}
\begin{itemize}
\item Speed-based Clustering \autocite{ren2015mining}
%\item \autocite{Ferrante_2016} % closed access
\item Machine Learning \autocite{pattern_recog} %TODO
\end{itemize}
\item E.g.: Improve tourist management \autocite{tourist_analysis2012}
\end{itemize}
\end{frame}
\begin{frame}{Heatmap}
\image{.81\textwidth}{strava}{Heatmap: Fitnesstracker\autocite{strava}}{img:strava}
\end{frame}
\begin{frame}{Space-time cube}
\image{.72\textwidth}{space-time}{Space-time cube examples\autocite{bach2014review}}{img:spacetime}
\end{frame}
\begin{frame}{Trajectory patterns}
\image{\textwidth}{traj-pattern}{Flock and meet trajectory pattern\autocite{jeung2011trajectory}}{img:traj-pattern}
\end{frame}
\begin{frame}{Generalization}
\image{\textwidth}{generalization}{Trajectories and generalizations with varying radius parameter \autocite{adrienko2011spatial}}{img:generalization}
\end{frame}
\subsection{Analyzing games}
\begin{frame}{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}
\vspace{-42pt}
%\image{.5\textwidth}{game-an}{chat logs with players location \autocite{Drachen2013}}{img:chatlogs}
%\image{.5\textwidth}{ac3-death}{identify critical sections \autocite{Drachen2013}}{img:ac3death}
\twofigures{0.5}{game-an}{Chat logs with players location}{img:chatlogs}{ac3-death}{Identify critical sections}{img:ac3death}{Game analytics \cite{Drachen2013}}{fig:gameanal}
\end{frame}
%\subsection{Location based games}
\subsection{Summary}
\begin{frame}{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}
\end{frame}
\section{Solution approach}
\frame
{
@ -273,12 +123,15 @@ Technologies: Collection, Time-series databases, Frontend
\end{frame}
\subsection{Architecture}
\begin{frame}{Experiment: Kibana}
\image{.85\textwidth}{kibana}{Game trace in Kibana}{img:kibana}
\end{frame}
%\begin{frame}{Experiment: Kibana}
%\image{.85\textwidth}{kibana}{Game trace in Kibana}{img:kibana}
%\end{frame}
\begin{frame}{Experiment: Kibana}
\image{.85\textwidth}{kibana2}{Game trace in Kibana}{img:kibana2}
\end{frame}
\begin{frame}{Experiment: Grafana}\hspace{.3\textwidth}a\\[-24pt]
\image{.85\textwidth}{grafana}{Side project: Weather station with Grafana}{img:grafana}
\end{frame}
\begin{frame}{Architecture}
\begin{itemize}
@ -295,8 +148,8 @@ Technologies: Collection, Time-series databases, Frontend
\end{itemize}
\item Reduce: Collect summaries from analyzers
\begin{itemize}
\item Rendering
\item Post-processing, Comparison, …
\item Rendering
\end{itemize}
\end{itemize}
\end{frame}
@ -304,8 +157,9 @@ Technologies: Collection, Time-series databases, Frontend
\image{\textwidth}{../../ThesTeX/images/map-reduce.pdf}{Data flows}{img:flow}
\end{frame}
\section{Outlook: Implementation}
\section{Implementation}
\subsection{Technologies}
\begin{frame}{Implementation}
\begin{columns}
\column{0.55\linewidth}
@ -313,7 +167,7 @@ Technologies: Collection, Time-series databases, Frontend
\begin{itemize}
\item Python (3.6)
\item Standalone library/CLI tool
\item Web based configuration/Runner/API (Flask)
\item Web based configuration/Runner/API (Flask, Celery)
\end{itemize}
Rendering
\begin{itemize}
@ -335,24 +189,53 @@ Technologies: Collection, Time-series databases, Frontend
\end{columns}
\end{frame}
\begin{frame}{Configuration \& results}
\subsection{Microservice Composition}
\begin{frame}{Microservice Composition}
\framesubtitle{Docker everything!}
\begin{columns}
\column{0.45\linewidth}
\begin{itemize}
\item Analysis framework: Celery
\item User interface: Flask
\item Result server: Nginx
\item Connection Flask - Celery: Redis
\item Public frontend: Traefik (external)
\end{itemize}
\column{0.525\linewidth}
\image{\textwidth}{../../ThesTeX/images/architecture}{Service structure}{img:microservices}
\end{columns}
\end{frame}
\subsection{Classes}
\begin{frame}{Analysis}
\twofigures{0.5}{code/analyzer}{Analyzer interface}{code:anif}{code/mask-spatials}{Sample analyzer}{code:mask}{Analyzer stub and implementation}{fig:pyan}
\end{frame}
\begin{frame}{Result}
\image{\textwidth}{code/result}{Result class}{code:result}
\end{frame}
\begin{frame}{Render}
\twofigures{0.5}{code/render}{Render interface}{code:reif}{code/render-board}{Sample render}{code:rebo}{Render stub and implementation}{fig:pyre}
\end{frame}
\subsection{Configuration}
\begin{frame}{Configuration \& result}
\twofigures{0.5}{oeb-kml}{Analyzer configuration}{img:oebkml}{oeb-ge}{Result visualized}{img:oebge}{Example: Generate KML tracks (BioDiv2Go; Oberelsbach2016)}{fig:oeb2016}
\end{frame}
\begin{frame}{ActivityMapper}
\image{.7\textwidth}{track-fi}{Combined screen activity and spatial progress}{img:trackfi}
\end{frame}
\section{Outlook: Evaluation}
%TODO
\begin{frame}{Graphs}
\begin{columns}
\column{0.45\linewidth}
\image{\textwidth}{simu-retries}{Experimentational rounds}{img:retries}
\column{0.45\linewidth}
\image{\textwidth}{speed}{Speed distribution}{img:speed}
\end{columns}
\end{frame}
\begin{frame}{Graphs}
\image{.9\textwidth}{time-rel}{Time distribution}{img:time}
\begin{frame}{Evaluation}
\begin{itemize}
\item Analyse other geogames
\item Describe effort
\item ?
\item Profit
\end{itemize}
\end{frame}
@ -368,6 +251,19 @@ Technologies: Collection, Time-series databases, Frontend
\normalsize
\end{frame}
\appendix
\backupbegin
\begin{frame}{Graphs}
\begin{columns}
\column{0.45\linewidth}
\image{\textwidth}{simu-retries}{Experimentational rounds}{img:retries}
\column{0.45\linewidth}
\image{\textwidth}{speed}{Speed distribution}{img:speed}
\end{columns}
\end{frame}
\begin{frame}{Graphs}
\image{.9\textwidth}{time-rel}{Time distribution}{img:time}
\end{frame}
\backupend
\end{document}

View File

@ -30,7 +30,8 @@ Additionally, this requires the users to master the query language before any re
By building a custom plugin, extension, or modified version, it is possible to circumvent this obstacle.
However, the fast-paced environment of the industry either requires a constant effort of keeping pace, or results in an outdated system rather quickly.\footnote{E.g. the next major release Kibana v6.0.0\footnote{\url{https://github.com/elastic/kibana/releases/tag/v6.0.0}} was released about a year after Kibana v5.0.0\footnote{\url{https://github.com/elastic/kibana/releases/tag/v5.0.0}}. However, the previous major version seems to receive updates for about an year, too.}
\subsection{Evaluation Grafana}
\image{\textwidth}{grafana-metrics}{Configuring a graph in Grafana}{img:graphana}
\subsection{Conclusion}
After all, the monitoring solutions are no perfect match for this special use case.
The privacy concerns vital in web monitoring prohibit detailed spatial analyzes, the query languages can restrict some questions, and custom extensions require constant integration effort.
@ -43,7 +44,7 @@ The default Kibana worchbench does not qualify for this, a custom interface coul
\section{Architectural Design}
%TODO: map-reduce
\subsection{Overview}
Based on the learnings above, a custom stack seems like a feasible alternative:
\begin{itemize}

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB