ÎncepețiÎncepe gratuit

Calcularea centroidului

Bounding box-ul poate acoperi o zonă de la un bloc de clădiri până la un întreg stat sau chiar o țară. Pentru simplitate, o modalitate de a gestiona aceste date este să transformăm bounding box-ul în ceea ce se numește centroid, adică centrul acelui bounding box. Calculul centroidului este simplu – determinăm punctele de mijloc ale liniilor formate de latitudini și longitudini.

numpy a fost importat ca np.

Acest exercițiu face parte din cursul

Analiza datelor din social media în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Obține primul set de coordonate din JSON-ul place.
  • Calculează longitudinea centrală adunând lista longitudinilor și împărțind la doi.
  • Fă același lucru pentru latitudini.
  • Aplică funcția calculateCentroid() pe coloana place.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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(____)
Editează și rulează codul