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
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 coloanaplace.
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(____)