ComenzarEmpieza gratis

Calcular el centroide

La caja envolvente (bounding box) puede abarcar desde una manzana de una ciudad hasta un estado entero o incluso un país. Para simplificar, una forma de manejar estos datos es traducir la caja envolvente a lo que se llama un centroide, es decir, el centro de la caja. El cálculo del centroide es sencillo: calculamos los puntos medios de las líneas creadas por las latitudes y longitudes.

numpy se ha importado como np.

Este ejercicio forma parte del curso

Análisis de datos de redes sociales con Python

Ver curso

Instrucciones del ejercicio

  • Obtén el primer conjunto de coordenadas del JSON place.
  • Calcula la longitud central sumando la lista de longitudes y dividiéndola entre dos.
  • Haz lo mismo con las latitudes.
  • Aplica la función calculateCentroid() a la columna place.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

def calculateCentroid(place):
    """ Calculates the centroid from a bounding box."""
    # Obtain the coordinates from the bounding box.
    coordinates = place[____][____][0]
        
    longs = np.unique( [x[0] for x in coordinates] )
    lats  = np.unique( [x[1] for x in coordinates] )

    if len(longs) == 1 and len(lats) == 1:
        # return a single coordinate
        return (longs[0], lats[0])
    elif len(longs) == 2 and len(lats) == 2:
        # If we have two longs and lats, we have a box.
        central_long = ____.____(____) / ____
        central_lat  = ____.____(____) / ____
    else:
        raise ValueError("Non-rectangular polygon not supported: %s" % 
            ",".join(map(lambda x: str(x), coordinates)) )

    return (central_long, central_lat)
    
# Calculate the centroids of place     
centroids = tweets_sotu[____].apply(____)
Editar y ejecutar código