ComeçarComece de graça

Calculando o centróide

O retângulo delimitador (bounding box) pode variar de um quarteirão a um estado inteiro ou até um país. Para simplificar, uma forma de lidar com esses dados é traduzir o bounding box para o que chamamos de um centroide, ou o centro do retângulo. O cálculo do centroide é direto: calculamos os pontos médios das linhas criadas pelas latitudes e longitudes.

numpy já foi importado como np.

Este exercício faz parte do curso

Analisando dados de mídias sociais em Python

Ver curso

Instruções do exercício

  • Obtenha o primeiro conjunto de coordenadas do JSON de place.
  • Calcule a longitude central somando a lista de longitudes e dividindo por dois.
  • Faça o mesmo para as latitudes.
  • Aplique a função calculateCentroid() à coluna place.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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 e executar o código