 Hi, today I'm going to be talking about the Chennai flood map, which is a map that we built in the winter of 2015 when there was large scale flooding in Chennai. So using custom tools, some failed experimentation and lots of heart, we built this project in under two days. We were pretty fascinated by how useful the project turned out to be and how simple it was to actually build it. So I'm going to be talking about the entire process of how this was done. This is also the first public tool that was built by civilians, for civilians during an urban natural disaster in India. Also, my name is Aruna. I work as an infrastructure engineer at Mapbox in their Bangalore office. So Mapbox is a company built custom libraries and tools for anybody to be able to integrate maps and map-based services such as search and routing into their product. So all of our base geographical data comes from this project called the OpenStreetMap project, which is a super large open crowdsourced aggregated geospatial database. And this particular crowdsourced aspect is really significant. So I find maps extremely beautiful. And for me, this beauty is heightened by the truth, the scale, and the diversity of the data that makes up a map. So any visual that you're really seeing on the map, like the most beautiful street networks, actually exists somewhere out there. And because of this diversity and scale of data, this human aspect of collecting the data, as well as the distributed aspect of collecting the data is really significant, even in today's term, times of deep learning and computer vision. And they played a pretty significant part as we build the Chennai flood map. So before I get into the computing, some context and some storytelling. So the city of Chennai is a coastal city that lies in the southeast of India. It is also historically one of the four large metropolitan cities in the country. And it has a population density that's comparable to New York. In 2015, Chennai housed about 10 million people. In that very year, Chennai was ravaged by large scale flooding. And these floods left many citizens displaced and made evacuation and aid necessary. And because of the lack of good information systems through which the government could communicate with the citizens, it also made access to data such as when was the flood reaching peak levels? And how do I access the safe roads? Or where are the flood relief centers? Access to this sort of information was also really hard. And back then, about 362 kilometers away from Chennai in the Bangalore office of Mapbox, we had this tradition of running hack days, right? So where we would all focus our energies on using custom libraries and tools that may or may not be related to the work we did at Mapbox. But we would focus on actively building small research prototypes or like little projects where we could experiment using technology. At this time, a friend of mine at The Wire, which is an Indian media outlet, was putting together this map, which is based off of a Google Map base map. And he was trying to collect data about waterlogged roads, roadblocks, and safe roads. So because of the limited tooling around Google Maps, I found the design of this app pretty clunky, like because you would want to see streets, but you're actually, the streets themselves are represented as points. And further, because of the proprietary nature of the tooling and the data associated with Google Maps, the license around the data that you're adding is a little ambiguous. To fix all of these problems, I decided to make my own version of the flood map. And what happened was, we decided that we would use a very simple interface where someone would select or deselect a road to mark it as flooded or not flooded. So a friend of mine from work, Arun and I decided to join together and do this. He decided to go ahead and design the base map, whereas I designed the map interface. And we built a very hacky prototype in about half a day as hack days usually go. A week after this, we realized that some other folks who were crowd sourcing data for nonprofit agencies on the field, they were crowd sourcing data about the flood relief centers. They found out that these tools were actually very, very useful. So this reinvigorated our earlier efforts around building the flood map. And we decided to go ahead and build it to fruition. So the app itself had to be super simple and universal in usage. So the only element of interactivity that we wanted to add was the simple process of selecting and deselecting the street to add this metadata of whether it was flooded or not flooded. And after this, we also decided that there were two components to designing this whole project, which was the map design and the map interface. So if you think of a map, it's kind of similar to a really nicely layered chocolate cake, the base layer of the map is just the base data that's coming from some sort of geographic data set, which in our case was open street map. And on top of this base map, you can actually add additional data to make your visualization richer and to like provide more information through your map. So in our case, these additional layers of the cake came from satellite data that was provided by the United Nations through this data set called Unit R, and it contains data about floods and water logging, et cetera. And the second set of data sets we used came from the satellites run by the Indian Space Research Organization, which were also collecting data about water logging and elevation, et cetera, in the city of Chennai. So we picked this base map, custom styled it to our specifications and then added more of this raster data set on top of the map. To design the map itself, we used Mapbox Studio, which is an interactive editor that allows you to layer your data on top of the map, and it does this using a very visual interface so literally anybody can design the map. And once you've designed the map, every map can be identified using a custom ID and an access token that identifies the creator. But this map is static, right? So to add any layers of interactivity to the map, you need to use this library called Mapbox GLJS. So Mapbox GLJS is an open-source library and it allows you to add many, many layers of interactivity to your map. In the case of the Chennai flood map, we mostly added three different kinds of interactivity, and I have some examples to show you what that looks like. So one of these is the fly to location. So you can click a button and it'll actually fly to that particular location, which is pretty cool. The second one is runtime styling. So as and when the user is using the map, they can actually style certain specific data on the map to their own specification if you provide this feature. And the third was very significant for the Chennai flood map, which was that you could access features under the mouse pointer. So in our case, whenever someone would click a street, we would know the exact street that they had clicked and we would add an additional metadata to this feature that would say whether the street was flooded or not. So because we were adding this additional metadata, it brought this complication of using, like setting up our own backend, right? And to start off with, we were extremely pessimistic about how much this app would be used because we weren't doing any PR for it. So we actually set up a Hetzner box with a very simple Django server that would serve and retrieve requests based on whoever was adding features to the map. But then everything blew up and we were getting so many requests that our Hetzner box kept crashing and we had to figure out a solution. And what we realized was at that point, there was a feature from Mapbox called the Dataset API, which had not been released yet, but because we were working in the company, like someone told us, oh, you should probably use the Dataset API. And the Dataset API allows you to create, modify, and delete datasets on the fly. And you don't have to set up your own server because all of this is taken care of by Mapbox on the cloud. And at the end, we put together all of this on a very simple HTML5 JavaScript base and hosted it using GitHub Pages. The app was widely used during peak flooding, there were about 350,000 people who were using the app and during the entire course of the floods, over 600,000 people used the map. I think this was also possible because Chennai is an urban city, so the access that an average person has to a smartphone is pretty high. And further, the fact that this was a web app but was still usable on a phone, I think also made a difference. So ever since the project was built in 2015, it's had several spinoffs. Last year, in 2017, there were a couple of floods in Houston and in Peru. And notably, during both these times, there were folks that decided to fork the flood map and release it out there to the public. Yeah, and that brings me to the end of my talk. I don't have any demos of the map here so that you can go and look at it. The map is available on GitHub. All the code is open source. I really hope that this sort of excites you and hopefully convinces you of the fact that even really small tools when put out there can be really useful. So thank you. Thank you.