من ربات ترجمیار هستم و خلاصه مقالات علمی رو به صورت خودکار ترجمه میکنم. متن کامل مقالات رو میتونین به صورت ترجمه شده از لینکی که در پایین پست قرار میگیره بخونین
کار با داده OpenStreetMap
منتشرشده در: towardsdatascienceبه تاریخ ۳۱ می ۲۰۲۱
لینک منبع: Working with OpenStreetMap Data
در این مسیر، من از داده OpenStreetMap از BigQuery استفاده خواهم کرد. این عالی است که گوگل آن را به صورت رایگان در مجموعه دادههای عمومی خود منتشر کردهاست. بنابراین شما میتوانید به راحتی اطلاعات جغرافیایی را با SQL جستجو کنید [ ۱ ]. گوگل مجموعه دادههای خود را یکبار بدون هیچ بهروزرسانی منتشر کرد. اگر شما به دادههای جدیدتر نیاز دارید، OpenStreetMap API در ترکیب با برخی کدهای پایتون ساده ممکن است یک راهحل ممکن برای مشکل شما باشد.
استفاده از موارد OpenStreetMap
مورد OpenStreetMap.org یک پروژه بینالمللی است که در سال ۲۰۰۴ با هدف ایجاد یک نقشه رایگان از جهان تاسیس شد. برای این منظور ما دادهها را در مورد جادهها، راهآهن، رودخانهها، جنگلها، خانهها و خیلی بیشتر در سراسر جهان جمعآوری میکنیم [ ۲ ].
اگرچه داده OpenStreetMap رایگان است، اما شما میتوانید مزایای کسبوکار خاصی را به خوبی ترسیم کنید. نمونههایی که من به توسعه آنها کمک کردهام یا حداقل آنها را همراهی کردهام برای مثال:
- تحلیل ژئو (مشتریان من کجا هستند؟)
- تجزیه و تحلیل بازار (رقبای من کجا فروشگاه دارند؟)
- بهینهسازی تور (چگونه میتوانم مسیرهای لجستیک را بهینه کنم؟)
- تشخیص کلاهبرداری (آیا فاکتورهای حمل و نقل موجه هستند؟)
- و خیلی چیزهای دیگر …
دادههای تودرتو چیست؟
جستجوی دادهها از BigQuery مجموعه دادهها زمینههای دادههای تودرتو را بازخواهد گرداند. BigQuery از بارگذاری و پرس و جوی دادههای تودرتو و تکرار شونده از منابع که از طرحهای مبتنی بر شی مانند Json پشتیبانی میکنند، پشتیبانی میکند. در اینجا تصویر کوتاهی از دادههای تودرتو آورده شدهاست:
ستون آدرس شامل یک آرایه از مقادیر است. آدرسهای مختلف در آرایه، دادههای تکرار شونده هستند. زمینههای مختلف در هر آدرس، دادههای تودرتو هستند.
مثال واقعی
برای مثال من با BigQuery از ویژگیهای سیاره مجموعه داده باز در مجموعه داده ژئو-openmap استفاده کردم. در اینجا، دادهها در یک فرمت تو در تو ذخیره شدهاند، بنابراین بیایید نگاهی بیاندازیم:
SELECT * FROM `bigquery-public-data.geo_openstreetmap.planet_features` LIMIT 1000
این نتیجه خروجی زیر است:
نتیجه در نگاه اول خوب به نظر میرسد. بر خلاف پایگاهدادههای رابطهای کلاسیک، من میتوانم از آرایهها استفاده کنم و ستونهای اضافی را ذخیره کنم. علاوه بر این، همه چیز با یک عملکرد عالی کار میکند. حالا، من میخواهم یک سوپرمارکت خاص در آلمان پیدا کنم-باید با یک بند آسان انجام شود-درست است انجام شود؟ تقریبا. در اینجا، شما به جادوی Unnest نیاز دارید.
SELECT *
FROM `bigquery-PUBLIC- data.geo_openstreetmap.planet_features`
WHERE 'Netto' IN
(
SELECT value
FROM unnest(all_tags))
AND (
'addr:country', 'DE') IN
(
SELECT (KEY, value)
FROM unnest(all_tags))
AND (
'addr:city', 'Hamburg') IN
(
SELECT (KEY, value)
FROM unnest (all_tags));
که نتیجه مطلوب است:
با تابع unnest میتوانید دادهها را مسطح کنید و در نتیجه خروجی پرس و جو:
SELECT osm_id,tags
FROM bigquery-public-data.geo_openstreetmap.planet_features,
UNNEST(all_tags) as tags limit 100
این احتمالا مهمترین چیزی است که شما هنگام کار با دادههای تودرتو در BigQuery باید بدانید و میخواهید برخی از دادهها را پرس و جو کنید. اما چه میشود اگر میخواهید از دادهها برای فرآیندهای ETL بیشتر استفاده کنید، دادهها را در پایگاهدادههای رابطهای ذخیره کنید یا به زوجهای با ارزش کلیدی به عنوان ویژگی برای طبقهبندی کننده خود نیاز داشته باشید؟ در اینجا، شما میخواهید که دادهها مسطح نشوند-زیرا این امر منجر به ردیفهای تکراری خواهد شد-در اینجا شما جفت مقادیر کلیدی را در آرایه به عنوان ستونهای جدید میخواهید:
SELECT
(
SELECT osm_id) osmid,
(
SELECT value
FROM unnest(all_tags)
WHERE KEY = "Address") AS address,
(
SELECT value
FROM unnest(all_tags)
WHERE KEY = "name") AS name,
(
SELECT value
FROM unnest(all_tags)
WHERE KEY = "opening_hours") AS opening_hours,
(
SELECT value
FROM unnest(all_tags)
WHERE KEY = "organic") AS organic,
(
SELECT geometry) AS geometry,
FROM bigquery-public-data.geo_openstreetmap.planet_features
WHERE (
'Edeka' IN
(
SELECT value
FROM unnest(all_tags))
OR 'Rewe' IN
(
SELECT value
FROM unnest(all_tags))
OR 'Netto' IN
(
SELECT value
FROM unnest(all_tags)))
AND (
'addr:country', 'DE') IN
(
SELECT (KEY, value)
FROM unnest(all_tags)) -
AND (
'addr:city', 'Hamburg') IN
(
SELECT (KEY, value)
FROM unnest(all_tags));
که خروجی را به ما میدهد:
در نهایت، شما میتوانید دادهها را از طریق ابزارهای هوش تجاری مانند استودیو داده گوگل-به خصوص هنگام کار با BigQuery-تجسم کنید.
در مورد استفاده مرتبط، دادهها نیز بر روی نقشه ارائه شدند تا ایدهای در مورد نحوه توزیع فروشگاهها به دست آید. در داشبورد، یک جدول اساسی نیز دیدگاههای نزدیکتری میدهد. برای تجزیه و تحلیل عمیقتر، دادهها نیز در سناریوهای تقسیمبندی مشتری آتی مورد استفاده قرار گرفتند.
نتیجهگیری
علاوه بر OpenStreetMap API و مجموعه دادههای عمومی Googles، مجموعه دادههای بیشتری وجود دارند که میتوانید برای تحلیلهای خود پیدا کرده و از آنها استفاده کنید. در اینجا، من وب سایت جستجوی مجموعه داده گوگل را توصیه میکنم: https://www.google.com/publicdata/directory
سیستمهای جدید مانند BigQuery قدرت محاسباتی بسیار بالا و نتایج سریع را از طریق پایگاههای داده مبتنی بر ستون ارائه میدهند. با مثالهای بالا، شما باید بتوانید اکثر موارد استفاده از دادههای تو در تو را به خوبی جستجو و پردازش کنید. با دادههای رایگان و توان محاسباتی، میتوانید بسیاری از موارد استفاده سودآور را اجرا کنید. به عنوان اولین گام، من توصیه میکنم که به سادگی با دادهها سر و کار داشته باشید. این کار را میتوانید با لایه Google Cloud Free به راحتی انجام دهید.
منابع و گزارشهای بیشتر
[ ۱ ] Google، OpenStreetMap Public Dataset
[ ۲] OpenStreetMap, https://www.openstreetmap.de/ (2021)
[ ۳ ] Google, Solve real business challenges on Google Cloud (2021)
این متن با استفاده از ربات ترجمه مقاله علم داده ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه میتواند دارای برخی اشکالات ترجمه باشد.
مقالات لینکشده در این متن میتوانند به صورت رایگان با استفاده از مقالهخوان ترجمیار به فارسی مطالعه شوند.
مطلبی دیگر از این انتشارات
دیوید گوتا امینم را در یکی از آهنگهایش دیپفیک کرد
مطلبی دیگر از این انتشارات
«رباتهای کشنده» تنها یک قدم از محله شما فاصله دارند - و ما به یک ممنوعیت جدی نیاز داریم.
مطلبی دیگر از این انتشارات
یک ایده از فیزیک کمک میکند که هوش مصنوعی در ابعاد بالاتر ببیند