Geocodificación con Geopy en Python

Ya he demostrado varias posibilidades de geocodificación de datos espaciales en forma de nombres de ciudades o localidades en R, utilizando APIs como la proporcionada por Open Street Map.

En este post demostraré la posibilidad de geocodificar nombres de localidades en Python, utilizando Geopy. Geopy es un módulo de Python que permite la geocodificación de cadenas proporcionando acceso a varios servicios de geocodificación.

A continuación importo Geopy (soporta el comando pip install) y lo utilizo para geocodificar una lista de nombres de ciudades utilizando el servicio Nominatim. Este es un servicio basado en Open Street Map.

# importando Geopy
import geopy
# obtener un manejador para un objeto de servicio de Nominatim
service = geopy.Nominatim(user_agent = "myGeocoder")
# geocodificar el nombre de una ciudad utilizando el servicio Nominatim (es decir, OSM)
service.geocode("Berlin, Germany")
Location(Berlin, Deutschland, (52.5170365, 13.3888599, 0.0))

La función geocode() devuelve un tipo de datos especial de tipo localización. Un objeto de localización tiene varios atributos:

# creación de otro objeto de localización mediante la geocodificación del nombre de la ciudad de Berlín en Alemania utilizando el servicio Nominatim
locationObj = service.geocode("Berlin, Germany")
# latitud
print(locationObj.latitude)
# longitud
print(locationObj.longitude)
52.5170365
13.3888599

Utilizando estas coodinadas de latitud y longitud se podría ahora, por ejemplo, colocar un marcador en un mapa, utilizando el módulo Folium en Python en combinación con Geopy:

# import folium
import folium
# crear un mapa base centrado en Berlín
mapObj = folium.Map(location = [locationObj.latitude,locationObj.longitude], zoom_start = 5)
# crear un objeto marcador para Berlín
markerObj = folium.Marker(location = [locationObj.latitude,locationObj.longitude])
# añadir marcador al mapa
markerObj.add_to(mapObj)
# mostrar mapa
mapObj

You May Also Like

Leave a Reply

Leave a Reply

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.