مدیریت هندسه های نامعتبر (QGIS3) 

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

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

سیستم های نرم افزاری مختلف مفاهیم مختلفی از اعتبار هندسه را پیاده سازی می کنند. اما استاندارد پیشرو برای مدل هندسه برای استفاده در GIS، OGC Simple Features Specifications (SFS) است . در این آموزش، از کتابخانه GEOS برای بررسی اعتبار هندسه استفاده می کنیم که از این استاندارد استفاده می کند. این پست یک نمای کلی از خطاهای رایج هندسی که توسط استاندارد OGC تعریف شده است، ارائه می دهد.

نمای کلی کار 

ما با یک لایه مرزی مدیریت برای هند کار خواهیم کرد و یک خطای هندسی را برای یک چند ضلعی حالت رفع خواهیم کرد.

 خواهید گرفت

  • استفاده از الگوریتم رنگ‌آمیزی توپولوژیک برای اعمال یک طرح رنگ‌آمیزی بر روی یک لایه چند ضلعی.

دریافت داده ها 

Datameet فایل های شکل مرزی اداری ایجاد شده توسط جامعه را برای هند فراهم می کند.

فایل فشرده Datameet Spatial Data Repository [~150 MB] را دانلود کنید . آرشیو دانلود شده حاوی چندین پوشه است. آرشیو را استخراج کنید و از فایل های موجود در States/پوشه استفاده کنید.

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

  1. فایل دانلود شده را India-States.zipدر مرورگر QGIS مرور کنید. آن را گسترش دهید و India-States.shpفایل را به بوم نقشه بکشید.
../../_images/1102.png
  1. یک لایه جدید India-Statesدر پنل لایه ها بارگذاری شده است . به پردازش ‣ جعبه ابزار بروید .
../../_images/280.png
  1. ما سعی خواهیم کرد یک الگوریتم پردازش را روی لایه ورودی اجرا کنیم تا نشان دهیم هندسه های نامعتبر چگونه می توانند در طول عملیات ژئوپردازش مشکل ایجاد کنند. الگوریتم رنگ‌آمیزی Cartography ‣ توپولوژیک را جستجو و مکان یابی کنید . برای راه اندازی آن دوبار کلیک کنید.
../../_images/336.png
  1. در گفتگوی رنگ‌آمیزی توپولوژیک ، لایه ورودیIndia-States را انتخاب کنید . تمام پارامترهای دیگر را به صورت پیش فرض نگه دارید و روی Run کلیک کنید .
../../_images/417.png

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

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

  1. همانطور که الگوریتم اجرا می شود، یک اخطار در تب Log نمایش داده می شود . ۱ ویژگی در لایه ورودی دارای هندسه نامعتبر بود و در طول پردازش از آن صرفنظر شد. تنظیم پیش‌فرض برای رسیدگی به هندسه نامعتبر در جعبه ابزار پردازش در تنظیمات ‣ گزینه‌ها ‣ پردازش ‣ عمومی ‣ فیلتر ویژگی‌های نامعتبر قرار دارد و روی تنظیم شده است . این یک تنظیم پیش‌فرض خوب است، اما اگر ورودی شما زیاد باشد، ممکن است این هشدار را از دست بدهید و ندانید که یک ویژگی ورودی نادیده گرفته شده است. ممکن است بخواهید مقدار را به تغییر دهید .Skip (ignore) features with invalid geometriesStop algorithm execution when a geometry is invalid
../../_images/516.png
  1. در پنجره اصلی QGIS، یک لایه جدید Coloredبه پنل لایه ها اضافه شده است . توجه داشته باشید که لایه جدید حالتی را ندارد که هندسه نامعتبر دارد. اکنون می دانیم که این چند ضلعی حالت خاص هندسه نامعتبر داشت اما نمی دانیم علت آن چه بوده است. ما به راحتی می توانیم آن را دریابیم. هندسه برداری را جستجو و مکان یابی کنید  الگوریتم اعتبار را بررسی کنید.
../../_images/616.png
  1. در گفتگوی Check Validity ، India-Statesبه عنوان لایه ورودی انتخاب کنید . GEOSبه عنوان روش انتخاب کنید . روی Run کلیک کنید .
../../_images/715.png
  1. با اتمام پردازش الگوریتم، ۳ لایه جدید را در پنل لایه ها مشاهده خواهید کرد – و . لایه حاوی مکان ها و شرح خطاهای هندسی است. روی آن کلیک راست کرده و Open Attribute Table را انتخاب کنید .Valid outputInvalid outputError outputError output
../../_images/815.png

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

مستندات QGIS یک مقاله مفصل در مورد انواع پیام های خطا و معانی آنها دارد که علل همه خطاها را توضیح می دهد.

  1. خواهید دید که پیغام خطا Ring self-intersection است . ردیف را انتخاب کنید و روی دکمه Zoom map کلیک کنید تا دکمه ویژگی ها را انتخاب کنید. با بزرگنمایی، علت اصلی خطای هندسه را خواهید دید.
../../_images/915.png
  1. QGIS دارای یک الگوریتم داخلی برای رفع خودکار خطاهای هندسی است. الگوریتم Vector geometry ‣ Fix geometries را جستجو و مکان یابی کنید . برای اجرای آن دوبار کلیک کنید.
../../_images/1021.png
  1. در گفتگوی Fix Geometries ، لایه ورودیIndia-States را انتخاب کنید و روی Run کلیک کنید .
../../_images/1124.png
  1. یک لایه جدید به پنل لایه ها اضافه می شود . در این مرحله خطای هندسه رفع می شود و می توانید هر الگوریتم پردازشی را بدون مشکل روی این لایه اجرا کنید. اما می‌توانیم ببینیم که هنوز شکافی بین چند ضلعی‌های مجاور وجود دارد که غیرمنتظره است و می‌تواند باعث ایجاد خطاهای توپولوژیکی در پایین خط شود. ما می توانیم این را نیز با ویرایش چند ضلعی حل کنیم. روی دکمه Toggle Editing در نوار ابزار Digitizing کلیک کنید . ابزار Vertex را انتخاب کرده و از منوی کشویی انتخاب کنید .Fixed GeometriesVertex Tool (Current Layer)
../../_images/1222.png
  1. هنگامی که ابزار vertex فعال است، روی یک راس کلیک کنید تا آن را انتخاب کنید. می توانید Deleteکلید را فشار دهید تا یک راس حذف شود یا آن را بکشید تا آن را جابجا کنید. می توانید رأس را طوری حرکت دهید که لبه چند ضلعی اکنون چند ضلعی مجاور را لمس کند.
../../_images/13.gif
  1. پس از اتمام، دوباره روی دکمه Toggle Editing کلیک کنید و روی Save کلیک کنید .
../../_images/1418.png
  1. بیایید دوباره الگوریتم Cartography ‣ رنگ‌آمیزی توپولوژیکی را اجرا کنیم.
../../_images/1516.png
  1. در گفتگوی Topological Coloring ، مطمئن شوید که لایه ورودی را انتخاب کرده اید . روی Run کلیک کنید .Fixed Geometries
../../_images/1615.png
  1. مشاهده خواهید کرد که الگوریتم بدون هیچ خطایی اجرا می شود و یک لایه جدید به پنل لایه هاColored اضافه می شود . توجه داشته باشید که الگوریتم به خودی خود لایه را رنگ نمی کند، بلکه با افزودن یک ستون جدید به نام هر چند ضلعی کار می کند که می تواند برای اختصاص یک رنگ منحصر به فرد متفاوت از چند ضلعی های مجاور استفاده شود. لایه را انتخاب کنید و روی دکمه Open the Layer Styling Panel کلیک کنید .color_idColored
../../_images/1716.png
  1. Categorizedرندر و ستون را color_idبه عنوان مقدار انتخاب کنید . روی طبقه بندی کلیک کنید . اکنون نقشه را رنگی می بینید که چند ضلعی های مجاور رنگ های متفاوتی داشته باشند.
../../_images/1814.png

اگر می خواهید بازخورد بدهید یا تجربه خود را در مورد این آموزش به اشتراک بگذارید، لطفاً در زیر نظر دهید. (به حساب GitHub نیاز دارد)


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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

خانهدربارهتماسارتباط با ما