استفاده از داده‌های OSM در QGIS

تاریخ بازبینی ۱۳۹۴/۰۴/۲۸

QGIS (که قبلاْ کوانتوم GIS نامیده میشد) یک سیستم اطلاعات جفرافیایی کامل و متن‌باز و بین پلتفرمی با ویژگی‌های بسیار است. با QGIS هرزمان که بخواهید می‌توانید به داده‌های OSM دسترسی داشته باشید، مشخص کنید که کدام تگ‌ها را درنظر بگیرد و به راحتی از آنها به صورت یک پایگاه داده SQLite جمع و جور یا Shapefile خروجی بگیرید.

در این بخش ما کارهایی که لازم است تا اینها صورت پذیرد را نشان میدهیم. فرض می‌کنیم که شما قبلاً QGIS 2.x را دانلود و نصب کرده‌اید. اگر اینطور نیست می‌توانید آنرا از http://www.qgis.org/en/site/forusers/download.html دانلود کنید.

برای داشتن لایه‌های کاملاً به روز و مورد نظر ما در QGIS ابتدا آخرین داده‌های OSM را به صورت خام و قالب .osm دریافت می‌کنیم. سپس، آنها را به شکل پایگاه داده SQLite نبدیل می‌کنیم که یک سیستم پایگاه داده سبک است که در یک فایل روی سیستم شما نگهداری می‌شود. در آخر، لایه‌(یا چند لایه)ای را ایجاد می‌کنیم که شامل تنها نوع خصوصیت و تگی است که ما می‌خواهیم به آن دسترسی داشته باشیم. این لایه‌ها را می‌توان در QGIS به همان صورت و یا به صورت قالب دیگری مانند shapefile ذخیره کرد.

دستیابی به داده‌های OSM

اولین کاری که انجام میدهیم دریافت مقداری اطلاعات به روز از OSM است. می‌توانیم این کار را به طرق مختلف انجام دهیم. البته، درخواست داده از سرور OSM، همانطور که در ویرایشگر JOSM انجام می‌شود، محدود است، بنابراین نمی‌توانیم حجم بسیار زیادی از داده خام را یکجا بیرون بکشیم، اما راه‌هایی برای دسترسی به مجموعه‌های داده‌های بزرگ همانگونه که در دریافت داده‌های OSM و استفاده از Geofabrik و خروجی HOT توضیح داده شده وجود دارد.

در این راهنما از تابع دانلود درونی خود QGIS استفاده می‌کنیم.

QGIS را باز کنید و به Vector -> OpenStreetMap -> Download Data بروید

  • در اینجا می‌توانید از بین چندین گزینه انتخاب کنید - اگر قبلاْ پنجره شما منطقه‌ای را که می‌خواهید نشان می‌دهد، کادر کنار “از روی بوم نقشه” (From map canvas) را تیک بزنید. اگر لایه‌ای از QGIS را دارید که منطقه صحیح را دانلود کرده، «از لایه» (From layer) را انتخاب کنید و لایه‌ای که می‌خواهید استفاده کنید را انتخاب کنید. در اینجا ما “دستی” (Manual) را انتخاب می‌کنیم و طول و عرض جغرافیایی را وارد می‌کنیم که یک کادر محدوده را در اطراف منطقه که می‌خواهیم به آن دسترسی پیدا کنیم تشکیل می‌دهد. می‌توانید طول و عرض‌هایی را که می‌خواهید بنویسید اما به یاد داشته باشید که محدوده نمی‌تواند بیش از حد بزرگ باشد در غیر اینصورت نمی‌توانید همه داده ها را دانلود کنید.

کادر محدوده

  • نام و مسیر فایل خروجی را با استفاده از فرمت osm.انتخاب کنید و روی OK کلیک کنید.
  • هنگامی که دانلود کامل شود، اطلاع داده میشود. روی «بستن» کلیک کنید تا کادر محاوره‌ای دانلود خارج شوید.

دانلود کامل شد

  • داده OSM اکنون در مسیری که مشخص کزده‌اید ذخیره خواهد شد.

این روش دسترسی به داده OSM همانند زمانی است که در JOSM یا در [openstreetmap.org] (http://www.openstreetmap.org) دانلود می‌کنید. برای استخراجهای به روزتر، می‌توانید از سایت HOT export site یا bbbike.org دانلود کنید. به یاد داشته باشید که اگر یک فایل OSM فشرده را دانلود کنید، برای ادامه مراحل بعدی ابتدا باید آن را به فرمت osm. باز کنید.

وارد کردن داده‌ها به SQLite

حالا ما باید فایل خام osm.مان را به پایگاه داده SQLite وارد کنیم.

  • به …Vector -> OpenStreetMap -> Import Topology from XML بروید
  • از فبلد اول فایل .osm را انتخاب کنید.
  • اگر مایل باشید می‌توانید نام فایل پایگاه داده خروجی را تغییر دهید.
  • تیک کنار «ایجاد اتصال …» (…Create Connection) زده شده باشد.

وارد کردن داده‌ها

  • OK را بزنید.
  • پس از اتمام “Close” را بزنید.

ایجاد لایه‌ها

دست آخر لایه‌هایی را که در QGIS استفاده خواهد شد بر اساس نیازهایمان تعریف می‌کنیم.

  • به …Vector -> OpenStreetMap -> Export Topology to SpatiaLite بروید.
  • در فیلد اول، پایگاه داده‌ای را که در مرحله قبلی ایجاد کرده‌اید، انتخاب کنید.

input db file

  • در قسمت “Export type”، نوع ویژگی‌هایی را که می‌خواهید برای لایه ایجاد کنید را انتخاب کنید. در اینجا یک لایه از چندضلعی‌ها ایجاد می‌کنیم.

export type

اگر دوست دارید نام لایه را ویرایش کنید.

قسمت “تگهای صادر شده” (Exported tags) جایی است که جادو اتفاق می‌افتد. در اینجا برچسبهایی را که می‌خواهیم در لایه خروجی ما قرار داشته باشند را وارد کنیم. این به ما انعطاف‌پذیری اینرا میدهد که دقیقاْ به اطلاعاتی که میخواهیم دسترسی داشته باشیم برسیم.

  • بر روی “Load from DB” کلیک کنید تا لیستی از تمام تگ‌های موجود در پایگاه داده مشاهده کنید. اندازه پنجره را با کشیدن گوشه آن گسترش دهید. می‌توانید تمام برچسب‌های موجود در این پایگاه داده و همچنین تعداد ویژگی‌هایی که هر برچسب دارند را مشاهده کنید.
  • کادر کنار برچسب‌هایی که می‌خواهید وارد کنید را تیک بزنید. در اینجا چند ویژگی را انتخاب خواهیم کرد که برای چند ضلعی‌هایی که ساختمانها را نشان می‌دهند مفید خواهد بود.

export full

وقتی که تمام شد، روی OK کلیک کنید. کادر را ببندید. لایه شما باید به صورت خودکار اضافه شود.

cairo polygons

روی لایه کلیک راست کرده و روی “Open Table Attribute” کلیک کنید.

open attribute table

می‌بینید که ما جدولی داریم که شامل تنها ویژگی‌هایی است که انتخاب کردیم.

attribute table

توجه داشته باشید که ما یک لایه فقط از ساختمان‌ها ایجاد نکرده‌ایم. بلکه، لایه‌ای از تمام چند ضلعی‌های داده اصلی ایجاد کرده‌ایم که فقط شامل برچسب‌هایی است که انتخاب کردیم. برای فیلترکردن این لایه جهت نمایش فقط ساختمانها، باید پرس‌وجویی را اجرا کنیم که فقط چند ضلعی‌هایی که در آنها building=yes است انتخاب شوند.

خلاصه

این فرآیند باعث می‌شود تا اطلاعات OSM بروز شده و در QGIS گذاشته شود. وفتی که در QGIS لایه‌هایی مانند این داشته باشید، می‌توانید آنها را به صورت فایلهای شیپ ذخیره کنید، فیلتر و پرس‌وجو را روی آنها اجرا کنید و غیره. برای جزئیات بیشتر در مورد این توابع، منوی Help در QGIS را ببینید.

CC0
Official HOT OSM learning materials