تحلیل فضایی عنوان پستی است که قرار است با شما به اشتراک بگذاریم.امیدوارم که این پست مورد پسندشما قرار گیرد.در این پست، ما از QGIS برای انجام بسیاری از کارهای معمولی پردازش جغرافیایی و تحلیل فضایی استفاده خواهیم کرد. ما با پردازش رستری و وظایف تجزیه و تحلیل مانند برش و تجزیه و تحلیل زمین شروع خواهیم کرد. ما ملزومات تبدیل بین فرمت‌های رستری و برداری را پوشش می‌دهیم و سپس به کارهای رایج ژئوپردازش برداری بردار، مانند تولید نقشه‌های حرارتی و محاسبه سهم‌های منطقه در یک منطقه، ادامه می‌دهیم. ما همچنین از Processing Modeler برای ایجاد گردش کار geoprocessing خودکار استفاده خواهیم کرد. در نهایت، ما پست را با مثال هایی از نحوه استفاده از قدرت پایگاه های داده مکانی برای تجزیه و تحلیل داده های مکانی در QGIS به پایان خواهیم رساند.

تجزیه و تحلیل داده های رستری

داده‌های رستری ، از جمله مدل‌های ارتفاعی یا تصاویر سنجش از دور، اما نه محدود به آن، معمولاً در بسیاری از تحلیل‌ها استفاده می‌شوند. تمرین‌های زیر وظایف رایج پردازش و تحلیل رستری مانند برش دادن تا حدی یا ماسک، ایجاد شطرنج‌های برجسته و شیب را از مدل‌های ارتفاعی دیجیتال و استفاده از ماشین‌حساب رستری نشان می‌دهند.

برش رستری

یک کار متداول در پردازش رستری ، برش یک رستری با چند ضلعی است. این کار توسط ابزار Clipper واقع در Raster | به خوبی پوشش داده شده است استخراج | کلیپر. این ابزار از برش تا حد مشخصی و همچنین برش با استفاده از لایه ماسک چند ضلعی، به شرح زیر پشتیبانی می کند:

  • وسعت را می توان به صورت دستی یا با انتخاب آن در نقشه تنظیم کرد. برای این کار کافیست ماوس را کلیک کرده و بکشیم تا یک مستطیل در ناحیه نقشه پنجره اصلی QGIS باز شود.
  • یک لایه ماسک می تواند هر لایه چند ضلعی باشد که در حال حاضر در پروژه بارگذاری شده است یا هر لایه چند ضلعی دیگری که می تواند با استفاده از Select…، درست در کنار لیست کشویی لایه Mask مشخص شود.

نکته

اگر فقط بخواهیم یک رستری را تا حد معینی کلیپ کنیم (میزان نمای فعلی نقشه یا هر نوع دیگری)، می‌توانیم از قابلیت ذخیره به‌عنوان… نیز استفاده کنیم، همانطور که در نشان داده شده است.فصل 3، ایجاد و ویرایش داده ها.

برای یک تمرین سریع، رستری سایه تپه را برش می دهیم (SR_50M_alaska_nad.tif) با استفاده از Shapefile آلاسکا (هر دو از داده های نمونه ما) به عنوان یک لایه ماسک. در پایین پنجره، همانطور که در تصویر زیر نشان داده شده است، بتن را می بینیمگدالوارپدستوری که QGIS برای برش رستری استفاده می کند. اگر می خواهید نحوه استفاده از GDAL را نیز یاد بگیرید، این بسیار مفید است.

توجه داشته باشید

که درفصل 2با مشاهده داده های مکانی، بحث کردیم که GDAL یکی از کتابخانه هایی است که QGIS برای خواندن و پردازش داده های رستری استفاده می کند. شما می توانید اسناد و مدارک را پیدا کنیدگدالوارپو سایر برنامه های کاربردی GDAL درhttps://www.gdal.org/gdal_utilities.html.

مقدار پیش‌فرض No data مقدار no data است که در مجموعه داده ورودی استفاده می‌شود یا اگر چیزی مشخص نشده باشد 0 است، اما در صورت لزوم می‌توانیم آن را لغو کنیم. گزینه خوب دیگر ایجاد یک باند آلفای خروجی است که تمام قسمت های خارج از ماسک را شفاف می کند. این یک باند اضافی به رستر خروجی اضافه می کند که شفافیت سلول های رستری رندر شده را کنترل می کند.

نکته

یک منبع رایج خطا فراموش کردن افزودن پسوند فرمت فایل به مسیر فایل خروجی است (در مثال ما،تیفبرای GeoTIFF). به طور مشابه، اگر بخواهید یک فایل موجود را بازنویسی کنید، می توانید خطاهایی دریافت کنید. در چنین مواردی، بهترین راه برای رفع خطا این است که نام فایل دیگری را انتخاب کنید یا ابتدا فایل موجود را حذف کنید.

لایه به‌دست‌آمده به‌طور خودکار بارگذاری می‌شود، زیرا ما گزینه Load into canvas را هنگامی که تمام شد فعال کرده‌ایم. QGIS همچنین باید لایه آلفای ایجاد شده را به طور خودکار تشخیص دهد و مناطق رستری که خارج از خشکی آلاسکا قرار دارند باید شفاف باشند، همانطور که در سمت راست در تصویر قبلی نشان داده شده است. اگر به دلایلی، QGIS به طور خودکار لایه آلفا را تشخیص ندهد، می‌توانیم آن را به صورت دستی با استفاده از گزینه Transparency band در قسمت Transparency از ویژگی‌های لایه رستری فعال کنیم، همانطور که در تصویر زیر نشان داده شده است. این گفتگو همچنین مکان مناسبی برای تعیین هر مقدار داده ای است که ممکن است بخواهیم استفاده شود:

تجزیه و تحلیل داده های ارتفاع / زمین

برای استفاده از ابزارهای تجزیه و تحلیل زمین، به یک رستر ارتفاعی نیاز داریم. اگر در دسترس ندارید، می توانید به سادگی یک مجموعه داده را از ماموریت توپوگرافی رادار شاتل ناسا (SRTM) با استفاده از آن دانلود کنید.https://dwtkns.com/srtm/یا هر یک از سرویس های دانلود SRTM دیگر.

توجه داشته باشید

اگر می‌خواهید نتایج را در تمرین زیر دقیقاً تکرار کنید، مجموعه داده را فراخوانی کنیدsrtm_05_01.zipکه بخش کوچکی از آلاسکا را در بر می گیرد.

تجزیه و تحلیل زمین رستری را می توان برای محاسبه شیب، جنبه، سایه تپه، شاخص ناهمواری و رهایی از رستری های ارتفاع استفاده کرد. این ابزارها از طریق پلاگین Raster Terrain Analysis که به طور پیش‌فرض با QGIS ارائه می‌شود، در دسترس هستند، اما باید آن را در مدیریت پلاگین فعال کنیم تا در منوی Raster ظاهر شود، همانطور که در تصویر زیر نشان داده شده است:

تجزیه و تحلیل زمین شامل ابزارهای زیر است:

  • شیب: این ابزار زاویه شیب هر سلول را بر حسب درجه (بر اساس تخمین مشتق مرتبه اول) محاسبه می کند.
  • جهت شیب: این ابزار نمایش را محاسبه می کند (بر حسب درجه و خلاف جهت عقربه های ساعت، شروع با 0 برای شمال).
  • سایه روشن: این ابزار یک رستری پایه تپه با مناطق و سایه های روشن ایجاد می کند.
  • ناهمواری ها: این ابزار یک نقشه برجسته سایه دار با رنگ های مختلف برای محدوده های ارتفاعی مختلف ایجاد می کند.
  • شاخص ناهمواری: این ابزار ناهمواری یک زمین را محاسبه می کند که نشان می دهد یک منطقه چقدر صاف یا صخره ای است. این شاخص برای هر سلول با استفاده از الگوریتم ارائه شده توسط رایلی و دیگران (1999) با خلاصه کردن تغییرات ارتفاع در یک شبکه سلولی 3×3 محاسبه می‌شود.

توجه داشته باشید

نتایج مراحل تجزیه و تحلیل زمین به وضوح داده های ارتفاعی ورودی بستگی دارد. توصیه می شود از داده های ارتفاعی در مقیاس کوچک استفاده کنید، به عنوان مثال، وضوح 30 متر x/y، به ویژه هنگام محاسبه ناهمواری.

یک عنصر مهم در تمام ابزارهای تحلیل زمین، ضریب Z است. در صورتی که واحدهای x/y با واحد z (ارتفاع) متفاوت باشند از ضریب Z استفاده می شود. برای مثال، اگر سعی کنیم از داده‌های ارتفاعی که x/y بر حسب درجه و z بر حسب متر است، یک تسکین ایجاد کنیم، تسکین حاصل به‌شدت اغراق‌آمیز به نظر می‌رسد. مقادیر ضریب z به شرح زیر است:

  • اگر x/y و z همگی بر حسب متر یا فوت هستند، از ضریب پیش‌فرض z استفاده کنید.0
  • اگر x/y بر حسب درجه و z بر حسب فوت است، از ضریب z استفاده کنید370,400
  • اگر x/y بر حسب درجه و z بر حسب متر است، از ضریب z استفاده کنید111120

از آنجایی که رسترهای SRTM در WGS84 EPSG:4326 ارائه شده اند، باید از ضریب Z استفاده کنیم.111120در تمرین ما بیایید یک تسکین ایجاد کنیم! این ابزار می تواند به طور خودکار محدوده های رنگی را محاسبه کند. همانطور که در تصویر زیر نشان داده شده است فقط باید روی Create automatically کلیک کنیم. البته، همچنان می‌توانیم کران‌های بالا و پایین محدوده ارتفاع و همچنین رنگ‌ها را با دوبار کلیک کردن روی ورودی فهرست مربوطه ویرایش کنیم:

در حالی که نقشه های امدادی رستری سه باندی هستند که عمدتاً برای اهداف تجسم استفاده می شوند، رستری های شیب یک مرحله میانی رایج در جریان های کاری تحلیل فضایی هستند. ما اکنون یک رستری شیب ایجاد می کنیم که می توانیم از طریق بخش های زیر در گردش کار مثال خود استفاده کنیم. رستری شیب حاصل به طور خودکار در مقیاس خاکستری بارگذاری می شود، همانطور که در این تصویر نشان داده شده است:

با استفاده از ماشین حساب رستری

با ماشین حساب Raster، ما می توانیم یک لایه رستری جدید بر اساس مقادیر یک یا چند رستر که در پروژه فعلی QGIS بارگذاری شده اند ایجاد کنیم. برای دسترسی به آن، به Raster | بروید ماشین حساب رستری همه باندهای رستری موجود در لیستی در گوشه سمت چپ بالای گفتگو با استفاده از نشان داده می شوندرستری _نام@باند _شمارهقالب

در ادامه تمرین قبلی که در آن یک رستری شیب ایجاد کردیم، می‌توانیم برای مثال مناطقی را در ارتفاعات بالای 1000 متر و با شیب کمتر از 5 درجه با استفاده از عبارت زیر پیدا کنیم:

” srtm_05_01@1 ” > 1000 AND ” slope@1 ” < 5

نکته

ممکن است مجبور شوید مقادیر را بسته به مجموعه داده ای که استفاده می کنید تنظیم کنید. بخش دسترسی به آمار لایه های رستری و برداری را در ادامه این فصل بررسی کنید تا نحوه یافتن حداقل و حداکثر مقادیر را در رستر خود بیاموزید.

به سلول هایی که هر دو معیار ارتفاع زیاد و یکنواختی را برآورده می کنند، مقداری از آنها اختصاص داده می شود1در رستری به دست آمده، در حالی که سلول هایی که نتوانند حتی یک معیار را برآورده کنند، روی تنظیم می شوند0. تنها مناطق بزرگتر با ارزش1در قسمت جنوبی لایه رستری یافت می شوند. می‌توانید بخشی از رستری به‌دست‌آمده (به رنگ سیاه روی لایه برجسته نمایش داده شده) را در سمت راست تصویر زیر ببینید:

یکی دیگر از موارد استفاده معمولی، طبقه بندی مجدد یک رستر است. برای مثال، ممکن است بخواهیم مجدداً طبقه بندی کنیمlandcover.imgرستری در داده های نمونه ما به طوری که تمام مناطق با aپوشش زمینکلاس از1به5ارزش را بدست آورید100، مناطق از6به10گرفتن101، و مناطقی که در آن قرار دارند11یک مقدار جدید از102. برای این کار از کد زیر استفاده خواهیم کرد:

(” landcover@1 ” > 0 AND ” landcover@1 ” <= 6 ) * 100+ (” landcover@1 ” >= 7 AND ” landcover@1 ” <= 10 ) * 101+ (” landcover@1 ” > = 11) * 102

عبارت ماشین حساب رستری قبلی دارای سه بخش است که هر کدام از یک چک و یک ضرب تشکیل شده است. برای هر سلول، تنها یکی از سه بررسی می تواند درست باشد و true به صورت نمایش داده می شود1. بنابراین، اگر الفپوشش زمینسلول دارای مقدار است4، اولین بررسی درست خواهد بود و عبارت به ارزیابی می شود1*100 + 0*101 + 0*102 = 100.

ترکیب داده های رستری و برداری

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

تبدیل بین رستری و بردار

ابزارهای تبدیل بین فرمت های رستری و برداری با رفتن به Raster | قابل دسترسی هستند تبدیل. این ابزارها Rasterize (Vector to Raster) و Polygonize (Raster to Vector) نامیده می شوند. مانند ابزار رستری که قبلا استفاده کردیم، این ابزارها نیز بر اساس GDAL هستند و دستور را در پایین دیالوگ نمایش می دهند.

چندضلعی کردن یک رستر را به یک لایه چند ضلعی تبدیل می کند. بسته به اندازه رستری ، تبدیل ممکن است کمی طول بکشد. هنگامی که فرآیند به پایان رسید، QGIS با یک پنجره به ما اطلاع می دهد. برای یک آزمایش سریع، می‌توانیم، برای مثال، طبقه‌بندی مجدد را تبدیل کنیمپوشش زمینرستری به چند ضلعی لایه چند ضلعی برداری حاصل شامل چندین ویژگی چند ضلعی با یک ویژگی واحد است که نام آن را می گذاریمال سی; همانطور که در تصویر زیر نشان داده شده است، به مقدار رستری اصلی بستگی دارد:

استفاده از ابزار Rasterize بسیار شبیه به استفاده از ابزار Polygonize است. تنها تفاوت این است که می‌توانیم اندازه رستری حاصل را در پیکسل/سلول مشخص کنیم. همانطور که در تصویر بعدی نشان داده شده است، می‌توانیم فیلد ویژگی را نیز مشخص کنیم، که ورودی مقدار سلول رستری را ارائه می‌دهد. در این مورد، ویژگی گربه ماalaska.shpمجموعه داده تقریباً بی معنی است، اما شما این ایده را در مورد نحوه عملکرد ابزار دریافت می کنید:

دسترسی به آمار رستری و لایه برداری

هر زمان که یک مجموعه داده جدید به دست می آوریم، بررسی آمار لایه ها برای دریافت ایده ای از داده های موجود در آن، مانند مقادیر حداقل و حداکثر، تعداد ویژگی ها و موارد دیگر مفید است. QGIS ابزارهای مختلفی را برای کشف این مقادیر ارائه می دهد.

آمار لایه رستری به راحتی در گفتگوی ویژگی های لایه، به ویژه در زبانه های زیر در دسترس هستند:

  • فراداده: این تب حداقل و حداکثر مقدار سلول و همچنین میانگین و انحراف استاندارد مقادیر سلول را نشان می دهد.
  • هیستوگرام: این تب توزیع مقادیر رستری را نشان می دهد. از ماوس برای بزرگنمایی هیستوگرام برای مشاهده جزئیات استفاده کنید. به عنوان مثال، تصویر زیر نسخه بزرگنمایی شده هیستوگرام را برای ما نشان می دهدپوشش زمینمجموعه داده:

برای لایه های برداری می توانیم آمار خلاصه ای را با استفاده از دو ابزار در Vector | بدست آوریم ابزار تحلیل:

  • آمار اولیه برای فیلدهای عددی بسیار مفید است. پارامترهایی مانند میانگین و میانه، حداقل و حداکثر، تعداد ویژگی n، تعداد مقادیر منحصربه‌فرد، و غیره را برای همه ویژگی‌های یک لایه یا فقط برای ویژگی‌های انتخاب شده محاسبه می‌کند.
  • مقادیر منحصر به فرد را فهرست کنیدبرای بدست آوردن تمام مقادیر منحصر به فرد یک فیلد خاص مفید است.

در هر دو ابزار، به راحتی می توانیم نتایج را با استفاده از Ctrl + C کپی کنیم و آنها را در یک فایل متنی یا صفحه گسترده قرار دهیم. تصویر زیر نمونه هایی از کاوش در محتویات ما را نشان می دهدفرودگاه هامجموعه داده نمونه:

جایگزینی برای ابزار آمار پایه، پنل آمار است که می توانید با رفتن به View | آن را فعال کنید پانل ها | پنل آمار. همانطور که در اسکرین شات زیر نشان داده شده است، این پنل را می توان سفارشی کرد تا دقیقاً آن آماری را که به آن علاقه دارید نشان دهد:

محاسبه آمار منطقه ای

به جای محاسبه آمار رستری برای کل لایه، گاهی اوقات لازم است آمار برای مناطق انتخاب شده محاسبه شود. این همان چیزی است که افزونه Zonal statistics برای آن خوب است. این افزونه به صورت پیش فرض نصب شده است و می توان آن را در Plugin Manager فعال کرد.

به عنوان مثال، ما می توانیم آمار ارتفاع برای مناطق اطراف هر فرودگاه را با استفاده از آن محاسبه کنیمsrtm_05_01.tifوAirports.shpاز داده های نمونه ما:

  1. ابتدا، مناطق تجزیه و تحلیل اطراف هر فرودگاه را با استفاده از Vector | ایجاد می کنیم ابزارهای ژئوپردازش | ابزار بافر (ها) و اندازه بافر10000پا.
  2. قبل از اینکه بتوانیم از افزونه Zonal statistics استفاده کنیم، توجه به این نکته مهم است که لایه بافر و رستر elevation از دو CRS مختلف (مخفف Coordinate Reference System) استفاده می کنند. اگر به سادگی جلو می رفتیم، آمار حاصل یا خالی یا اشتباه می شد. بنابراین، ما باید لایه بافر را مجدداً به CRS رستری بازتاب دهیم (WGS84 EPSG:4326، برای جزئیات در مورد نحوه تغییر یک لایه CRS، رجوع کنید به فصل 3، ایجاد و ویرایش داده ها، در قسمت Reprojecting and converting vector and raster data).
  3. اکنون می‌توانیم با استفاده از ابزار Zonal Statistics، آمار مناطق تحلیلی را محاسبه کنیم که با رفتن به Raster | آمار منطقه ای در اینجا، می‌توانیم پیشوند ستون خروجی مورد نظر را پیکربندی کنیم (در مثال ما انتخاب کرده‌ایمelev، که مخفف ارتفاع است) و آمار برای محاسبه (به عنوان مثال،منظور داشتن،کمترین، وبیشترین، همانطور که در تصویر زیر نشان داده شده است:

  1. پس از کلیک بر روی OK، همانطور که در تصویر زیر نشان داده شده است، آمار انتخاب شده به جدول ویژگی لایه چند ضلعی اضافه می شود. می‌توانیم ببینیم که Big Mountain AFS فرودگاهی با بالاترین میانگین ارتفاع در بین چهار فرودگاهی است که در محدوده رستری ارتفاع ما قرار دارند:

 

ایجاد یک نقشه حرارتی از نقاط

نقشه های حرارتی برای تجسم توزیع نقاط عالی هستند. برای ایجاد آنها، QGIS یک پلاگین Heatmap با کاربرد ساده ارائه می کند که باید آن را در Plugin Manager فعال کنیم و سپس با رفتن به Raster می توانیم به آن دسترسی پیدا کنیم | نقشه حرارتی | نقشه حرارت. این افزونه اشکال مختلف کرنل را برای انتخاب ارائه می دهد. هسته یک پنجره متحرک با اندازه و شکل خاصی است که روی ناحیه ای از نقاط حرکت می کند تا چگالی محلی آنها را محاسبه کند. علاوه بر این، این افزونه به ما اجازه می‌دهد تا اندازه رستری نقشه حرارتی خروجی را در سلول‌ها (با استفاده از تنظیمات ردیف‌ها و ستون‌ها) و همچنین اندازه سلول را کنترل کنیم.

توجه داشته باشید

شعاع فاصله اطراف هر نقطه را تعیین می کند که نقطه در آن تأثیر خواهد داشت. بنابراین، مقادیر شعاع کوچکتر منجر به نقشه‌های حرارتی می‌شوند که جزئیات ریزتر و کوچک‌تر را نشان می‌دهند، در حالی که مقادیر بزرگ‌تر منجر به نقشه‌های حرارتی صاف‌تر با جزئیات کمتر می‌شوند.

علاوه بر این، شکل هسته سرعت کاهش تاثیر یک نقطه را با افزایش فاصله از نقطه کنترل می کند. اشکال هسته موجود در افزونه Heatmap در تصویر زیر فهرست شده است. به عنوان مثال، یک هسته Triweight نقاط کوچکتری نسبت به هسته Epanechnikov ایجاد می کند. برای تعاریف رسمی از توابع هسته، بهhttps://en.wikipedia.org/wiki/Kernel_(statistics).

تصویر زیر به ما نشان می دهد که چگونه یک نقشه حرارتی خود را ایجاد کنیمAirports.shpنمونه با شعاع هسته 300000 واحد لایه، که در مورد داده های فرودگاه ما بر حسب فوت است:

به طور پیش فرض، خروجی نقشه حرارتی با استفاده از نوع رندر خاکستری Singleband (با مقادیر رستری کم در سیاه و مقادیر زیاد در سفید) ارائه می شود. برای تغییر استایل به چیزی شبیه به چیزی که در اسکرین شات قبلی دیدید، می توانید کارهای زیر را انجام دهید:

  1. نوع رندر لایه رستری Heatmap را به Singleband pseudocolor تغییر دهید.
  2. همانطور که در تصویر بعدی نشان داده شده است، در بخش Generate new color map در سمت راست دیالوگ، نقشه رنگی را که دوست دارید انتخاب کنید، برای مثال نقشه رنگی PuRd.
  3. می توانید مقادیر حداقل و حداکثر را برای نقشه رنگی به صورت دستی وارد کنید یا با کلیک بر روی Load در قسمت Load min/max مقادیر آنها را محاسبه کنید.

نکته

هنگام بارگیری مقادیر حداقل/حداکثر رستری ، مراقب تنظیمات باشید. برای بدست آوردن مقادیر حداقل/حداکثر واقعی یک لایه رستری ، حداقل/حداکثر، گستره کامل و دقت واقعی (آهسته تر) را فعال کنید. اگر فقط مقادیر حداقل/حداکثر بخش رستری را می خواهید که در حال حاضر روی نقشه نمایش داده می شود، به جای آن از Current Extent استفاده کنید.

  1. بر روی Classify کلیک کنید تا کلاس های نقشه رنگی را به لیست سمت چپ دیالوگ اضافه کنید.
  2. به صورت اختیاری، می‌توانیم رنگ اولین ورودی (برای مقدار 0) را به سفید تغییر دهیم (با دوبار کلیک کردن روی رنگ موجود در لیست) تا یک انتقال صاف از پس‌زمینه نقشه سفید به نقشه حرارتی خود داشته باشیم.

 

تجزیه و تحلیل برداری و رستری با پردازش

جامع ترین مجموعه ابزارهای تجزیه و تحلیل فضایی از طریق افزونه Processing قابل دسترسی است که می توانیم آن را در Plugin Manager فعال کنیم. هنگامی که این افزونه فعال می شود، یک منوی Processing پیدا می کنیم، جایی که می توانیم جعبه ابزار را فعال کنیم، همانطور که در تصویر زیر نشان داده شده است. در جعبه ابزار، به لطف کادر جستجوی پویا در بالا، به راحتی می توان ابزارهای تحلیل فضایی را با نام آنها پیدا کرد. این کار یافتن ابزارها را در جعبه ابزار آسان تر از منوی Vector یا Raster می کند. مزیت دیگر عادت کردن به ابزارهای پردازش این است که می‌توان آنها را در پایتون و در مدل‌های پردازش جغرافیایی خودکار کرد.

در بخش‌های بعدی، گزیده‌ای از ابزارهای پردازش جغرافیایی موجود را پوشش خواهیم داد و خواهیم دید که چگونه می‌توانیم از مدل‌ساز برای خودکارسازی وظایف خود استفاده کنیم.

پیدا کردن نزدیکترین همسایگان

یافتن نزدیکترین همسایگان، به عنوان مثال، نزدیکترین فرودگاه به یک مکان پرجمعیت، یک کار رایج در ژئوپردازش است. برای یافتن نزدیکترین همسایه و ایجاد ارتباط بین ویژگیهای ورودی و نزدیکترین همسایه آنها در یک لایه دیگر، میتوانیم از ابزار Distance to nearest hub استفاده کنیم.

همانطور که در اسکرین شات بعدی نشان داده شده است، ما از مکان های پر جمعیت به عنوان لایه نقاط منبع و فرودگاه ها به عنوان لایه هاب مقصد استفاده می کنیم. ویژگی نام لایه هاب به آن اضافه خواهد شدنتایججدول ویژگی برای شناسایی نزدیکترین ویژگی. بنابراین، ما انتخاب می کنیمنامبرای افزودن نام فرودگاه به مکان های پرجمعیت دو گزینه برای نوع شکل خروجی وجود دارد:

  • نقطه: این گزینه یک لایه خروجی نقطه ای با تمام نقاط لایه نقطه مبدا ایجاد می کند، با ویژگی های جدید برای ویژگی نزدیکترین هاب و فاصله تا آن.
  • خط به هاب: این گزینه یک لایه خروجی خط با اتصالات بین تمام نقاط لایه نقطه مبدا و نزدیکترین ویژگی هاب مربوط به آنها ایجاد می کند.

توصیه می شود از واحدهای لایه به عنوان واحد اندازه گیری برای جلوگیری از مشکلات احتمالی در اندازه گیری های اشتباه استفاده کنید:

تبدیل بین نقاط، خطوط و چندضلعی ها

اغلب لازم است که بتوان بین نقاط، خطوط و چند ضلعی ها را تبدیل کرد، برای مثال، خطوطی را از یک سری نقاط ایجاد کرد، یا گره های چند ضلعی ها را استخراج کرد و یک لایه نقطه جدید از آنها ایجاد کرد. ابزارهای زیادی وجود دارد که این موارد استفاده متفاوت را پوشش می دهد. جدول زیر نمای کلی ابزارهایی را ارائه می دهد که در جعبه ابزار پردازش برای تبدیل بین نقاط، خطوط و چند ضلعی ها موجود هستند:

 

  به نقاط به خطوط به چند ضلعی ها
از نقاط   به مسیر اشاره می کند بدنه محدب

بدنه مقعر

از خطوط استخراج گره ها   خطوط به چند ضلعی

بدنه محدب

از چند ضلعی ها استخراج گره ها

مرکز چند ضلعی

(نقاط تصادفی داخل یک چند ضلعی)

چند ضلعی به خطوط  

به طور کلی، تبدیل نمایش های پیچیده تر به ساده تر (چند ضلعی ها به خطوط، چند ضلعی ها به نقاط، یا خطوط به نقاط) آسان تر از تبدیل در جهت دیگر (نقاط به خطوط، نقاط به چند ضلعی، یا خطوط به چندضلعی) است. در اینجا مروری کوتاه بر این ابزارها وجود دارد:

  • استخراج گره ها: این یک ابزار بسیار ساده است. یک لایه ورودی با خطوط یا چند ضلعی می گیرد و یک لایه نقطه ای ایجاد می کند که شامل تمام گره های هندسه ورودی است. نقاط به دست آمده شامل تمام ویژگی های خط اصلی یا ویژگی چند ضلعی هستند.
  • مرکز چند ضلعی: این ابزار یک مرکز در هر چند ضلعی یا چند ضلعی ایجاد می کند. شایان ذکر است که اطمینان حاصل نمی شود که مرکز در داخل چند ضلعی قرار می گیرد. برای چند ضلعی های مقعر، چند ضلعی ها و چند ضلعی های دارای سوراخ، مرکز می تواند خارج از چند ضلعی قرار گیرد.
  • نقاط تصادفی در داخل چند ضلعی: این ابزار تعداد مشخصی نقطه را در مکان های تصادفی داخل چند ضلعی ایجاد می کند.
  • به مسیر اشاره می کند: برای اینکه بتوان خطوطی را از نقاط ایجاد کرد، لایه نقطه به ویژگی هایی نیاز دارد که خط (فیلد گروه) و ترتیب نقاط در خط (فیلد Order) را مشخص کند، همانطور که در این تصویر نشان داده شده است:

  • بدنه محدب: این ابزار یک بدنه محدب در اطراف نقاط یا خطوط ورودی ایجاد می کند. بدنه محدب را می توان به عنوان ناحیه ای تصور کرد که شامل تمام نقاط ورودی و همچنین تمام اتصالات بین نقاط ورودی است.
  • بدنه مقعر: این ابزار یک بدنه مقعر در اطراف نقاط ورودی ایجاد می کند. بدنه مقعر چند ضلعی است که مساحت اشغال شده توسط نقاط ورودی را نشان می دهد. بدنه مقعر برابر یا کوچکتر از بدنه محدب است. در این ابزار می توانیم سطح جزئیات بدنه مقعر را با تغییر پارامتر Threshold بین0(بسیار مفصل) و1(که معادل بدنه محدب است). تصویر زیر مقایسه ای بین بدنه های محدب و مقعر را نشان می دهد (با آستانه تنظیم شده بر روی3) در اطراف داده های فرودگاه ما:

  • خطوط به چند ضلعی: در نهایت این ابزار می تواند از خطوطی که یک ناحیه را در بر می گیرد چند ضلعی ایجاد کند. اطمینان حاصل کنید که هیچ شکافی بین خطوط وجود ندارد. در غیر این صورت کار نخواهد کرد.

شناسایی ویژگی ها در مجاورت سایر ویژگی ها

یکی از وظایف رایج تجزیه و تحلیل فضایی، شناسایی ویژگی ها در مجاورت ویژگی های خاص دیگر است. یک مثال می تواند یافتن همه فرودگاه ها در نزدیکی رودخانه ها باشد. استفاده كردنAirports.shpوmajrivers.shpاز داده های نمونه خود، می توانیم پیدا کنیمفرودگاه هادر داخل5000فوت یک رودخانه با استفاده از ترکیبی از بافر فاصله ثابت و ابزار انتخاب بر اساس مکان. از کادر جستجو برای یافتن ابزارها در جعبه ابزار پردازش استفاده کنید. تنظیمات ابزار برای این مثال در تصویر زیر نشان داده شده است:

پس از بافر کردن مکان‌های نقطه فرودگاه، ابزار Select by location تمام بافرهای فرودگاه را که رودخانه را قطع می‌کنند انتخاب می‌کند. در نتیجه، 14 فرودگاه از 76 فرودگاه انتخاب می شوند. این اطلاعات در قسمت اطلاعات در پایین پنجره اصلی QGIS نمایش داده می شود، همانطور که در این تصویر نشان داده شده است:

اگر فراموش کردید از کدام تنظیمات استفاده کرده اید یا باید بررسی کنید که آیا از لایه ورودی صحیح استفاده کرده اید، می توانید به پردازش | تاریخ. همانطور که در تصویر زیر نشان داده شده است، بخش ALGORITHM تمام الگوریتم هایی را که اجرا کرده ایم و همچنین تنظیمات استفاده شده را فهرست می کند:

دستورات فهرست شده در زیر ALGORITHM همچنین می توانند برای فراخوانی ابزارهای پردازش از کنسول QGIS Python استفاده شوند که با رفتن به Plugins فعال می شوند | کنسول پایتون دستورات پایتون که در تصویر زیر نشان داده شده اند، الگوریتم بافر را اجرا می کنند (پردازش.runalg) و نتیجه را در نقشه بارگذاری کنید (پردازش. بار):

نمونه برداری از یک رستر در مکان های نقطه ای

یکی دیگر از کارهای رایج نمونه برداری از یک رستر در مکان های نقطه ای خاص است. با استفاده از Processing می توانیم این مشکل را با ابزار GRASS به نام حل کنیمv.sample. برای استفاده از ابزارهای GRASS، مطمئن شوید که GRASS نصب شده است و Processing به درستی در زیر پردازش پیکربندی شده است | گزینه ها و پیکربندی در یک سیستم پیش‌فرض OSGeo4W، پیکربندی به شکلی خواهد بود که در اینجا نشان داده شده است:

توجه داشته باشید

در زمان نگارش این کتاب، GRASS 7.0.3RC1 در OSGeo4W موجود است. همانطور که در تصویر قبلی نشان داده شده است، از نسخه قبلی GRASS 6.x نیز پشتیبانی می‌شود، و Processing را می‌توان برای استفاده از الگوریتم‌های آن پیکربندی کرد. در جعبه ابزار، الگوریتم های زیر دستورات GRASS GIS 7 و دستورات GRASS (برای GRASS 6.x) را خواهید یافت.

برای این تمرین، بیایید تصور کنیم که می‌خواهیم از لایه پوشش زمین در مکان‌های فرودگاه داده‌های نمونه خود نمونه برداری کنیم. تنها کاری که باید انجام دهیم این است که لایه برداری حاوی نقاط نمونه و لایه رستری که باید نمونه برداری شود را مشخص کنیم. برای این مثال، می‌توانیم تمام تنظیمات دیگر را در مقادیر پیش‌فرض خود بگذاریم، همانطور که در تصویر زیر نشان داده شده است. این ابزار نه تنها از رستری نمونه برداری می کند، بلکه ویژگی های نقطه ای را با مقدار رستری نمونه گیری شده نیز مقایسه می کند. با این حال، ما در مثال فعلی خود به این مقایسه نیازی نداریم:

تراکم نقشه برداری با شبکه های شش ضلعی

ترسیم چگالی نقاط با استفاده از یک شبکه شش ضلعی به یک جایگزین کاملاً محبوب برای ایجاد نقشه های حرارتی تبدیل شده است. پردازش یک راه سریع برای ایجاد چنین تحلیلی به ما ارائه می دهد. در حال حاضر یک اسکریپت از پیش ساخته شده به نام شبکه هگزا از مرزهای لایه وجود دارد که از طریق مجموعه اسکریپت های پردازش در دسترس است و می توان آن را با استفاده از ابزار مجموعه اسکریپت دریافت اسکریپت ها از آنلاین دانلود کرد. همانطور که در اسکرین شات زیر می بینید، فقط باید اسکریپت را با علامت زدن چک باکس و کلیک روی OK فعال کنید:

سپس، می توانیم از این اسکریپت برای ایجاد یک شبکه شش ضلعی استفاده کنیم که تمام نقاط لایه ورودی را پوشش می دهد. مجموعه داده مکان های پرجمعیت (popp.shp) یک مجموعه داده نمونه خوب برای این تمرین است. هنگامی که گرید آماده شد، می‌توانیم Count points را در چند ضلعی اجرا کنیم تا آمار را محاسبه کنیم. اگر از تنظیمات نشان داده شده در تصویر زیر استفاده کنید، تعداد نقاط در ستون NUMPOINTS ذخیره می شود:

محاسبه سهم منطقه در یک منطقه

یکی دیگر از کارهای تجزیه و تحلیل فضایی که اغلب با آن روبرو می شویم، محاسبه سهم مساحت در یک منطقه خاص است، به عنوان مثال، سهم پوشش زمین در امتداد یک رودخانه خاص. استفاده كردنmajrivers.shpوtrees.shpمی‌توانیم سهم مساحت جنگلی را در یک نوار زمینی به وسعت 10000 فوت در امتداد رودخانه سوسیتنا محاسبه کنیم:

  1. ابتدا منطقه تحلیل را با انتخاب رودخانه و بافر کردن آن تعریف می کنیم.

نکته

پردازش QGIS تنها بافرها را برای ویژگی های انتخابی لایه ورودی اعمال می کند. این رفتار پیش فرض را می توان تحت پردازش | تغییر داد گزینه ها و پیکربندی با غیرفعال کردن گزینه Use only selected features. برای مثال های زیر، لطفاً گزینه را فعال بگذارید.

برای انتخاب رودخانه Susitna از ابزار Select by ویژگی استفاده می کنیم. پس از اجرای ابزار، باید ببینید که رودخانه مورد علاقه ما انتخاب و برجسته شده است.

  1. سپس می‌توانیم از ابزار بافر فاصله ثابت استفاده کنیم تا منطقه را در فاصله 5000 فوتی در امتداد رودخانه قرار دهیم. توجه داشته باشید که گزینه Dissolve result باید فعال شود تا اطمینان حاصل شود که نتیجه بافر یک چند ضلعی پیوسته است، همانطور که در تصویر زیر نشان داده شده است:

  1. بعد، اندازه نوار زمین اطراف رودخانه خود را محاسبه می کنیم. این را می توان با استفاده از ابزار Export/Add geometry columns انجام داد که مساحت و محیط را به جدول ویژگی اضافه می کند.
  2. سپس می‌توانیم تقاطع بین مساحت رودخانه و مناطق جنگلی را محاسبه کنیمshp، همانطور که در تصویر زیر نشان داده شده است. نتیجه این عملیات لایه ای است که تنها شامل آن مناطق درختی در داخل حائل رودخانه است.

  1. با استفاده از ابزار Dissolve، می‌توانیم همه نواحی از نتایج تقاطع را در یک چندضلعی بزرگ که کل منطقه جنگلی اطراف رودخانه را نشان می‌دهد، دوباره ترکیب کنیم. توجه داشته باشید که چگونه از فیلد Unique ID استفاده می کنیمVEGDESCفقط مناطقی را با پوشش گیاهی یکسان ترکیب کنند تا درختان برگریز و مخلوط مخلوط نشوند.
  2. در نهایت، می‌توانیم سهم نهایی منطقه جنگلی را با استفاده از ماشین‌حساب میدان پیشرفته پایتون محاسبه کنیم. فرمولvalue = $geom.area()/<area>مساحت چندضلعی نهایی را تقسیم می کند ($geom.area()) توسط مقدار درحوزهصفت (<منطقه>) که قبلا با اجرای ستون های هندسه Export/Add ایجاد کردیم. همانطور که در تصویر زیر نشان داده شده است، این محاسبه منجر به سهم چوب 0.31601 برای برگریز و 0.09666 برای درختان مخلوط می شود. بنابراین، می‌توان نتیجه گرفت که در مجموع، 27/41 درصد از زمین‌های کنار رودخانه سوسیتنا مشجر است:

 

پردازش دسته ای مجموعه داده های متعدد

گاهی اوقات، می‌خواهیم همان ابزار را به طور مکرر اجرا کنیم اما با تنظیمات کمی متفاوت. برای این مورد، Processing عملکرد Batch Processing را ارائه می دهد. بیایید از این ابزار برای استخراج چند نمونه از لایه فرودگاه های خود با استفاده از ابزار استخراج تصادفی استفاده کنیم:

  1. برای دسترسی به قابلیت پردازش دسته ای، بر روی ابزار استخراج تصادفی در جعبه ابزار کلیک راست کرده و Execute as Batch process را انتخاب کنید. با این کار کادر گفتگوی پردازش دسته ای باز می شود.
  2. در مرحله بعد طبق تصویر زیر با کلیک بر روی دکمه … و انتخاب از بین لایه های باز، لایه ورودی را پیکربندی می کنیم:

  1. با این کار یک دیالوگ کوچک باز می شود که در آن می توانیم انتخاب کنیمفرودگاه هالایه و روی OK کلیک کنید.
  2. برای پرکردن خودکار سایر سطرها با همان لایه ورودی، می‌توانیم روی هدر جدول ستون مربوطه (که لایه ورودی را می‌خواند) دوبار کلیک کنیم.
  3. در مرحله بعد، روش را با انتخاب گزینه درصد از ویژگی های انتخاب شده پیکربندی می کنیم و دوباره روی هدر جدول مربوطه دوبار کلیک می کنیم تا ردیف های باقی مانده به طور خودکار پر شوند.
  4. پارامتر بعدی تعداد/درصد ویژگی های انتخاب شده را کنترل می کند. برای تمرین خود، 10، 20 و 30 درصد را پیکربندی می کنیم.
  5. آخرین اما نه کم اهمیت، ما باید فایل های خروجی را در ستون Extracted (تصادفی) پیکربندی کنیم. بر روی دکمه … کلیک کنید، که یک گفتگوی فایل باز می شود. در آنجا، می توانید مکان ذخیره و نام فایل را انتخاب کنید (به عنوان مثال،استخراج کردن) و روی Save کلیک کنید.
  6. با این کار کادر گفتگوی تنظیمات تکمیل خودکار باز می‌شود، که به ما کمک می‌کند تا به‌طور خودکار نام فایل‌های متمایز را برای هر اجرا ایجاد کنیم. استفاده از حالت Fill with پارامتر مقادیر با پارامتر Number/percentage of Selected features به طور خودکار مقادیر پارامتر ما (به ترتیب 10، 20 و 30) را به نام فایل اضافه می کند. این منجر خواهد شداستخراج 10،استخراج 20، واستخراج 30، همانطور که در تصویر زیر نشان داده شده است:

  1. هنگامی که همه چیز پیکربندی شد، روی دکمه Run کلیک کنید و منتظر بمانید تا تمام دستورالعمل های دسته ای پردازش شوند و نتایج در پروژه بارگذاری شوند.

ژئوپردازش خودکار با مدل ساز گرافیکی

با استفاده از مدل‌ساز گرافیکی، می‌توانیم کل گردش‌های کاری ژئوپردازش و تحلیل را به مدل‌های خودکار تبدیل کنیم. سپس می‌توانیم از این مدل‌ها برای اجرای وظایف پیچیده ژئوپردازش که شامل چندین ابزار مختلف در یک حرکت هستند استفاده کنیم. برای ایجاد مدل به Processing | می رویم مدل‌ساز گرافیکی برای باز کردن مدل‌ساز، جایی که می‌توانیم از ورودی‌ها و الگوریتم‌های مختلف برای مدل خود انتخاب کنیم.

بیایید مدلی ایجاد کنیم که ایجاد نقشه های حرارتی شش ضلعی را به طور خودکار انجام دهد!

  1. با دوبار کلیک بر روی ورودی لایه Vector در لیست ورودی ها، می توانیم یک فیلد ورودی برای لایه نقطه اضافه کنیم. استفاده از نام پارامترهای توصیفی ایده خوبی است (به عنوان مثال،اندازه سلول هگزابه جای فقطاندازهبرای پارامتری که اندازه سلول‌های شبکه شش ضلعی را کنترل می‌کند) تا بتوانیم تشخیص دهیم کدام ورودی اول و کدام بعد در مدل است. همچنین محدود کردن قسمت Shape type در هر کجا که مناسب باشد مفید است. در مثال ما، ورودی را به لایه های Point محدود می کنیم. این کار Processing را قادر می‌سازد تا لایه‌های موجود را از قبل فیلتر کند و فقط لایه‌های نوع صحیح را به ما ارائه دهد.
  2. ورودی دومی که به آن نیاز داریم یک فیلد Number برای تعیین اندازه سلول شش ضلعی مورد نظر است، همانطور که در این تصویر نشان داده شده است:

  1. پس از اضافه کردن ورودی‌ها، اکنون می‌توانیم با مونتاژ الگوریتم‌ها، ساخت مدل را ادامه دهیم. در بخش الگوریتم‌ها، می‌توانیم از فیلتر بالا برای محدود کردن جستجوی الگوریتم صحیح استفاده کنیم. برای افزودن یک الگوریتم به مدل، به سادگی روی ورودی لیست الگوریتم ها دوبار کلیک می کنیم. این دیالوگ الگوریتم را باز می کند، جایی که باید ورودی ها و پارامترهای بیشتر مربوط به الگوریتم را مشخص کنیم.
  2. در مثال ما، می‌خواهیم از لایه بردار نقطه به عنوان لایه ورودی و از اندازه سلول هگزا ورودی عدد به عنوان پارامتر سلولی استفاده کنیم. همانطور که در تصویر زیر نشان داده شده است، می توانیم از طریق لیست کشویی به ورودی های موجود دسترسی داشته باشیم. همچنین، می‌توان با تایپ مقدار دلخواه در فیلد ورودی، پارامترهایی مانند اندازه سلول را کدگذاری کرد:

نکته

هنگام اضافه کردن الگوریتم های زیر، مهم است که همیشه لایه ورودی صحیح را بر اساس مرحله پردازش قبلی انتخاب کنید. ما می توانیم گردش کار را با استفاده از اتصالات موجود در نمودار مدل که مدل ساز به طور خودکار ترسیم می کند تأیید کنیم.

  1. مدل نهایی به شکل زیر خواهد بود:

  1. برای تکمیل مدل، باید نام مدل را وارد کنیم (به عنوان مثال،نقشه حرارتی شش ضلعی ایجاد کنید) و نام گروه (به عنوان مثال،یادگیری QGIS). پردازش از نام گروه برای سازماندهی تمام مدل هایی که ایجاد می کنیم در گروه های جعبه ابزار مختلف استفاده می کند. وقتی نام و گروهی را انتخاب کردیم، می‌توانیم مدل را ذخیره کرده و سپس آن را اجرا کنیم.
  2. پس از بستن مدل ساز، می توانیم مدل های ذخیره شده را مانند هر ابزار دیگری از جعبه ابزار اجرا کنیم. حتی می توان از یک مدل به عنوان بلوک ساختمانی برای مدل دیگر استفاده کرد.

 

یکی دیگر از ویژگی های مفید این است که می توانیم سبک لایه ای را مشخص کنیم که باید به طور خودکار روی نتایج پردازش اعمال شود. این سبک پیش فرض را می توان با استفاده از ویرایش سبک های رندر برای خروجی ها در منوی زمینه مدل ایجاد شده در جعبه ابزار تنظیم کرد، همانطور که در تصویر زیر نشان داده شده است:

مستندسازی و به اشتراک گذاری مدل ها

مدل ها را می توان به راحتی از یک نصب QGIS به دیگری کپی کرد و با سایر کاربران به اشتراک گذاشت. برای اطمینان از قابلیت استفاده از مدل، ایده خوبی است که یک مستند کوتاه بنویسید. پردازش یک ویرایشگر راهنما را فراهم می کند. همانطور که در این تصویر نشان داده شده است، می توان با کلیک بر روی دکمه راهنمای ویرایش مدل در Processing modeler به آن دسترسی داشت:

به طور پیش فرض،.مدلفایل ها در فهرست کاربری شما ذخیره می شوند. در ویندوز، این استC:\Users\<your_user_name>\.qgis2\processing\modelsو در لینوکس و OS X، اینطور است~/.qgis2/processing/models.

می توانید این فایل ها را کپی کرده و با دیگران به اشتراک بگذارید. برای بارگذاری یک مدل از یک فایل، از ابزار بارگذاری با رفتن به Models | استفاده کنید ابزار | مدل را از فایل در جعبه ابزار پردازش اضافه کنید.

استفاده از قدرت پایگاه داده های فضایی

رویکرد دیگر برای پردازش جغرافیایی استفاده از قابلیت های ارائه شده توسط پایگاه های داده فضایی مانند PostGIS و SpatiaLite است. در بخش Loading data from databases ازفصل 2با مشاهده Spatial Data، نحوه بارگیری داده ها از پایگاه داده SpatiaLite را مورد بحث قرار دادیم. در این تمرین، از توابع ژئوپردازش داخلی SpatiaLite برای انجام تحلیل فضایی به طور مستقیم در پایگاه داده و تجسم نتایج در QGIS استفاده خواهیم کرد. ما از همان پایگاه داده SpatiaLite استفاده خواهیم کرد که در آن دانلود کرده ایم فصل 2، مشاهده داده های مکانی، ازwww.gaia-gis.it/spatialite-2.3.1/test-2.3.zip(4 مگابایت).

انتخاب بر اساس مکان در SpatiaLite

به عنوان مثال، ما از توابع فضایی SpatiaLite برای دریافت تمام بزرگراه هایی که در فاصله 1 کیلومتری از شهر Firenze هستند استفاده خواهیم کرد:

  1. برای تعامل با دیتابیس از افزونه DB Manager استفاده می کنیم که می توان آن را در Plugin Manager فعال کرد و از طریق منوی Database در دسترس است.

توجه داشته باشید

اگر قسمت Loading data from databases را دنبال کرده باشیدفصل 2، با مشاهده داده های مکانی، خواهید دیدtest-2.3.sqliteهمانطور که در تصویر بعدی نشان داده شده است، در زیر SpatiaLite در درخت سمت چپ کادر گفتگوی مدیریت DB فهرست شده است. اگر پایگاه داده در لیست نیست، برای تنظیم اتصال پایگاه داده به بخش ذکر شده قبلی مراجعه کنید.

  1. در مرحله بعد، می‌توانیم با استفاده از دکمه نوار ابزار پنجره SQL، با رفتن به پایگاه داده | یک تب Query باز کنیم پنجره SQL یا با فشار دادن F2. پرس و جوی SQL زیر تمام بزرگراه هایی را که در فاصله 1 کیلومتری شهر Firenze هستند انتخاب می کند:

SELECT * FROM HighWaysWHERE PtDistWithin( HighWays.Geometry, (SELECT Geometry FROM Towns WHERE Name = ‘Firenze’)، 1000)

درهندسه را از شهرها انتخاب کنید که در آن نام = ‘Firenze’subquery هندسه نقطه ای را انتخاب می کند که نشان دهنده شهر Firenze است. سپس از این نقطه درPtDistWithinبرای آزمایش هندسه هر بزرگراه و بررسی اینکه آیا در فاصله 1000 متری قرار دارد یا خیر.

نکته

مقدمه‌ای بر SQL خارج از محدوده این کتاب است، اما می‌توانید یک آموزش کامل در مورد استفاده از SpatiaLite در اینجا بیابید.https://www.gaia-gis.it/gaia-sins/spatialite-cookbook/index.html. علاوه بر این، برای دریافت یک نمای کلی از همه عملکردهای فضایی ارائه شده توسط SpatiaLite، ازhttps://www.gaia-gis.it/gaia-sins/spatialite-sql-4.2.0.html.

  1. وقتی کوئری وارد شد، می‌توانیم روی Execute (F5) کلیک کنیم تا کوئری اجرا شود. نتایج پرس و جو به شکل جدولی در بخش نتیجه زیر ناحیه ورودی پرس و جو SQL نمایش داده می شود، همانطور که در تصویر زیر نشان داده شده است:

  1. برای نمایش نتایج پرس و جو بر روی نقشه، باید گزینه Load as new layer را در زیر جدول نتایج فعال کنیم. مطمئن شوید که ستون هندسه درست را انتخاب کرده اید (هندسه).
  2. هنگامی که این تنظیمات را پیکربندی کردید، می توانید روی Load now کلیک کنید! برای بارگیری نتیجه پرس و جو به عنوان یک لایه نقشه جدید. همانطور که در تصویر قبلی مشاهده می کنید، تنها یکی از بزرگراه ها (که با خط آبی عریض نشان داده می شود) در 1 کیلومتری شهر Firenze قرار دارد.

 

جمع آوری داده ها در SpatiaLite

یکی دیگر از مواردی که پایگاه داده ها در آن بسیار خوب هستند، جمع آوری داده ها است. به عنوان مثال، پرس و جوی SQL زیر تعداد شهرها را در هر منطقه شمارش می کند:

Regions.Name، Regions.Geometry، count(*) را به عنوان CountFROM Regions انتخاب کنید. به شهرها در داخل (Towns.Geometry،Regions.Geometry)GROUP BY Regions.Name بپیوندید

این می تواند برای ایجاد یک لایه جدید از مناطق استفاده شود که شامل aشمردنصفت. همانطور که در این تصویر نشان داده شده است، تعداد شهرهای منطقه را نشان می دهد:

توجه داشته باشید

اگرچه ما در این مثال از SpatiaLite استفاده کرده‌ایم، ابزارها و گردش کار ارائه‌شده در اینجا به همان خوبی با پایگاه‌های داده PostGIS کار می‌کنند. البته شایان ذکر است که SpatiaLite و PostGIS اغلب از نام‌های تابع کمی متفاوت استفاده می‌کنند. بنابراین، معمولاً لازم است پرس و جوهای SQL را بر اساس آن تنظیم کنید.

خلاصه

در این پست، ما به ابزارهای مختلف پردازش و تجزیه و تحلیل جغرافیایی رستری و برداری و نحوه اعمال آنها در کارهای رایج پرداختیم. ما دیدیم که چگونه از جعبه ابزار Processing برای اجرای ابزارهای فردی و همچنین مدلساز برای ایجاد مدل های پردازش جغرافیایی پیچیده از چندین ابزار استفاده کنیم. با استفاده از مدل‌ساز، می‌توانیم گردش کار خود را خودکار کرده و بهره‌وری خود را افزایش دهیم، مخصوصاً در مورد کارهای تکراری. در نهایت، ما همچنین نگاهی گذرا به نحوه استفاده از قدرت پایگاه داده های فضایی برای انجام تحلیل فضایی داشتیم.

در پست بعد، خواهیم دید که چگونه تمام دانش خود را برای ایجاد نقشه های زیبا با استفاده از سبک های پیشرفته و ویژگی های ترکیب نقشه چاپی گرد هم بیاوریم.

برگرفته از کتاب آموزش کاربردی QGIS

مترجم:دکتر سعیدجوی زاده،ونوس نصیرفام

9 نظرات

دیدگاهتان را بنویسید