Visualización de datos geoespaciales usando Folium en Python

Una de las tareas más importantes para alguien que trabaja en conjuntos de datos con países, ciudades, etc. es comprender las relaciones entre la ubicación física de sus datos y su contexto geográfico. Y una de esas formas de visualizar los datos es usando Folium .

Folium es una poderosa biblioteca de visualización de datos en Python que se creó principalmente para ayudar a las personas a visualizar datos geoespaciales. Con Folium, se puede crear un mapa de cualquier lugar del mundo. Folium es en realidad un contenedor de python para leaflet.js, que es una biblioteca de javascript para trazar mapas interactivos.

Ahora veremos una forma sencilla de trazar y visualizar datos geoespaciales. Usaremos un conjunto de datos que consta de tasas de desempleo en los EE. UU.

Instalación

Si folium no está instalado, simplemente puede instalarlo usando cualquiera de los siguientes comandos: 

$ pip install folium

OR

$ conda install -c conda-forge folium

Usando folium.Map() , crearemos un mapa base y lo almacenaremos en un objeto. Esta función toma las coordenadas de ubicación y los valores de zoom como argumentos.

Sintaxis: folium.Map( ubicación,tiles= “OpenStreetMap” zoom_start=4 )

Parámetros:

  • ubicación : lista de coordenadas de ubicación
  • mosaicos : el valor predeterminado es OpenStreetMap. Otras opciones: tamen Terrain, Stamen Toner, Mapbox Bright, etc.
  • zoom_start : int

Código:

Python3

# import the folium, pandas libraries
import folium
import pandas as pd
  
# initialize the map and store it in a m object
m = folium.Map(location = [40, -95],
               zoom_start = 4)
  
# show the map
m.save('my_map.html')

Producción:

Importar conjunto de datos usando pandas:

Ahora, importaremos los conjuntos de datos utilizando la biblioteca Pandas .

Python3

# getting the data
url = (
    "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)

Creación de mapa con conjunto de datos:

Una vez que tengamos todos los datos que tenemos, visualizaremos estos datos usando mapas de coropletas. Los mapas de cloropletas representan áreas divididas en varios colores según la variable estadística que se les presenta. Aquí, usamos la tasa de desempleo en los EE. UU. como un medio para dividir las regiones en diferentes colores.

Usando folium.Choropleth() , podemos trazar el mapa final. Los detalles de cada atributo se dan en el propio código. El parámetro ‘ key on’ se refiere a la etiqueta en el objeto JSON (state_geo) que tiene el detalle del estado como el ID de función adjunto a la información de la frontera de cada país. Nuestros estados en el marco de datos deben coincidir con el ID de característica en el objeto json.

Sintaxis: folium.Choropleth(geo_data,name,data,columns,fill_color, fill_opacity, line_opacity, key_on,legend_name)

Parámetros:

  • geo_data: un conjunto de regiones geográficas y sus coordenadas de límite
  • name: String (nombre de nuestro mapa)
  • datos: un valor numérico para cada región, utilizado para el color
  • columnas: lista (columnas en las que necesitamos trabajar)
  • fill_color: Color del mapa, por ejemplo: YlGn
  • fill_opacity: opacidad de los colores rellenos
  • line_opacity: opacidad de las líneas del borde
  • legend_name: String

Finalmente, podemos guardar nuestro mapa como un archivo HTML.

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')

Producción:

Publicación traducida automáticamente

Artículo escrito por nityaak5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *