Stay ahead of floods, with real-time waterlogging detection - with tweets!

The problem FloodGuard solves

Bangalore, also known as the Silicon Valley of India, is one of the fastest-growing cities in the country. While the city has witnessed rapid urbanization, it remains plagued with inadequate infrastructure and a poor drainage system which has contributed to frequent occurrences of waterlogging during the monsoon season. Waterlogging causes a huge inconvenience to residents, disrupting transportation and also posing health hazards in the form of accidents to residents who have to travel through such waterlogged areas.
We propose to help folks tackle this problem by collecting real-time data on waterlogging incidents as they occur and make them available and visible in an easy manner. And this is where crowdsourcing comes in the form of Twitter! Twitter provides a platform where users frequently share information and updates in real-time. So we decided to aggregate and analyze tweets that spoke about waterlogging, used OpenAI to determine if the tweet reported waterlogging in a certain area and plotted this data onto a map that can be referred to by residents while they planned their commute during heavy rains, thus minimizing the adverse effects of waterlogging.

Challenges we ran into

  • Twitter monitized their APIs very recently so we couldn't use them to get data on the tweets pertaining to waterlogging. Neither did any of the Open Source tools available worked perfectly well as we ran into issues repeatedly trying to use them. Finally, snscrape worked to our great luck!
  • Getting information on the location of the tweets is extremely difficult because Twitter allows users to geo-tag their tweets or we are left to depend on the user's profile's location and assume that their tweets are also based off on the same location. But we discovered that hardly 1-2% of users geotagged their tweets and users' profile's locations were hardly reliable. So we decided to focus on a few areas in Bangalore and search tweets based on their mentions in the tweet content.
  • We wanted to use Google Maps originally to plot our data on but Google Developer APIs turned out to be priced. So we had to use a python library called Folium to instead create a basic map tile and plot our data there.

Technologies used