انجام پرس و جوهای فضایی

هشدار

این آموزش در حال حاضر منسوخ شده است. نسخه جدید و به روز شده در Performing Spatial Queries (QGIS3) موجود است.

پرس و جوهای فضایی هسته اصلی بسیاری از انواع تجزیه و تحلیل GIS هستند. در QGIS، این قابلیت از طریق افزونه Spatial Query در دسترس است.

بررسی اجمالی کار

ما با 2 مجموعه داده کار خواهیم کرد - یک لایه خطوط نشان دهنده رودخانه ها و یک لایه نقطه نشان دهنده شهرها. وظیفه این است که یک پرس و جو فضایی را برای یافتن همه شهرهایی که در 10 کیلومتری رودخانه قرار دارند، اجرا کنید.

مهارت های دیگری که یاد خواهید گرفت

  • باز کردن فایل های .zip به طور مستقیم در QGIS.

  • باز کردن فایل های .zip به طور مستقیم در QGIS.

  • ایجاد بافر

  • انتخاب ویژگی ها با استفاده از عبارات مشابه SQL.

  • تبدیل شکل فایل به فایل KML.

  • اعتبارسنجی نتایج خود با استفاده از Google Earth.

داده ها را دریافت کنید

ما از مجموعه داده های «ne_10m_rivers_lake_centerlines» و «10m_populated_places_simple» از زمین طبیعی استفاده خواهیم کرد.

دانلود Rivers and Lake Centerlines

«مکان‌های پرجمعیت <http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/ 10m/cultural/ne_10m_populated_places_simple.zip>`_ را دانلود کنید.

منبع داده: [NATURALEARTH]

روش

  1. منبع داده: [NATURAL EARTH] هنگامی که داده ها را دانلود کردید، QGIS را باز کنید. به :menu selection:Layer --> Add Vector Layer بروید.

../_images/1199.png
  1. روی :guilabel:'Browse' کلیک کنید و به پوشه ای که فایل های فشرده را دانلود کرده اید بروید.

../_images/2162.png
  1. کلید :kbd:`Shift را نگه دارید و روی هر دو فایل فشرده کلیک کنید تا آنها را انتخاب کنید. روی :guilabel:'Open' کلیک کنید.

../_images/3102.png
  1. از شما خواسته می شود که یک لایه را از آرشیو فشرده انتخاب کنید. "ne_10m_rivers_lake_centerlines.shp" را انتخاب کنید و روی :guilabel:"OK" کلیک کنید.

../_images/465.png
  1. از آنجایی که چندین فایل را انتخاب کرده اید، این فرآیند را برای فایل بعدی تکرار کنید. 10m_populated_places_simple.shp را انتخاب کنید و روی :guilabel:'OK' کلیک کنید.

../_images/559.png
  1. شما هر دو شکل فایل را که اکنون در QGIS بارگذاری شده اند خواهید دید.

../_images/657.png
  1. ما بافرهایی در اطراف لایه های نقطه و خط ایجاد خواهیم کرد. ابزار geoprocessing "Buffer" در QGIS از "واحدهای لایه" برای محاسبه فواصل بافر استفاده می کند. لایه هایی که ما داریم در «سیستم مرجع مختصات جغرافیایی (CRS)» با واحد «درجات» هستند. این مناسب نیست زیرا می‌خواهیم تحلیل ما از «متر» یا «کیلومتر» استفاده کند. برای دستیابی به این هدف، باید لایه‌های خود را دوباره به یک «سیستم مرجع مختصات پیش‌بینی‌شده (CRS)» بازتاب دهیم. روی "لایه 10m_populated_places_simple" کلیک راست کرده و :guilabel:"Save As" را انتخاب کنید.

../_images/756.png
  1. در گفتگوی ذخیره لایه برداری به عنوان... روی Browse در کنار Save as کلیک کنید و محل فایل خروجی را انتخاب کنید. فایل خروجی را به عنوان "populated_places_reprojected.shp" نامگذاری کنید. سپس روی دکمه :guilabel:`Browse در کنار :guilabel:`CRS کلیک کنید.

../_images/854.png
  1. اکنون باید یک CRS مناسب برای هدف خود انتخاب کنیم. برای ایجاد بافرها، یک برجستگی Azimuthal Equidistant به بهترین وجه مناسب است زیرا فواصل شعاعی اطراف مرکز طرح دقیق هستند. در مورد ما، از آنجایی که مجموعه داده جهانی است، ما یک طرح جهانی را انتخاب می کنیم. در گفتگوی Coordinate Reference System Selector، جستجوی "world az.." را شروع کنید و نتایج را خواهید دید. "World_Azimuthal_Equidistant" را انتخاب کنید و روی :guilabel:"OK" کلیک کنید.

توجه

نمایاندن "World_Azimuthal_Equidistant" 90 درجه نسبت به مبدأ باز می شود. در اینجا مبدا 0 درجه طول جغرافیایی است، تنها داده های موجود در طول جغرافیایی +/- 90 درجه تبدیل می شوند.

../_images/953.png
  1. در گفتگوی ذخیره لایه برداری به عنوان ...، کادر کنار :guilabel:`افزودن فایل ذخیره شده به نقشه را علامت بزنید و روی "OK" کلیک کنید.

../_images/1061.png
  1. فرآیند پروجکشن مجدد را برای لایه ne_10m_rivers_lake_centerlines تکرار کنید و لایه جدید را به عنوان rivers_lake_reprojected.shp ذخیره کنید.

../_images/11100.png
  1. اکنون 4 لایه در Layers Panel خود خواهید داشت. تیک کادرهای کنار لایه های اصلی را بردارید تا فقط لایه های بازپخش شده نمایش داده شوند. لایه‌های بازپخش‌شده همچنان به دلیل تنظیمی در «سی آر اس جغرافیایی» نشان داده می‌شوند. بیایید آن را خاموش کنیم. روی دکمه :guilabel: `Project Properties کلیک کنید. این تنظیمات را می توان از Project ‣ Project Properties نیز مشاهده کرد.

../_images/1263.png
  1. در برگه CRS در گفتگوی Project Properties علامت کادر کنار Enable on-the-fly CRS transformation را بردارید. روی :guilabel:`OK کلیک کنید.

../_images/1360.png
  1. در پنجره اصلی QGIS، بر روی هر یک از لایه‌های بازپخش‌شده کلیک راست کرده و :guilabel: «Zoom to Layer Extent» را انتخاب کنید.

../_images/1457.png
  1. اکنون داده ها را در CRS لایه خواهید دید. اکنون برای هر دو مجموعه داده بافر ایجاد می کنیم. روی :menuselection:'Vector --> Geoprocessing Tools --> Buffer' کلیک کنید.

../_images/1552.png
  1. در ابزار Buffer لایه "populated_places_reprojected" را به عنوان ورودی انتخاب کنید. فاصله بافر را به عنوان "10000" وارد کنید. توجه داشته باشید که ما یک بافر 10 کیلومتری می خواهیم و از آنجایی که واحدهای CRS متر هستند، باید 10000 را وارد کنیم. نام فایل خروجی را به صورت "populated_places_buffer.shp" وارد کنید. روی OK کلیک کنید.

../_images/1649.png
  1. پس از پایان پردازش بافر، روی Yes کلیک کنید تا لایه ایجاد شده جدید به TOC اضافه شود.

../_images/1746.png
  1. همان فرآیند بافر را برای لایه «rivers_lake_reprojected» تکرار کنید و یک فایل خروجی با نام «rivers_lake_buffer.shp» ایجاد کنید.

../_images/1843.png
  1. rivers_lake_buffer حاوی ویژگی هایی است که هم رودخانه هستند و هم دریاچه. تجزیه و تحلیل ما فقط استفاده از ویژگی های رودخانه را می طلبد، بنابراین ما یک پرس و جو برای انتخاب فقط ویژگی های رودخانه اجرا می کنیم. روی لایه "rivers_lake_buffer" کلیک راست کرده و :guilabel:"Open Attribute Table" را انتخاب کنید.

../_images/1934.png
  1. خواهید دید که ویژگی "featurecla" حاوی اطلاعاتی است که می توانیم برای انتخاب ویژگی های رودخانه استفاده کنیم. روی دکمه "انتخاب ویژگی ها با استفاده از یک عبارت" کلیک کنید.

../_images/2029.png
  1. عبارت "featurecla" = "River" را وارد کنید و روی :guilabel:'Select' کلیک کنید و سپس برای بازگشت به پنجره اصلی QGIS روی :guilabel:'Close کلیک کنید.

../_images/2163.png
  1. اکنون آماده انجام پرس و جو فضایی هستیم. برای استفاده از این قابلیت باید "افزونه پرس و جو فضایی" را فعال کنید. برای جزئیات بیشتر به استفاده از پلاگین Plugins مراجعه کنید. پس از فعال شدن، به Vector ‣ Spatial Query ‣ Spatial Query بروید.

../_images/2230.png
  1. برای جستجوی خود، می‌خواهیم ویژگی‌هایی را از مکان‌های بافری انتخاب کنیم که با خطوط رودخانه بافر تلاقی می‌کنند. مطمئن شوید که کادر کنار «هندسه‌های انتخاب شده» علامت زده شده است. این برای اطمینان از این است که پرس و جو فقط از ویژگی های رودخانه ای استفاده می کند که قبلاً انتخاب کردیم. روی :guilabel:'Apply' کلیک کنید.

../_images/2327.png
  1. پس از تکمیل پرس و جو، بخش جدیدی به نام :guilabel:` ویژگی های انتخاب شده را مشاهده خواهید کرد. روی دکمه :guilabel:`Create layer with selected کلیک کنید. یک لایه جدید به "پنل لایه ها" اضافه می شود. روی :guilabel:'Close' کلیک کنید.

../_images/2427.png
  1. بزرگنمایی در هر منطقه و مقایسه نتایج. متوجه خواهید شد که لایه جدید فقط دارای ویژگی هایی است که با بافرهای رودخانه تلاقی می کنند.

../_images/2525.png
  1. ما همیشه باید نتایج من را تأیید کنیم تا مطمئن شویم تجزیه و تحلیل ناقص نیست. یکی از راه‌های تأیید نتایج این است که این لایه را به عنوان یک فایل KML صادر کنید و آن را در Google Earth بارگذاری کنید. می توانید بررسی کنید که آیا مناطقی که پیدا کردید واقعاً در 10 کیلومتری رودخانه هستند یا خیر. روی لایه کلیک راست کنید و Save As....

../_images/2623.png
  1. در ذخیره لایه برداری به عنوان...، "WGS84" را به عنوان CRS انتخاب کنید. این به این دلیل است که فرمت KML باید مختصات در این CRS باشد. KML خود را به عنوان "cities_near_river.kml" نامگذاری کنید.

../_images/2722.png
  1. Google Earth را باز کنید و بررسی کنید که شهرهایی که توسط این بافرها نشان داده شده اند واقعاً نزدیک به رودخانه هستند

../_images/2821.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)