Visualizing Geospatial Data using Folium in Python
One of the most important tasks for someone working on datasets with countries, cities, etc. is to understand the relationships between their data’s physical location and their geographical context. And one such way to visualize the data is using Folium.
We shall now see a simple way to plot and visualize geospatial data. We will use a dataset consisting of unemployment rates in the US
If folium is not installed, one can simply install it using any one of the following commands:
$ pip install folium OR $ conda install -c conda-forge folium
Using folium.Map(), we will create a base map and store it in an object. This function takes location coordinates and zoom values as arguments.
Syntax: folium.Map(location,tiles= “OpenStreetMap” zoom_start=4)
- location: list of location coordinates
- tiles: default is OpenStreetMap. Other options: tamen Terrain, Stamen Toner, Mapbox Bright etc.
- zoom_start: int
Import Dataset using pandas:
Now, we shall import the data sets using the Pandas library.
Creating Map with Dataset:
Once we have all the data we have, we will visualize this data using choropleth maps. Chloropleth maps represent divided areas in various colors based on the statistical variable presented to them. Here, we use the unemployment rate in the US as a means to divide regions into different colors.
Using folium.Choropleth(), we can plot the final map. The details of each attribute are given in the code itself. The ‘key on’ parameter refers to the label in the JSON object (state_geo) which has the state detail as the feature ID attached to each country’s border information. Our states in the data frame should match the feature ID in the json object.
Syntax: folium.Choropleth(geo_data,name,data,columns,fill_color, fill_opacity, line_opacity, key_on,legend_name)
- geo_data: a set of geographic regions and their boundary coordinates
- name: String (name of our map)
- data: a numeric value for each region, used for the color
- columns: list (columns we need to work on)
- fill_color: Color of the map, eg: YlGn
- fill_opacity: opacity of the colors filled
- line_opacity: opacity of the border lines
- legend_name: String
Finally, we can save our map as an HTML file.