Update: this project was chosen as a winner of the AWS Educate challenge!
With a growing world population, cities face several challenges. Planning and management has become more important than ever, and there is an increasing need for innovative solutions which provide new approaches to use the overwhelming amount of data these cities generate. When deciding where to place a new equipment on a city, taking into account all the city data is crucial to ensure an optimal placement. We decided to automatise this process and to being able to manage it in a visual way.
What it does
The city data viewer we built is able to show all equipments of different types which are present on a city, and check its stats. We can also see how the population is distributed among different neighbourhoods. It is possible to request a location for a new equipment, which will be optimised according to the available data. The viewer uses regression models to estimate the variation in population throughout the years. These changes are easily visualised to allow city planners a better long-term vision when deciding where to place new facilities. Figure 1: Population in 2013
Figure 2: Estimation of population in 2020
How we built it
We deployed a microservice architecture using Amazon Web Services Serverless (Lambda and API Gateway). We gathered different datasets and we crossed them when relevant (i.e. with young and disabled people data for placing hospitals) using NumPy. We tried different regression models to estimate population change throughout years and optimal equipment placement taking into account different criteria for each equipment type. To visualise, we used OpenStreetMap and OpenLayers. The data is provided by our dedicated microservice.
Challenges we ran into
We found it difficult to deploy an adequate infrastructure using AWS Serverless. The map projections were hard to work with. A lot of preprocessing was needed with open datasets since there is a lot of diversity in data format.
Accomplishments that we're proud of
The microservices to scrape and process datasets worked out very well. It eased the development process.
What we learned
We learned how to integrate frontend and backend through an API and to evaluate different regression models. We gained experience at managing open datasets. We learned to escalate our projects using a serverless approach.
What's next for CityPlanner
To plot several heatmaps showing different service availability for each neighbourhood and other useful plots.