Mapa de eventos con Python

Una forma de mostrar ciertos datos geolocalizados en un mapa, de Google, consiste en utilizar el módulo gmplot.

A continuación las instrucciones para obtener un mapa parecido a este:

mapa

 
mapa2

Primero, instale el módulo gmplot:

  1. Mediante la línea de comandos:
    pip install gmplot
  2. O, mediante PyCharm.

Vaya a File > Default Settings …  
paso1

En la ventana que aparece, seleccione la opción de Project Interpreter. Luego, de clic en el símbolo + para agregar un módulo.

paso2

Finalmente, en esta ventana, agregue el nombre del módulo: gmplot. Y, de clic en Install Packages

paso3

Luego, obtenga la posición (latitud y longitud) del cualquier lugar que desee, en el sitio: http://www.coordenadas-gps.com/

Finalmente, las instrucciones en Python para graficar.

import gmplot

#Ubicar el centro del mapa en Ecuador
#Para esto, se necesita la latitud y la longitud de Ecuador:
#latitud: -1.831239
#longitud: -78.18340599999999


#Esta funcion necesita los siguientes argumentos: latitud, longitud, zoom
gmap = gmplot.GoogleMapPlotter(-1.831239, -78.18340599999999, 7)


#diccionario de ejemplos con las latitudes y longitudes
ciudades = {

    "Guayaquil" : {"region":"costa","habitantes":2350915,"coordenada":(-2.1709979, -79.92235920000002)},
    "Quito": {"region":"sierra","habitantes":2239191,"coordenada":(-0.1806532,-78.46783820000002)},
    "Cuenca": {"region":"sierra","habitantes":505585,"coordenada":(-2.9001285, -79.0058965)},
    "Bahia de Caraquez": {"region":"costa","habitantes":20921,"coordenada":(-0.6186619,-80.42736439999999)},
    "Loja":{"region":"sierra","habitantes":214855,"coordenada":(-4.0078909,-79.21127690000003)},
    "Ambato": {"region":"sierra","habitantes":329856,"coordenada":(-1.2543408,-78.6228504)}
}

#procesamos el diccionario para tener dos listas: latitud y longitud
latitud = []
longitud = []

for key in ciudades.keys():
    lat, long = ciudades[key]["coordenada"]
    habitantes = ciudades[key]["habitantes"]

    #agregamos a la lista
    latitud.append(lat)
    longitud.append(long)

    # Marcadores de Google: marker
    #Por cada ciudad con menos de 1000000 (un millon) de habitantes
    if habitantes > 1000000:
        #vamos agregando uno a uno los datos de la latitud y longitud correspondientes
        gmap.marker(lat,long,c='red')
    elif habitantes > 100000:
        gmap.marker(lat, long, c='yellow')
    else:
        gmap.marker(lat, long, c='green')


#Mapa de calor: heatmap
#recibe dos listas: latitud y longitud
#ademas del radio (radius) de calor
#Y, la opacidad (cuan opaco) desea el mapa de calor, en general.
gmap.heatmap(latitud, longitud,radius=30, opacity=0.9)


#graficar en un archivo html
nombreDeArchivo = "ecuador.html"
print("Archivo final: "+nombreDeArchivo)
gmap.draw(nombreDeArchivo)



Publicado en coding, python | Etiquetado , , , | Deja un comentario

Rank operator is at PIG! :’)

Ok, maybe it happened some time ago (one month?). But, I was bussy!

Some good news after 2 months and a half of hard work, guided by Gianmarco De Francisci Morales, I don’t have words to thank him for his time and advices along this process.

Now, it’s time for formal documentation (working on, hopefully this week I’ll finish it! hurra!) and use it!

My pleasure:  https://issues.apache.org/jira/browse/PIG-2353

Publicado en Hadoop, Pig | Etiquetado , , | Deja un comentario

Crawling and Parsing with Java

Yes, another java crawler/parser! But, it offers something different that others: it imitates the DOM with OO, in order to parse content.
And of course, you could do it «on-line» or by using a raw file.

So, make some soup and hands on JSoup!

Publicado en Varios | Deja un comentario

Finding names on a raw text

Sometimes is difficult to find out names on a text. Maybe the most naïve way is to get all the words that starts with a capital letter and that’s it! But, it you check on this paragraph you could find names like «Maybe» or «But» (???) So, fortunately, there’re more brilliant ideas like this, on which is used regex with some particular rules, like:

  • A name is composed by two word (minimum) that starts with a capital letter each one.
  • Maybe can be composed by more than two words, like «James Van de Putte» or something similar.
  • Multiple words separated by whitespace.
  • … and so.

This is the final regex string used to parse names (namely, composed names) from a text.

[A-Z]([a-z]+|\.)(?:\s+[A-Z]([a-z]+|\.))*(?:\s+[a-z][a-z\-]+){0,2}\s+[A-Z]([a-z]+|\.)

 

Publicado en Varios | Etiquetado , , | Deja un comentario

Install s3cmd tools on OSX

After looking for a way to access to s3 bucket, I found this self-explanatory site of how to install s3cmd on OSX

Publicado en ec2 | Etiquetado , , | Deja un comentario