91 091 28 42
info@datahack.es

Explicación de cómo geolocalizar visualizaciones en un mapa
15 Jun 2017

Para vosotros visualizadores

/
Posted By
/
Comments0
/
Want create site? Find Free WordPress Themes and plugins.

Cómo geolocalizar visualizaciones

Cómo gelocalizar visualizaciones, uff de solo pensarlo ya comienza el agobio. Cuando emprendemos un proyecto consistente en obtener un dataset que nos guste. Hay que dejarlo cuco y limpito para, finalmente, visualizarlo con nuestra herramienta favorita. Parece que (si la temática lo permite) el prescindir de un mapa de geoposicionamiento de los datos es algo que de algún modo deja coja nuestra visualización.

Y es que cambia mucho cuando aquel dataset que estaba manga por hombro, de pronto lo vemos dispuesto sobre un mapamundi. Más allá de los insights que podemos sacar, es incluso la curiosidad  de ver si nuestra ciudad, provincia, estado o país tiene más o menos cantidad de “algo” que la del vecino.

El problema es que ya es bastante complicado encontrar un conjunto de datos motivante. Como para además cada registro vaya rigurosamente acompañado de sus correspondientes coordenadas (latitud y longitud). Y que estas permitan a la herramienta de visualización pintar el evento correspondiente sin problemas. Es cierto que algunas herramientas se arreglan con la ciudad, la provincia, el estado, etc. Pero esto no es siempre así y algunas ciudades que son más pequeñas pueden no ser reconocidas.

Si nuestro dataset contiene una dirección física (bien sea la calle, la provincia, el pueblo, la ciudad… algo) podemos obtener las coordenadas asociadas a la misma mediante distintas librerías y lenguajes. Es entonces cuando nos referimos a una de estas combinaciones: Python y Geopy.

Geopy es un cliente de Python que nos permite hacer peticiones de geolocalización contra distintos servicios como por ejemplo Google Maps, Nominatim, o Bing. Todo ello permitiendo abstraerse de sus APIs implementando al menos dos métodos: geocode (que permite obtener coordenadas a partir de una dirección física), o reverse (con el que obtener la dirección física a partir de las coordenadas).

Empezamos con el paso a paso

Hemos hecho la prueba con Windows 10 y las siguientes versiones de Python y geopy.

Cómo geolocalizar visualizaciones en un mapa con Geopy, paso 1

A continuación, vamos a ver un posible ejemplo de uso:

  • Tenemos un dataset con tres elementos geográficos: país, estado y ciudad (o pueblo); lo primero de todo será cargar el dataset ayudándonos de la función read_excel de Pandas.

Cómo geolocalizar visualizaciones en un mapa con Geopy, paso 2

  • Este es el aspecto que presenta:

Cómo geolocalizar visualizaciones en un mapa con Geopy, paso 3

  • Incluiremos en nuestro dataframe de Pandas dos nuevas columnas para la latitud y la longitud que inicializaremos a “NA” a la espera de que obtengamos los valores para las mismas.

Cómo geolocalizar visualizaciones en un mapa con Geopy, paso 4

  • Y aquí viene lo bueno: en este caso tiraremos contra Nominatim (Open Street Map); declararemos nuestro geocoder configurando el timeout a None (en este caso no nos importa esperar si la respuesta se demora). Recorreremos cada registro del dataframe haciendo una petición a nuestro geocoder con el método geocode, el cual recibirá una cadena compuesta por los tres elementos geográficos de los cuales disponemos, separados por espacios.

Cómo geolocalizar visualizaciones en un mapa con Geopy, paso 5

  • Por supuesto esto no es infalible y si en nuestro dataset hay ciudades cuyos nombres están mal tecleados, el geocoder no podrá encontrar sus coordenadas, de ahí que hayamos rellenado con “nope” aquellos casos en los que no sea posible la geolocalización (como vemos hay unos cuantos).Cómo geolocalizar visualizaciones en un mapa con Geopy, paso 6
  • Para terminar, guardamos nuestro dataframe en un Excel.

Cómo geolocalizar visualizaciones en un mapa con Geopy, paso 7

Y esto ha sido todo, esperamos que esto os ayude a sacarle más partido a vuestros datasets. Si tenéis vuestro propio truco o vuestras propias librerías favoritas no dudéis en comentárnoslo, ¡así aprendemos todos!

Did you find apk for android? You can find new Free Android Games and apps.

Leave a Reply