Moritz started his internship at indoo.rs at the same time as Caroline, whom we introduced you to last time. Just like her, he was extremely eager to learn new things and motivated to give his obligatory internship a meaning. In this blog he lets us in on what he’s been working on and what was the most important thing he learned during that time.
Quick intro: Tell us about yourself
My name is Moritz, I’m 22 years old and currently in the 6th semester of my “Verkehr und Umwelt” (Traffic and Environment) studies at the UAS Technikum Wien. There I’ve specialized on E-Mobility, but I’m fascinated by everything that involves mathematics, computers and programming. Since this is basically what the indoo.rs research department works with all day, I was more than happy to be able to join them for the internship I had to do for my final semester.
Brief summary of your indoo.rs project
What was the goal of your project?
I remember exactly when the task was given to me. It went something like, “See this?”
What was a typical day at indoo.rs like?
How did you proceed with your work?
After the above-mentioned “getting started” phase, I read some papers on trajectory data mining and consulted with the research team on how to best structure the application. I started with creating the basic functions for importing and visualizing floorplans and different trajectory representations, as well as a simple GUI for controlling the view.
As a method of data simplification and aggregation, I then proceeded to implement a clustering algorithm for trajectory data, which produces a set of clusters from a dataset, based on spatial proximity. The clustered trajectory points are shown in the image below. The color of the points represent the number of points inside a cluster (ranging from green = low, to yellow = high).
The next step was implementing a function to aggregate the midpoints of these clusters, the so-called “centroids”, and the raw trajectory lines into a single visual representation. The trajectory graph was created. In the graph, the line thickness results from the number of trajectories going through each edge.
Since the trajectory graph removes information on origin and destination of trajectories, the curve graph representation was created. Here, the trajectories are rendered as Bezier curves passing by their centroids, rather than crossing them. To distinguish single curves, a functionality for selecting and highlighting single or multiple points and lines was added.
Finally, an HTML info box was implemented, showing information and comparisons of objects when clicking them.
What did you learn during the internship?
Read about our other previous interns: