AlticeVis – Study and Visualisation of Urban Mobility

This project was developed with the intent of identifying and developing the technologies and algorithms that enable the analysis and identification of mobility patterns and promote the application of measures for a more sustainable urban mobility. Based on the mobile network access data from the Altice provider, we intend to: (i) identify the most common trajectories; (ii) identify qualitatively how many people move from/towards a specified reference; (iii) identify how many people do the same trajectory, or have the same origin/destiny points; (iv) identify and categorise different geographic locations; (v) compare different periods of time, identifying areas of greater affluence throughout time.


System Architecture


The system is constructed to be a three-tiered system with three major parts: Frontend (presentation tier), Backend (application tier) and datasource (database tier). It is constructed to be able to process different requests in a parallel and scalable way, and to read from dynamic distributed datasources. An overview of the system can be seen in Figure 1.

System architecture
Figure 1

System architecture


The Frontend of the system serves to request or cancel a visual query and visualize its results. The first entry point on the server, i.e. Backend, is the REST API module. The Frontend request a visual query that is submitted via the REST API. The REST API receives and processes the request, passing to the Worker unit which starts processing the information of the query and uses the available data to construct the result.


The worker uses pre-processed information to enrich the data and construct the response data for the Frontend to build the visualisation. During the analysis of the query, the system performs temporal and spatial aggregation and filtering. The final result is persisted on the database tier, and the Frontend provides a way to consult and see the information of the query.




The backend is composed by the visual query API via REST service and the backend worker. The entry point is done via the REST API where the queries are submitted and processed to be deployed to the backend worker unit. The backend worker receives the request and starts processing the request. The request is processed as a PySpark job and it is processed asynchronously.

After the visual query API deploys the query, the worker unit starts dealing with the request. Once the worker processes and the request is done, it is saved into the database so it can be visualised later. The backend worker unit has several components and processes that will be detailed soon.



The frontend is divided into three main pages — Home, Visual Query, and Visualisation (Fig. 2). All these pages are connected to the backend and the Visual Query and Visualisation pages are only accessible through the Home page. More details about each page and their constituent components will appear soon.

Flowchart of the webpage
Figure 2

Flowchart of the webpage

In the Home page, the user also has access to a list of previously saved queries through a button entitled Saved Queries. For each query, we present its parameters and state, which can vary from “Canceled”, “Executing”, and “Complete”. If the query’s state is complete, the user can click on it and be redirected to the Visualisation page where he/she can analyse the visualisation model.

Saved queries
Figure 3

Saved queries

In the Visual Query page, the user can define the query through a simple form. The main goal of this page is to ease the definition of the query parameters. In the end, the user can cancel or send the defined query to process. In either action, the user will be redirected to the Home page.

Visual query
Figure 4

Visual query page, with Leira and Viseu selected as the origin and destination districts.

In the Visualisation page, the user can see and analyse the previously selected query in the Home page queries list. A legend containing all query parameters and description of all graphic elements is provided in the left side of the screen to assist the analysis of the visualisation. Furthermore, a timeline is also made available to navigate through the query timespan.

Visualization page
Figure 5

Visualization of the movements in the direction away from the Aveiro district in the first day of the year 2019.



  • P. Silva, C. Maçãs, J. Correia, P. Machado, and E. Polisciuc, “ANTENNA: A Tool for Visual Analysis of Urban Mobility based on Cell Phone Data,” in Proceedings of the 17th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications – IVAPP, 2022, pp. 88-100.