MulaiMulai sekarang secara gratis

Menghitung centroid

Bounding box dapat berkisar dari satu blok kota hingga satu negara bagian atau bahkan negara. Demi kesederhanaan, salah satu cara menangani data ini adalah dengan menerjemahkan bounding box menjadi yang disebut centroid, yaitu titik tengah bounding box. Perhitungan centroid cukup langsung — kita menghitung titik tengah garis yang dibentuk oleh lintang dan bujur.

numpy telah diimpor sebagai np.

Latihan ini adalah bagian dari kursus

Menganalisis Data Media Sosial dengan Python

Lihat Kursus

Petunjuk latihan

  • Dapatkan himpunan koordinat pertama dari JSON place.
  • Hitung bujur tengah dengan menjumlahkan daftar bujur dan membaginya dengan dua.
  • Lakukan hal yang sama untuk lintang.
  • Terapkan fungsi calculateCentroid() pada kolom place.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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(____)
Edit dan Jalankan Kode