استفاده از دادهٔ OSM در QGIS

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

QGIS (که قبلاً Quantum 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 دانلود می‌کنید. برای گزیده‌های بزرگ‌تر که روزآمد باشد می‌توانید از سایت 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، نوع ویژگی‌هایی را که می‌خواهید برایشان لایه ایجاد کنید، برگزینید. در اینجا یک لایه از چندضلعی‌ها (polygons) ایجاد می‌کنیم.

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 را ببینید.