Memvalidasi data Insight Tempat menggunakan ID Tempat sampel

Dalam dokumen ini, Anda akan mempelajari cara menggunakan data ID Tempat sampel dari Insight Tempat, menggunakan Fungsi Jumlah Tempat, bersama dengan pencarian Detail Tempat yang ditargetkan untuk membangun keyakinan terhadap hasil Anda.

Peta panas kepadatan tempat di London, dengan penanda individual yang ditumpuk untuk memvalidasi data statistik.

Pola Arsitektur

Pola arsitektur ini memberi Anda alur kerja yang dapat diulang untuk menjembatani kesenjangan antara analisis statistik tingkat tinggi dan verifikasi kebenaran nyata. Dengan menggabungkan skala BigQuery dengan presisi Places API, Anda dapat memvalidasi temuan analisis dengan yakin. Hal ini sangat berguna untuk pemilihan lokasi, analisis pesaing, dan riset pasar yang sangat mengandalkan data yang dapat dipercaya.

Inti dari pola ini melibatkan empat langkah utama:

  1. Melakukan Analisis Skala Besar: Gunakan Fungsi Jumlah Tempat dari Insight Tempat di BigQuery untuk menganalisis data tempat di geografi yang luas, seperti seluruh kota atau wilayah.
  2. Mengisolasi dan Mengekstrak Sampel: Mengidentifikasi area yang diinginkan (misalnya, "hotspot" dengan kepadatan tinggi) dari hasil gabungan dan ekstrak sample_place_ids yang disediakan oleh fungsi.
  3. Mendapatkan Detail Fakta Lapangan: Gunakan ID Tempat yang diekstrak untuk melakukan panggilan bertarget ke Place Details API guna mengambil detail dunia nyata yang lengkap untuk setiap tempat.
  4. Buat Visualisasi Gabungan: Susun data tempat yang mendetail di atas peta statistik tingkat tinggi awal untuk memvalidasi secara visual bahwa jumlah gabungan mencerminkan kenyataan di lapangan.

Alur Kerja Solusi

Alur kerja ini memungkinkan Anda menjembatani kesenjangan antara tren tingkat makro dan fakta tingkat mikro. Anda memulai dengan tampilan statistik yang luas dan secara strategis melihat perincian untuk memverifikasi data dengan contoh spesifik di dunia nyata.

Menganalisis Kepadatan Tempat dalam Skala Besar dengan Insight Tempat

Langkah pertama Anda adalah memahami lanskap secara umum. Daripada mengambil ribuan titik minat (POI) satu per satu, Anda dapat menjalankan satu kueri untuk mendapatkan ringkasan statistik.

Fungsi Places Insights PLACES_COUNT_PER_H3 sangat cocok untuk hal ini. Fitur ini menggabungkan jumlah POI ke dalam sistem petak heksagonal (H3), sehingga Anda dapat dengan cepat mengidentifikasi area dengan kepadatan tinggi atau rendah berdasarkan kriteria spesifik Anda (misalnya, restoran dengan rating tinggi yang beroperasi).

Contoh kuerinya adalah sebagai berikut. Perhatikan bahwa Anda akan diminta untuk memberikan geografi area penelusuran Anda. Set data terbuka, seperti Data Overture Maps BigQuery set data publik dapat digunakan untuk mengambil data batas geografis.

Untuk batas set data terbuka yang sering digunakan, sebaiknya wujudkan batas tersebut menjadi tabel di project Anda sendiri. Tindakan ini secara signifikan mengurangi biaya BigQuery dan meningkatkan performa kueri.

-- This query counts all highly-rated, operational restaurants
-- across a large geography, grouping them into H3 cells.
SELECT *
FROM
  `places_insights___gb.PLACES_COUNT_PER_H3`(
    JSON_OBJECT(
      'geography', your_defined_geography,
      'h3_resolution', 8,
      'types', ['restaurant'],
      'business_status', ['OPERATIONAL'],
      'min_rating', 3.5
    )
  );

Output kueri ini memberi Anda tabel sel H3 dan jumlah tempat dalam setiap sel, yang menjadi dasar untuk peta panas kepadatan.

Tabel hasil kueri BigQuery yang menampilkan kolom untuk h3_cell_index, count, dan sample_place_ids.

Mengisolasi Hotspot dan Mengekstrak ID Tempat Contoh

Hasil dari fungsi PLACES_COUNT_PER_H3 juga menampilkan array sample_place_ids, hingga 250 ID Tempat per elemen respons. ID ini adalah link dari statistik gabungan ke masing-masing tempat yang berkontribusi pada statistik tersebut.

Sistem Anda dapat mengidentifikasi sel yang paling relevan dari kueri awal terlebih dahulu. Misalnya, Anda dapat memilih 20 sel teratas dengan jumlah tertinggi. Kemudian, dari hotspot ini, Anda menggabungkan sample_place_ids ke dalam satu daftar. Daftar ini menampilkan sampel pilihan dari PDB paling menarik dari area yang paling relevan, sehingga Anda siap untuk verifikasi yang ditargetkan.

Jika Anda memproses hasil BigQuery di Python menggunakan pandas DataFrame, logika untuk mengekstrak ID ini sangat mudah:

# Assume 'results_df' is a pandas DataFrame from your BigQuery query.

# 1. Identify the 20 busiest H3 cells by sorting and taking the top results.
top_hotspots_df = results_df.sort_values(by='count', ascending=False).head(20)

# 2. Extract and flatten the lists of sample_place_ids from these hotspots.
# The .explode() function creates a new row for each ID in the lists.
all_sample_ids = top_hotspots_df['sample_place_ids'].explode()

# 3. Create a final list of unique Place IDs to verify.
place_ids_to_verify = all_sample_ids.unique().tolist()

print(f"Consolidated {len(place_ids_to_verify)} unique Place IDs for spot-checking.")

Logika serupa dapat diterapkan jika menggunakan bahasa pemrograman lain.

Mengambil Detail Fakta Lapangan dengan Places API

Dengan daftar gabungan ID Tempat, Anda kini beralih dari analisis skala besar ke pengambilan data spesifik. Anda akan menggunakan ID ini untuk mengkueri Place Details API guna mendapatkan informasi mendetail tentang setiap lokasi sampel.

Ini adalah langkah validasi penting. Meskipun Insight Tempat memberi tahu Anda jumlah restoran di suatu area, Places API memberi tahu Anda restoran mana yang ada di area tersebut, dengan memberikan nama, alamat persis, lintang/bujur, rating pengguna, dan bahkan link langsung ke lokasi restoran di Google Maps. Hal ini memperkaya data sampel Anda, mengubah ID abstrak menjadi tempat yang konkret dan dapat diverifikasi.

Untuk mengetahui daftar lengkap data yang tersedia dari Place Details API, dan biaya yang terkait dengan pengambilan, tinjau dokumentasi API. FieldMask ditetapkan pada permintaan, untuk mengontrol data yang ditampilkan dari API.

Permintaan ke Places API untuk ID tertentu menggunakan library klien Python akan terlihat seperti ini:

# A request to fetch details for a single Place ID.
request = {"name": f"places/{place_id}"}

# Define the fields you want returned in the response as a comma-separated string.
fields_to_request = "displayName,formattedAddress,location,googleMapsUri"

# The response contains ground truth data.
response = places_client.get_place(
    request=request,
    metadata=[("x-goog-fieldmask", fields_to_request)]
)

Lihat contoh library klien Places API (Baru)untuk mengetahui detail selengkapnya.

Membuat Visualisasi Gabungan untuk Validasi

Langkah terakhir adalah menggabungkan kedua set data dalam satu tampilan. Cara ini memberikan cara yang langsung dan intuitif untuk memeriksa analisis awal Anda. Visualisasi Anda harus memiliki dua lapisan:

  1. Lapisan Dasar: Peta koroplet atau peta panas yang dihasilkan dari hasil PLACES_COUNT_PER_H3 awal, yang menunjukkan kepadatan keseluruhan tempat di seluruh geografi Anda.
  2. Lapisan Teratas: Serangkaian penanda individual untuk setiap POI sampel, diplot menggunakan koordinat presisi yang diambil dari Places API pada langkah sebelumnya.

Logika untuk membuat tampilan gabungan ini dinyatakan dalam contoh pseudo-kode berikut:

# Assume 'h3_density_data' is your aggregated data from Step 1.
# Assume 'detailed_places_data' is your list of place objects from Step 3.

# Create the base choropleth map from the H3 density data.
# The 'count' column determines the color of each hexagon.
combined_map = create_choropleth_map(
    data=h3_density_data,
    color_by_column='count'
)

# Iterate through the detailed place data to add individual markers.
for place in detailed_places_data:
    # Construct the popup information with key details and a link.
    popup_html = f"""
    <b>{place.name}</b><br>
    Address: {place.address}<br>
    <a href="{place.google_maps_uri}" target="_blank">View on Maps</a>
    """

    # Add a marker for the current place to the base map.
    combined_map.add_marker(
        location=[place.latitude, place.longitude],
        popup=popup_html,
        tooltip=place.name
    )

# Display the final map with both layers.
display(combined_map)

Dengan menempatkan penanda spesifik dan fakta di lapangan pada peta kepadatan tingkat tinggi, Anda dapat langsung mengonfirmasi bahwa area yang diidentifikasi sebagai hotspot memang berisi konsentrasi tinggi tempat yang Anda analisis. Konfirmasi visual ini membangun kepercayaan yang signifikan terhadap kesimpulan berbasis data Anda.

Kesimpulan

Pola arsitektur ini menyediakan metode yang andal dan efisien untuk memvalidasi insight geospasial skala besar. Dengan memanfaatkan Places Insights untuk analisis yang luas dan terukur, serta Place Details API untuk verifikasi berbasis data di lapangan yang tertarget, Anda dapat membuat siklus proses yang efektif. Hal ini memastikan keputusan strategis Anda, baik dalam pemilihan lokasi retail maupun perencanaan logistik, didasarkan pada data yang tidak hanya signifikan secara statistik, tetapi juga akurat dan dapat diverifikasi.

Langkah berikutnya

  • Jelajahi Fungsi Jumlah Tempat lainnya untuk melihat cara fungsi tersebut dapat menjawab berbagai pertanyaan analisis.
  • Tinjau dokumentasi Places API untuk menemukan kolom lain yang dapat Anda minta untuk memperkaya analisis lebih lanjut.

Kontributor

Henrik Valve | DevX Engineer