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