सैंपल प्लेस आईडी का इस्तेमाल करके, Places Insights के डेटा की पुष्टि करना

इस दस्तावेज़ में, Places Insights से मिले जगह के आईडी के सैंपल डेटा का इस्तेमाल करने का तरीका बताया गया है. इसके लिए, जगह की संख्या बताने वाले फ़ंक्शन और टारगेट किए गए जगह की जानकारी लुकअप का इस्तेमाल किया जाता है, ताकि आपको अपने नतीजों पर भरोसा हो सके.

लंदन की जगहों का डेंसिटी हीटमैप. इसमें अलग-अलग मार्कर ओवरले किए गए हैं, ताकि आंकड़ों वाले डेटा की पुष्टि की जा सके.

आर्किटेक्चरल पैटर्न

इस आर्किटेक्चरल पैटर्न से, आपको एक ऐसा वर्कफ़्लो मिलता है जिसे बार-बार इस्तेमाल किया जा सकता है. इससे, आपको हाई-लेवल के स्टैटिस्टिकल विश्लेषण और ग्राउंड-ट्रुथ की पुष्टि के बीच के अंतर को कम करने में मदद मिलती है. BigQuery की मदद से बड़े पैमाने पर डेटा को प्रोसेस किया जा सकता है. साथ ही, Places API से सटीक जानकारी मिलती है. इन दोनों को मिलाकर, विश्लेषण के नतीजों की पुष्टि आसानी से की जा सकती है. यह खास तौर पर साइट चुनने, प्रतिस्पर्धी का विश्लेषण करने, और बाज़ार की रिसर्च के लिए मददगार है. इन कामों में डेटा पर भरोसा करना बहुत ज़रूरी होता है.

इस पैटर्न में चार मुख्य चरण शामिल हैं:

  1. बड़े पैमाने पर विश्लेषण करना: BigQuery में Places Insights के जगह की गिनती करने वाले फ़ंक्शन का इस्तेमाल करके, किसी बड़े इलाके, जैसे कि पूरे शहर या क्षेत्र के जगह से जुड़े डेटा का विश्लेषण करें.
  2. सैंपल को अलग करना और निकालना: दिलचस्पी वाले क्षेत्रों की पहचान करें. उदाहरण के लिए, "हॉटस्पॉट" (ज़्यादा घनत्व वाले) का पता लगाएं और फ़ंक्शन से मिले sample_place_ids को एक्सट्रैक्ट करें.
  3. ग्राउंड-ट्रुथ की जानकारी पाना: निकाले गए जगह के आईडी का इस्तेमाल करके, जगह की जानकारी देने वाले एपीआई को टारगेट किए गए कॉल करें. इससे आपको हर जगह के बारे में ज़्यादा जानकारी और असली जानकारी मिलेगी.
  4. कंबाइंड विज़ुअलाइज़ेशन बनाएं: जगह के बारे में ज़्यादा जानकारी देने वाले डेटा को, शुरुआती हाई-लेवल के स्टैटिस्टिकल मैप के ऊपर लेयर करें. इससे यह पुष्टि करने में मदद मिलेगी कि एग्रीगेट किए गए काउंट, असल में मौजूद डेटा के मुताबिक हैं.

समस्या हल करने से जुड़ा वर्कफ़्लो

इस वर्कफ़्लो की मदद से, मैक्रो-लेवल के रुझानों और माइक्रो-लेवल के तथ्यों के बीच के अंतर को कम किया जा सकता है. इसकी शुरुआत, आंकड़ों के आधार पर तैयार किए गए व्यू से होती है. इसके बाद, रणनीति के तहत डेटा की बारीकी से जांच की जाती है. ऐसा, असल दुनिया के उदाहरणों की मदद से किया जाता है.

जगहों की अहम जानकारी की मदद से, बड़े पैमाने पर जगहों की संख्या का विश्लेषण करना

आपका पहला कदम, बड़े लेवल पर लैंडस्केप को समझना है. हज़ारों अलग-अलग दिलचस्पी की जगहों (पीओआई) की जानकारी पाने के बजाय, अब एक ही क्वेरी चलाकर आंकड़ों की खास जानकारी पाई जा सकती है.

इसके लिए, जगहों के बारे में अहम जानकारी PLACES_COUNT_PER_H3 फ़ंक्शन सबसे सही है. यह पीओएस की संख्या को षट्कोणीय ग्रिड सिस्टम (H3) में इकट्ठा करता है.इससे आपको अपनी खास शर्तों के आधार पर, ज़्यादा या कम घनत्व वाले इलाकों की पहचान करने में मदद मिलती है. उदाहरण के लिए, ज़्यादा रेटिंग वाले ऐसे रेस्टोरेंट जो खुले हैं.

क्वेरी का एक उदाहरण यहां दिया गया है. ध्यान दें कि आपको खोज के दायरे की भौगोलिक जानकारी देनी होगी. भौगोलिक सीमा का डेटा पाने के लिए, Overture Maps Data जैसे ओपन डेटासेट का इस्तेमाल किया जा सकता है. इसके अलावा, BigQuery के सार्वजनिक डेटासेट का भी इस्तेमाल किया जा सकता है.

हमारा सुझाव है कि अक्सर इस्तेमाल होने वाले ओपन डेटासेट की सीमाओं को अपने प्रोजेक्ट में टेबल के तौर पर सेव करें. इससे BigQuery की लागत में काफ़ी कमी आती है और क्वेरी की परफ़ॉर्मेंस बेहतर होती है.

-- 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
    )
  );

इस क्वेरी के आउटपुट से आपको H3 सेल की टेबल मिलती है. साथ ही, हर सेल में मौजूद जगहों की संख्या मिलती है. इससे डेंसिटी हीटमैप बनाने में मदद मिलती है.

BigQuery क्वेरी के नतीजों की टेबल में h3_cell_index, count, और sample_place_ids के कॉलम दिखाए गए हैं.

हॉटस्पॉट अलग करना और जगह के आईडी का सैंपल निकालना

PLACES_COUNT_PER_H3 फ़ंक्शन से मिले नतीजे में, sample_place_ids की एक श्रेणी भी मिलती है. इसमें जवाब के हर एलिमेंट के लिए, ज़्यादा से ज़्यादा 250 जगह के आईडी होते हैं. ये आईडी, एग्रीगेट किए गए आंकड़ों को उन जगहों से लिंक करते हैं जिनसे ये आंकड़े मिले हैं.

आपका सिस्टम, शुरुआती क्वेरी के आधार पर सबसे पहले काम की सेल की पहचान कर सकता है. उदाहरण के लिए, सबसे ज़्यादा संख्या वाली टॉप 20 सेल चुनी जा सकती हैं. इसके बाद, इन हॉटस्पॉट से sample_place_ids को एक सूची में शामिल करें. इस सूची में, सबसे ज़्यादा काम के इलाकों के सबसे दिलचस्प पीओएस का सैंपल शामिल होता है. इससे आपको टारगेट करके पुष्टि करने में मदद मिलती है.

अगर BigQuery के नतीजों को Python में pandas DataFrame का इस्तेमाल करके प्रोसेस किया जा रहा है, तो इन आईडी को निकालने का तरीका आसान है:

# 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.")

अगर अन्य प्रोग्रामिंग भाषाओं का इस्तेमाल किया जा रहा है, तो इसी तरह का लॉजिक लागू किया जा सकता है.

Places API की मदद से, ग्राउंड-ट्रुथ की जानकारी पाना

जगह के आईडी की अपनी समेकित सूची की मदद से, अब बड़े पैमाने पर किए जाने वाले विश्लेषण से खास डेटा को वापस पाने की प्रोसेस पर स्विच करें. इन आईडी का इस्तेमाल करके, Place Details API से हर सैंपल लोकेशन के बारे में ज़्यादा जानकारी पाने के लिए क्वेरी की जाएगी.

यह पुष्टि करने का एक ज़रूरी चरण है. जगहों के बारे में अहम जानकारी देने वाली सुविधा से आपको यह पता चलता था कि किसी इलाके में कितने रेस्टोरेंट हैं. वहीं, Places API से आपको यह पता चलता है कि वे कौनसे रेस्टोरेंट हैं. साथ ही, आपको उनके नाम, पूरा पता, अक्षांश/देशांतर, उपयोगकर्ता रेटिंग, और Google Maps पर उनकी जगह का सीधा लिंक भी मिलता है. इससे आपके सैंपल डेटा को बेहतर बनाया जाता है. साथ ही, इससे आईडी को ऐसी जगहों में बदला जाता है जिनकी पुष्टि की जा सकती है.

Place Details API से उपलब्ध डेटा की पूरी सूची और उसे वापस पाने से जुड़ी लागत के बारे में जानने के लिए, एपीआई का दस्तावेज़ पढ़ें. एपीआई से मिले डेटा को कंट्रोल करने के लिए, अनुरोध पर FieldMask सेट किया जाता है.

Python क्लाइंट लाइब्रेरी का इस्तेमाल करके, किसी खास आईडी के लिए Places API को किया गया अनुरोध इस तरह दिखेगा:

# 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)]
)

ज़्यादा जानकारी के लिए, Places API (New) की क्लाइंट लाइब्रेरी के उदाहरण देखें.

पुष्टि करने के लिए, कंबाइंड विज़ुअलाइज़ेशन बनाना

आखिरी चरण में, दोनों डेटासेट को एक व्यू में साथ में लाया जाता है. इससे, शुरुआती विश्लेषण की तुरंत और आसानी से जांच की जा सकती है. आपके विज़ुअलाइज़ेशन में दो लेयर होनी चाहिए:

  1. बेस लेयर: यह शुरुआती PLACES_COUNT_PER_H3 नतीजों से जनरेट किया गया कोरोप्लेथ या हीटमैप होता है. इसमें आपकी भौगोलिक स्थिति के हिसाब से, जगहों की कुल डेंसिटी दिखाई जाती है.
  2. सबसे ऊपर वाली लेयर: इसमें हर सैंपल पीओएस के लिए अलग-अलग मार्कर का सेट होता है. इन्हें पिछले चरण में Places API से मिले सटीक कोऑर्डिनेट का इस्तेमाल करके प्लॉट किया जाता है.

इस कंबाइंड व्यू को बनाने का लॉजिक, इस सूडो-कोड के उदाहरण में बताया गया है:

# 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)

ज़्यादा घनत्व वाले मैप पर, सटीक और भरोसेमंद मार्कर ओवरले करके, तुरंत यह पुष्टि की जा सकती है कि जिन इलाकों को हॉटस्पॉट के तौर पर पहचाना गया है उनमें, विश्लेषण की जा रही जगहों की संख्या ज़्यादा है. इस विज़ुअल की पुष्टि करने से, डेटा पर आधारित आपके नतीजों पर लोगों का भरोसा बढ़ता है.

नतीजा

यह आर्किटेक्चरल पैटर्न, बड़े पैमाने पर भू-स्थानिक जानकारी की पुष्टि करने का एक मज़बूत और असरदार तरीका है. Places Insights का इस्तेमाल करके, बड़े पैमाने पर विश्लेषण किया जा सकता है. वहीं, Place Details API का इस्तेमाल करके, सटीक जानकारी की पुष्टि की जा सकती है. इससे आपको बेहतर फ़ीडबैक लूप बनाने में मदद मिलती है. इससे यह पक्का होता है कि आपके रणनीतिक फ़ैसले, आंकड़ों के हिसाब से अहम डेटा पर आधारित हैं. भले ही, ये फ़ैसले खुदरा साइट चुनने या लॉजिस्टिक्स की योजना बनाने से जुड़े हों. साथ ही, यह भी पक्का होता है कि यह डेटा भरोसेमंद और सटीक है.

अगले चरण

  • जगह की गिनती करने वाले अन्य फ़ंक्शन एक्सप्लोर करें. इससे आपको यह पता चलेगा कि वे विश्लेषण से जुड़े अलग-अलग सवालों के जवाब कैसे दे सकते हैं.
  • ज़्यादा जानकारी के लिए, Places API से जुड़ा दस्तावेज़ देखें. इससे आपको उन अन्य फ़ील्ड के बारे में पता चलेगा जिनके लिए अनुरोध किया जा सकता है, ताकि अपने विश्लेषण को और बेहतर बनाया जा सके.

योगदानकर्ता

हेनरिक वाल्व | DevX इंजीनियर