UNICEF’s Magic Box Using Open Source by Red Hat and Uber and Big Data by Facebook to Map for EmergenciesSix weeks ago I wrote an article about a health specialist at UNICEF named Sudha. She wanted a map of Malawi and all of its health facilities to add to a slide deck. The article described how we might customize kepler.gl, an open source geospatial toolbox by Uber, to enable UNICEF staff to create and share interactive maps.This article describes some of what we’ve done so far.I work on a project at UNICEF called Magic Box. It’s about ingesting all types of data from the public and private sector, and applying data science to improve programmatic response in country offices.An example of Magic Box might be:Advising a government on what which schools to prioritize for adding connectivity and infrastructure.Determining where to setup the next Ebola response center during an outbreak.Schools in Kyrgyzstan as data points and clusters colored by level of connectivity to the internet (provided by the Ministry of Education).We recently completed a prototype, as part of a collaboration with Red Hat Innovation Labs, to map schools and connectivity in Colombia for disaster preparedness.The map started out with:school locations — Ministry of Educationinternet connectivity scores — Ministry of ICTreports of violence and natural disaster, aggregated at the country level — UMAIC.Following the Red Hat engagement, we further added cell phone coverage provided by Facebook for a school mapping preparedness project, shared through Facebook disaster maps, and baseline mobility provided by Telefonica. We also ported the app to represent data for Ebola affected regions in Central Africa.2g, 3g, and 4g coverage across Colombia provided by Facebook (left). Individual schools as points colored by level connectivity (Right).Population displacement data provided by Facebook was used to prioritize the available response and support services to communities displaced by the Palu tsunami.As more country offices look to us for interactive maps that display various types of data, our software development team is opting to deliver apps based on configurable frameworks rather than code from scratch.Kepler.gl is a front end application that hosts all data in the browser. We’ve added a backend so that users can import data sets direct from Magic Box. The first data set we’ve connected are country borders.A feature we have added to import shapefiles from an external source.Bangladesh at admin level 3.You can see this feature live here, and you can clone a version of this app here. Be sure to checkout dev branch.It was coded by fellow software developer, Marcella Maki, and two visiting developers, Thoa Ta and Courage Angeh. It was added using dependency injection. There are many more features we would like to add, so please keep reading if you’d like to contribute.Open Source Community EngagementWhenever possible, we add sample data sets to our repositories in case external developers want to help us code new features.The shapefiles in the live demo are saved in Azure File Storage, where a lot of Magic Box data resides. However, in the backend, there is a public directory with sample shapefiles:./server/public/shapefiles/countries.The app checks to see if you have credentials in ./server/azure/config.js. If you don’t, then only the shapefiles in public are served (currently only Sierra Leone).If you would like to code with us, please visit our magicbox-kepler-demo issues board and chat with us here.About the dataThe country shapefiles are originally provided by gadm.org. Here is code I wrote, maybe two years ago, to download them all (not sure if it still works).We converted them from .shp to topojson before saving in the cloud. This is because topojson is significantly smaller in size than geojson, which is what shapefiles must get converted to in the browser before loading into kepler.Using GADM is just a start as I’m not aware of any single source for the most recent and accurate political borders for every country. Jan Burdziej, a GIS expert who works for UNICEF HQ out of Poland, is working on an internal geospatial server to store and share geographical data, mainly admin boundaries and points of interest, for all UNICEF platforms. One of the issues he’s trying to tackle is how to handle admin boundary changes over time. Currently he sources most shapefiles from UNOCHA’s HDX.What’s next for data?Population — Aggregate population (ex: worldpop, Facebook population density data) by shapefiles. Data can be in CSV or DB and is served via API and combined with shapefile in browser before loading to kepler.Schools — Fetch schools by country from our API. This instance is protected, but you can clone this project and develop with the sample dataset. You can read about the ingestion process, which includes geo-validation, here.Mobility — Amadeus provides UNICEF with weekly global airport to airport mobility. This repo aggregates it to admin 1, which is state or province level. Sample data soon to come. We also have baseline mobility from Telefonica (Natural Disaster project), as well as this sample dataset for Brazil (Zika project) which is the product of a gravity model based on weather tower locations and population points throughout the country.Mobility — Facebook also shares data at a neighborhood level through Facebook Disaster Maps.Features requested by the data science teamGiven a csv of points and a geojson shapefile, create a clipped voronoi tessellation in the form of geojson #46.Aggregate polygons of one shapefile by another #44Identify populations X kilometers from nearest health facility #43Create a deck.gl visualization as an alternative kepler mobility layer #47CreditsClara Palau Montava — Magic Box product leadNaroa Zurutuza — Applied AI, Information Poverty and School Mapping LeadAditi Poddar — Magic Box Partnerships SpecialistWithout them, and the rest of the Magic Box team, I would have nothing to write about.