এই ডকুমেন্টে আপনি শিখবেন, কীভাবে প্লেস কাউন্ট ফাংশন ব্যবহার করে এবং নির্দিষ্ট স্থানের বিবরণ খোঁজার পাশাপাশি প্লেসেস ইনসাইটস থেকে নমুনা প্লেস আইডি ডেটা ব্যবহার করে আপনার ফলাফলের ওপর আস্থা তৈরি করা যায়।
এই প্যাটার্নটির বিশদ রেফারেন্স বাস্তবায়নের জন্য, এই ব্যাখ্যামূলক নোটবুকটি দেখুন:

স্থাপত্য নকশা
এই আর্কিটেকচারাল প্যাটার্নটি আপনাকে উচ্চ-স্তরের পরিসংখ্যানগত বিশ্লেষণ এবং বাস্তব তথ্যের সত্যতা যাচাইয়ের মধ্যেকার ব্যবধান পূরণের জন্য একটি পুনরাবৃত্তিযোগ্য কর্মপ্রবাহ প্রদান করে। BigQuery- এর বিশালতার সাথে Places API- এর নির্ভুলতাকে একত্রিত করে, আপনি আত্মবিশ্বাসের সাথে আপনার বিশ্লেষণমূলক ফলাফলগুলো যাচাই করতে পারেন। এটি বিশেষত স্থান নির্বাচন, প্রতিযোগী বিশ্লেষণ এবং বাজার গবেষণার জন্য উপযোগী, যেখানে তথ্যের উপর বিশ্বাসযোগ্যতা সবচেয়ে গুরুত্বপূর্ণ।
এই বিন্যাসের মূলে চারটি মূল ধাপ রয়েছে:
- বৃহৎ পরিসরের বিশ্লেষণ করুন: একটি সম্পূর্ণ শহর বা অঞ্চলের মতো বৃহৎ ভৌগোলিক এলাকার স্থান-সংক্রান্ত ডেটা বিশ্লেষণ করতে BigQuery-এর Places Insights থেকে Place Count ফাংশনটি ব্যবহার করুন।
- নমুনা পৃথকীকরণ ও নিষ্কাশন: একত্রিত ফলাফল থেকে আগ্রহের ক্ষেত্রগুলি (যেমন, উচ্চ ঘনত্বযুক্ত "হটস্পট") চিহ্নিত করুন এবং ফাংশন দ্বারা প্রদত্ত
sample_place_idsগুলি নিষ্কাশন করুন। - বাস্তব তথ্য সংগ্রহ করুন: প্রতিটি স্থানের জন্য সমৃদ্ধ ও বাস্তব বিবরণ পেতে, নিষ্কাশিত স্থান আইডিগুলো ব্যবহার করে স্থান বিবরণ এপিআই-তে (Place Details API) নির্দিষ্ট কল করুন।
- একটি সমন্বিত চিত্রায়ন তৈরি করুন: সামগ্রিক গণনা যে মাঠপর্যায়ের বাস্তবতাকে প্রতিফলিত করে, তা চাক্ষুষভাবে যাচাই করার জন্য প্রাথমিক উচ্চ-স্তরের পরিসংখ্যানগত মানচিত্রের উপরে বিস্তারিত স্থান-সংক্রান্ত তথ্য যুক্ত করুন।
সমাধান কর্মপ্রবাহ
এই কর্মপ্রক্রিয়াটি আপনাকে সামষ্টিক-স্তরের প্রবণতা এবং ক্ষুদ্র-স্তরের তথ্যের মধ্যে সংযোগ স্থাপন করতে সাহায্য করে। আপনি একটি বিস্তৃত, পরিসংখ্যানগত দৃষ্টিভঙ্গি দিয়ে শুরু করেন এবং কৌশলগতভাবে নির্দিষ্ট, বাস্তব-জগতের উদাহরণের সাহায্যে তথ্য যাচাই করার জন্য গভীরে যান।
Places Insights-এর মাধ্যমে বৃহৎ পরিসরে স্থানের ঘনত্ব বিশ্লেষণ করুন
আপনার প্রথম পদক্ষেপ হলো সামগ্রিক পরিস্থিতি সম্পর্কে একটি সামগ্রিক ধারণা লাভ করা। হাজার হাজার স্বতন্ত্র গুরুত্বপূর্ণ স্থান (POI) খুঁজে বের করার পরিবর্তে, আপনি একটিমাত্র কোয়েরি চালিয়েই একটি পরিসংখ্যানগত সারসংক্ষেপ পেতে পারেন।
এর জন্য Places Insights-এর PLACES_COUNT_PER_H3 ফাংশনটি আদর্শ। এটি POI-এর সংখ্যাগুলোকে একটি ষড়ভুজাকার গ্রিড সিস্টেমে (H3) একত্রিত করে, যার ফলে আপনি আপনার নির্দিষ্ট মানদণ্ডের (যেমন, উচ্চ রেটিংপ্রাপ্ত ও চালু থাকা রেস্তোরাঁ) উপর ভিত্তি করে উচ্চ বা নিম্ন ঘনত্বের এলাকাগুলো দ্রুত শনাক্ত করতে পারেন।
একটি উদাহরণ কোয়েরি নিচে দেওয়া হলো। উল্লেখ্য যে, আপনাকে আপনার অনুসন্ধান এলাকার ভৌগোলিক অবস্থান প্রদান করতে হবে। ভৌগোলিক সীমানার ডেটা পুনরুদ্ধার করার জন্য ওভারচার ম্যাপস ডেটা বিগকোয়েরি পাবলিক ডেটাসেটের মতো একটি ওপেন ডেটাসেট ব্যবহার করা যেতে পারে।
ঘন ঘন ব্যবহৃত ওপেন ডেটাসেট বাউন্ডারিগুলোর জন্য, আমরা সেগুলোকে আপনার নিজের প্রোজেক্টে একটি টেবিলে রূপান্তর করার পরামর্শ দিই। এটি 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 সেলগুলোর একটি টেবিল এবং প্রতিটি সেলের মধ্যে থাকা স্থানগুলোর সংখ্যা প্রদান করে, যা একটি ডেনসিটি হিটম্যাপের ভিত্তি তৈরি করে।

হটস্পটগুলি চিহ্নিত করুন এবং নমুনা স্থানের আইডিগুলি বের করুন
PLACES_COUNT_PER_H3 ফাংশনের ফলাফলটি sample_place_ids এর একটি অ্যারেও ফেরত দেয়, যেখানে রেসপন্সের প্রতিটি উপাদানের জন্য ২৫০টি পর্যন্ত প্লেস আইডি থাকে। এই আইডিগুলোই সমষ্টিগত পরিসংখ্যান থেকে সেই পরিসংখ্যানে অবদানকারী স্বতন্ত্র স্থানগুলোর সাথে সংযোগ স্থাপন করে।
আপনার সিস্টেম প্রথমে প্রাথমিক কোয়েরি থেকে সবচেয়ে প্রাসঙ্গিক সেলগুলো শনাক্ত করতে পারে। উদাহরণস্বরূপ, আপনি সর্বোচ্চ সংখ্যাযুক্ত শীর্ষ ২০টি সেল নির্বাচন করতে পারেন। তারপর, এই হটস্পটগুলো থেকে, আপনি sample_place_ids গুলোকে একটি একক তালিকায় একত্রিত করেন। এই তালিকাটি সবচেয়ে প্রাসঙ্গিক এলাকাগুলো থেকে সবচেয়ে আকর্ষণীয় POI-গুলোর একটি বাছাই করা নমুনার প্রতিনিধিত্ব করে, যা আপনাকে লক্ষ্যভিত্তিক যাচাইকরণের জন্য প্রস্তুত করে।
আপনি যদি পাইথনে একটি পান্ডাস ডেটাফ্রেম ব্যবহার করে আপনার বিগকোয়েরি ফলাফল প্রসেস করেন, তাহলে এই আইডিগুলো বের করার লজিকটি খুবই সহজ:
# 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 ব্যবহার করে প্রকৃত তথ্য পুনরুদ্ধার করুন
আপনার একত্রিত প্লেস আইডি-র তালিকাটির সাহায্যে, আপনি এখন বৃহৎ পরিসরের বিশ্লেষণ থেকে নির্দিষ্ট ডেটা পুনরুদ্ধারের দিকে অগ্রসর হবেন। প্রতিটি নমুনা স্থানের বিস্তারিত তথ্যের জন্য আপনি এই আইডিগুলো ব্যবহার করে প্লেস ডিটেইলস এপিআই-কে কোয়েরি করবেন।
এটি একটি অত্যন্ত গুরুত্বপূর্ণ যাচাইকরণ ধাপ। প্লেসেস ইনসাইটস আপনাকে জানাতো একটি এলাকায় কতগুলো রেস্তোরাঁ আছে, কিন্তু প্লেসেস এপিআই আপনাকে বলে দেয় সেগুলো কোন কোন রেস্তোরাঁ; সাথে থাকে তাদের নাম, সঠিক ঠিকানা, অক্ষাংশ/দ্রাঘিমাংশ, ব্যবহারকারীর রেটিং, এবং এমনকি গুগল ম্যাপসে তাদের অবস্থানের একটি সরাসরি লিঙ্কও। এটি আপনার নমুনা ডেটাকে সমৃদ্ধ করে, বিমূর্ত আইডিগুলোকে সুনির্দিষ্ট ও যাচাইযোগ্য স্থানে পরিণত করে।
প্লেস ডিটেইলস এপিআই থেকে উপলব্ধ ডেটার সম্পূর্ণ তালিকা এবং তা পুনরুদ্ধারের সাথে যুক্ত খরচ জানতে, এপিআই ডকুমেন্টেশন পর্যালোচনা করুন ।
পাইথন ক্লায়েন্ট লাইব্রেরি ব্যবহার করে প্লেসেস এপিআই-তে একটি নির্দিষ্ট আইডির জন্য করা অনুরোধটি দেখতে এইরকম হবে। আরও বিস্তারিত জানার জন্য প্লেসেস এপিআই (নতুন) ক্লায়েন্ট লাইব্রেরির উদাহরণগুলো দেখুন।
# 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 = "formattedAddress,location,displayName,googleMapsUri"
# The response contains ground truth data.
response = places_client.get_place(
request=request,
metadata=[("x-goog-fieldmask", fields_to_request)]
)
মনে রাখবেন যে এই অনুরোধের ফিল্ডগুলি দুটি ভিন্ন বিলিং SKU থেকে ডেটা সংগ্রহ করে।
-
formattedAddressএবংlocation' Place Details Essentials SKU'- এর অংশ। -
displayNameএবংgoogleMapsUriহলো Place Details Pro SKU- এর অংশ।
যখন একটি একক প্লেস ডিটেইলস অনুরোধে একাধিক SKU-এর ফিল্ড অন্তর্ভুক্ত থাকে, তখন সম্পূর্ণ অনুরোধটির বিল সর্বোচ্চ স্তরের SKU-এর হারে করা হয়। অতএব, এই নির্দিষ্ট কলটির বিল একটি প্লেস ডিটেইলস প্রো অনুরোধ হিসাবে করা হবে।
আপনার খরচ নিয়ন্ত্রণে রাখতে, সবসময় FieldMask ব্যবহার করে শুধুমাত্র আপনার অ্যাপ্লিকেশনের জন্য প্রয়োজনীয় ফিল্ডগুলোর অনুরোধ করুন।
যাচাইকরণের জন্য একটি সম্মিলিত ভিজ্যুয়ালাইজেশন তৈরি করুন
চূড়ান্ত ধাপ হলো উভয় ডেটাসেটকে একটি একক ভিউতে একত্রিত করা। এটি আপনার প্রাথমিক বিশ্লেষণ যাচাই করার জন্য একটি তাৎক্ষণিক এবং স্বজ্ঞাত উপায় প্রদান করে। আপনার ভিজ্যুয়ালাইজেশনে দুটি লেয়ার থাকা উচিত:
- বেস লেয়ার: প্রাথমিক
PLACES_COUNT_PER_H3ফলাফল থেকে তৈরি একটি কোরোপ্লেথ বা হিটম্যাপ, যা আপনার ভৌগোলিক এলাকা জুড়ে স্থানসমূহের সামগ্রিক ঘনত্ব দেখায়। - শীর্ষ স্তর: প্রতিটি নমুনা POI-এর জন্য স্বতন্ত্র মার্কারের একটি সেট, যা পূর্ববর্তী ধাপে প্লেসেস এপিআই (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 API ডকুমেন্টেশন পর্যালোচনা করুন।
অবদানকারীরা
হেনরিক ভালভ | ডেভএক্স ইঞ্জিনিয়ার
গুগল কোলাবে চালান
গিটহাবে উৎস দেখুন