Procesar CSV para Geolocalizar

Nótese que una de las columnas incluye más de un dato. Esto es un error (a veces intencional) que dificulta el análisis de datos. La columna Escuela incluye: - El nombre de la escuela - La dirección de la escuela - En algunos casos el barrio

Google Sheets (la planilla de cálculo incluida en Google Drive) incluye una herramienta para estos casos. Excel y LibreOffice ofrecen posibilidades similares en este sentido.

Como vamos a procesar la columna Escuela no es mala idea hacer una copia de ella para referencias futuras en la medición de la efectividad de los procesos que vamos a usar.

Hacemos un click en el encabezado de la columna Escuela para seleccionarla. En el menú datos elegimos la opción dividir texto en columnas. Nos ofrecera como separador predeterminado la coma.

dividir

dividir

Nosotros cambiamos eso por un separador personalizado. Elegimos ” - “ (espacio, guión, espacio) que es el que detectamosmirando los datos.
Se requiere una segunda división sobre la segunda columna resultante ya que algunas dirección es incluyen el barrio (que no ayuda a la geolocalización) con el prefijo “B°”. Dividir entonces esta columna con el separador “B°”.

Agregar en la planilla de cálculo las columnas Ciudad, Provincia y Pais. A la columna Ciudad igualarla a la columna. Si bien no siembre es necesario la provincia y el país ya que algunos entornos de geolocalización permiten especificarlo nunca está de más.

La columna Ciudad no es tan facil de llenar. En Córdoba los circuitos son localidades. Esto ayuda en general salvo en la Ciudad de Córdoba donde los circuitos electorales tienen nombres no formales vinculados algunas veces al barrio pero no son útiles a los fines de la geolocalización. Todas las escuelas de la seccional 1, sin importar el circuito, deben decir Córdoba en la columna Ciudad.

En definitiva, la columna Ciudad debe decir Córdoba para la seccional “Capital” y copiar la columna Circuito Nombre en todos los otros casos. Esto se puede programar con la función:

=if(B2="CAPITAL";"Córdoba";D2)

Para algunos sitios se requiere que todos los datos de una geolocalización este en una sola columna. Es util por esto agregar una columna más al final que se llame por ejemplo Geo y que agrupe a las columnas - Direccion - Ciudad - Provincia - País - NO USAR BARRIO salvo que algún entorno mejore la geolocalización, en general esto no sucede

=CONCATENATE(F2;", ";H2;", ";I2;", ";J2)
Descargar esta planilla como CSV para llevar a alguna plataforma de geolozalización.
Descargar trabajo hecho: csv para geo.

Geolocalizando en Fusion Tables

Desde Google Drive se puede crear un nuevo archivo de Fusion Tables. Este requiere que se suba un archivo CSV o directamente se le indique una planilla de Google (la que hicimos recién sirve).

Una vez subido se debe dar click derecho a la columna con todos los datos geográficos juntos (la última que se hizo con la función contatenate) para indicar que es de tipo geográfico.
Esto hará que se pinte de amarillo y nos permitirá inciar la geolocalización (para estas 1186 escuelas demorará una o más horas).

Finalmente queda así: Ver Mapa.

mapa-fusion

mapa-fusion

Pros: - Permite otros tipos de gráficos además de mapas. - Estos gráficos se pueden publicar y embeber en ortos sitios.

Problemas: - No permite exportar coordenadas - Muy limitada capacidad de estilos según datos. - La herramienta no recibe actualizaciones hace mucho. Pareciera que Google no la va a continuar

Geolocalizando con Google MyMaps

Con Google MyMpas se pueden construir mapas gráficamente superadores de Fusion Tables y el entorno colaborativo es interesante (con la misma lógica que Google Drive).

Al igual que Fusion Tables permite GeoLocalización automática sin coordenadas y solo con datos de texto. La geolocalización aparenta ser bastante más rápida que Fusion Tables.

Finalmente queda así: Ver mapa

mymaps

mymaps

Pros: - Permite iconos variados según algún campo. - La edición colaborativa es muy interesante. - Permite múltiples capas de datos geográficos.

Problemas: - No permite exportar coordenadas.

Geolocalizando en CartoDB

Carto genera mapas más elegantes y mucho más potentes a la hora de dar estilos por valores de la tabla. Permite trabajar gratis con un límite interesante en general pero mas limitado en lo que hace a la geo referenciación. Teniendo las coordenadas (que aún no tenemos ni pudimos exportar de las otras dos plataformas) es la solución mas completa para visualizar mapas de este tipo.

Finalmente queda así: Ver mapa

mymaps

mymaps

Pros: - Amplias posibilidades para dar estilos a los puntos segun variables. - Si ya se cuentan con las coordenadas es muy potente. - Permite múltiples capas de datos geográficos.

Problemas: - Servicio de Geolocalización pago. Límite gratuito muy bajo. - La geolocalización funcionó muy pobremente a pesar del límite.

Geolocalizar con el API de Google sin ser desarrollador

Una solución intermedia es usar un script (similar a los macros de Excel) en Google Sheets que permite hasta 1000 Geolocalizaciones por día. Es muy útil y funciona. Más info aquí.
Este metodo es un pequeño programa que se puede anexar a cualquier planilla de Google Drive. Para agregarlo desde el menú Herramientas se elige Editor de secuencia de comandos y se copia el texto del archivo geolocalizar.gs del repositorio de la Municipalidad de Córdoba.
Puede copiarse directamente desde aquí.
Una vez grabado, aparecerá un nuevo menú en la planilla de Google.
Para usar este nuevo menú se requieren cinco columnas en blanco a la derecha de la que incluye nuestro campo completo (direccion, ciudad, provincia, país) ya que este programa completará en esos espacios. Además de la latitud y la longitud se entregan algunos datos útiles más.
gf

gf

La efectividad no es excelente pero es bastante buena. En los casos en que no es exacta, lo indica. De esta forma se puede entonces pasar por un proceso manual solo para los casos en los que sea necesario.
Finalemente de esta forma se pudieron obtener la gran mayoría de las geolocalizaciones.
Antes de descargar el archivo asegurarse de usar la configuración regional de Estados Unidos ya que CartoDB prefiere los numeros con separación decimal de punto. Para esto en la planilla de Google Drive se va al menú Archivo -> Configuración del documento.
Es importante conocer cuales son las diferencias en la configuraciones regionales ya que son motivo de numerosos dolores de cabeza.

Ahora Carto no requiere interferir la geolocalizazión y detecta a la primera las columnas que representan las coordenadas. Con este archivo se puede hacer un nuevo mapa en Carto con resultados muy superiores.

Finalmente queda así: Ver mapa.

Mapa OK carto

Mapa OK carto

Código para embeber:

<iframe width="100%" height="520"
    frameborder="0"
    src="https://hudson.carto.com/builder/9f30c071-f758-4286-b408-8f8fa2db5c10/embed"
    allowfullscreen webkitallowfullscreen mozallowfullscreen oallowfullscreen msallowfullscreen>
</iframe>

Usar este CSV con latitud y longitud incluida agiliza la carga en Google MyMaps o cualquier otra plataforma ya que no será necesario mapear las direcciones.

Geolocalizar direcciones es complejo

Para desarrolladores se recomiendan usar los webservices de Google u OpenStreetMaps con scripts que gradualmente releven los datos necesarios.

Otra posibilidad con mayor complejidad técnica es seguir los pasos que describió Manuel Aristarán para cruzar estos datos con la base de datos de escuelas argentinas realizada en 2013. Con esta aplicación Donde voto? es posible hacer match entre los nombres de las escuelas oficiales y los establecimientos de una carta marina. Si bien no es perfecto supera la efectividad en la geolocalización de otros métodos.
En base a este trabajo quedo disponible tambien otro resumen de datos de las escuelas argentinas con mapas incluidos.