Visualizing Geospatial Data using Folium in Python

30 Jun, 2021
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.
Folium is a powerful data visualization library in Python that was built primarily to help people visualize geospatial data. With Folium, one can create a map of any location in the world. Folium is actually a python wrapper for leaflet.js which is a javascript library for plotting interactive maps.
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)
Parameters:
location: list of location coordinates
tiles: default is OpenStreetMap. Other options: tamen Terrain, Stamen Toner, Mapbox Bright etc.
zoom_start: int
Code:
Python3
# import the folium, pandas librariesimport foliumimport pandas as pd  # initialize the map and store it in a m objectm = folium.Map(location = [40, -95],               zoom_start = 4)  # show the mapm.save('my_map.html')
Output:
Now, we shall import the data sets using the Pandas library.
Python3
# getting the dataurl = (    "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data")state_geo = f"{url}/us-states.json"state_unemployment = f"{url}/US_Unemployment_Oct2012.csv"state_data = pd.read_csv(state_unemployment)
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)
Parameters:
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.
Python3
folium.Choropleth(          # geographical locations    geo_data = state_geo,                         name = "choropleth",          # the data set we are using    data = state_data,                            columns = ["State", "Unemployment"],               # YlGn refers to yellow and green    fill_color = "YlGn",                          fill_opacity = 0.7,    line_opacity = .1,      key_on = "feature.id",    legend_name = "Unemployment Rate (%)",).add_to(m)                                   m.save('final_map.html')
Output:
Picked
python-modules
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.