مدیریت هندسه های نامعتبر (QGIS3)
هنگام کار با لایه های داده برداری، ممکن است با خطاهای هندسی مواجه شوید. این خطاها اغلب پس از اجرای پردازش جغرافیایی، دیجیتالی کردن، ویرایش یا تبدیل داده ها به بخشی از داده های شما تبدیل می شوند. QGIS3 با ابزارها و الگوریتمهای داخلی برای شناسایی و رفع هندسههای نامعتبر ارائه میشود. این آموزش یک گردش کار معمولی برای مدیریت هندسه های نامعتبر در داده های خود را به شما نشان می دهد.
توجه داشته باشید
سیستم های نرم افزاری مختلف مفاهیم مختلفی از اعتبار هندسه را پیاده سازی می کنند. اما استاندارد پیشرو برای مدل هندسه برای استفاده در GIS، OGC Simple Features Specifications (SFS) است . در این آموزش، از کتابخانه GEOS برای بررسی اعتبار هندسه استفاده می کنیم که از این استاندارد استفاده می کند. این پست یک نمای کلی از خطاهای رایج هندسی که توسط استاندارد OGC تعریف شده است، ارائه می دهد.
نمای کلی کار
ما با یک لایه مرزی مدیریت برای هند کار خواهیم کرد و یک خطای هندسی را برای یک چند ضلعی حالت رفع خواهیم کرد.
خواهید گرفت
- استفاده از الگوریتم رنگآمیزی توپولوژیک برای اعمال یک طرح رنگآمیزی بر روی یک لایه چند ضلعی.
دریافت داده ها
Datameet فایل های شکل مرزی اداری ایجاد شده توسط جامعه را برای هند فراهم می کند.
فایل فشرده Datameet Spatial Data Repository [~150 MB] را دانلود کنید . آرشیو دانلود شده حاوی چندین پوشه است. آرشیو را استخراج کنید و از فایل های موجود در States/
پوشه استفاده کنید.
منبع داده: [DATAMEET]
- فایل دانلود شده را
India-States.zip
در مرورگر QGIS مرور کنید. آن را گسترش دهید وIndia-States.shp
فایل را به بوم نقشه بکشید.
- یک لایه جدید
India-States
در پنل لایه ها بارگذاری شده است . به بروید .
- ما سعی خواهیم کرد یک الگوریتم پردازش را روی لایه ورودی اجرا کنیم تا نشان دهیم هندسه های نامعتبر چگونه می توانند در طول عملیات ژئوپردازش مشکل ایجاد کنند. الگوریتم را جستجو و مکان یابی کنید . برای راه اندازی آن دوبار کلیک کنید.
- در گفتگوی رنگآمیزی توپولوژیک ، لایه ورودی
India-States
را انتخاب کنید . تمام پارامترهای دیگر را به صورت پیش فرض نگه دارید و روی Run کلیک کنید .
توجه داشته باشید
الگوریتم رنگ آمیزی توپولوژیکی الگوریتمی را برای رنگ آمیزی نقشه پیاده سازی می کند تا هیچ چندضلعی مجاور هم رنگ نباشد. این یک تکنیک کارتوگرافی مفید است و قضیه چهار رنگ بیان می کند که ۴ رنگ برای رسیدن به این نتیجه کافی است. یک نسخه تئوری گراف از این قضیه وجود دارد به نام قضیه پنج رنگ . پیاده سازی الگوریتم QGIS بر اساس نمودارها است، بنابراین در عمل خواهید دید که لایه های چند ضلعی پیچیده مانند این به حداکثر ۵ رنگ نیاز دارند.
- همانطور که الگوریتم اجرا می شود، یک اخطار در تب Log نمایش داده می شود . ۱ ویژگی در لایه ورودی دارای هندسه نامعتبر بود و در طول پردازش از آن صرفنظر شد. تنظیم پیشفرض برای رسیدگی به هندسه نامعتبر در جعبه ابزار پردازش در قرار دارد و روی تنظیم شده است . این یک تنظیم پیشفرض خوب است، اما اگر ورودی شما زیاد باشد، ممکن است این هشدار را از دست بدهید و ندانید که یک ویژگی ورودی نادیده گرفته شده است. ممکن است بخواهید مقدار را به تغییر دهید .
Skip (ignore) features with invalid geometries
Stop algorithm execution when a geometry is invalid
- در پنجره اصلی QGIS، یک لایه جدید
Colored
به پنل لایه ها اضافه شده است . توجه داشته باشید که لایه جدید حالتی را ندارد که هندسه نامعتبر دارد. اکنون می دانیم که این چند ضلعی حالت خاص هندسه نامعتبر داشت اما نمی دانیم علت آن چه بوده است. ما به راحتی می توانیم آن را دریابیم. هندسه برداری را جستجو و مکان یابی کنید الگوریتم اعتبار را بررسی کنید.
- در گفتگوی Check Validity ،
India-States
به عنوان لایه ورودی انتخاب کنید .GEOS
به عنوان روش انتخاب کنید . روی Run کلیک کنید .
- با اتمام پردازش الگوریتم، ۳ لایه جدید را در پنل لایه ها مشاهده خواهید کرد – و . لایه حاوی مکان ها و شرح خطاهای هندسی است. روی آن کلیک راست کرده و Open Attribute Table را انتخاب کنید .
Valid output
Invalid output
Error output
Error output
توجه داشته باشید
مستندات QGIS یک مقاله مفصل در مورد انواع پیام های خطا و معانی آنها دارد که علل همه خطاها را توضیح می دهد.
- خواهید دید که پیغام خطا Ring self-intersection است . ردیف را انتخاب کنید و روی دکمه Zoom map کلیک کنید تا دکمه ویژگی ها را انتخاب کنید. با بزرگنمایی، علت اصلی خطای هندسه را خواهید دید.
- QGIS دارای یک الگوریتم داخلی برای رفع خودکار خطاهای هندسی است. الگوریتم را جستجو و مکان یابی کنید . برای اجرای آن دوبار کلیک کنید.
- در گفتگوی Fix Geometries ، لایه ورودی
India-States
را انتخاب کنید و روی Run کلیک کنید .
- یک لایه جدید به پنل لایه ها اضافه می شود . در این مرحله خطای هندسه رفع می شود و می توانید هر الگوریتم پردازشی را بدون مشکل روی این لایه اجرا کنید. اما میتوانیم ببینیم که هنوز شکافی بین چند ضلعیهای مجاور وجود دارد که غیرمنتظره است و میتواند باعث ایجاد خطاهای توپولوژیکی در پایین خط شود. ما می توانیم این را نیز با ویرایش چند ضلعی حل کنیم. روی دکمه Toggle Editing در نوار ابزار Digitizing کلیک کنید . ابزار Vertex را انتخاب کرده و از منوی کشویی انتخاب کنید .
Fixed Geometries
Vertex Tool (Current Layer)
- هنگامی که ابزار vertex فعال است، روی یک راس کلیک کنید تا آن را انتخاب کنید. می توانید Deleteکلید را فشار دهید تا یک راس حذف شود یا آن را بکشید تا آن را جابجا کنید. می توانید رأس را طوری حرکت دهید که لبه چند ضلعی اکنون چند ضلعی مجاور را لمس کند.
- پس از اتمام، دوباره روی دکمه Toggle Editing کلیک کنید و روی Save کلیک کنید .
- بیایید دوباره الگوریتم
- در گفتگوی Topological Coloring ، مطمئن شوید که لایه ورودی را انتخاب کرده اید . روی Run کلیک کنید .
Fixed Geometries
- مشاهده خواهید کرد که الگوریتم بدون هیچ خطایی اجرا می شود و یک لایه جدید به پنل لایه ها
Colored
اضافه می شود . توجه داشته باشید که الگوریتم به خودی خود لایه را رنگ نمی کند، بلکه با افزودن یک ستون جدید به نام هر چند ضلعی کار می کند که می تواند برای اختصاص یک رنگ منحصر به فرد متفاوت از چند ضلعی های مجاور استفاده شود. لایه را انتخاب کنید و روی دکمه Open the Layer Styling Panel کلیک کنید .color_id
Colored
Categorized
رندر و ستون راcolor_id
به عنوان مقدار انتخاب کنید . روی طبقه بندی کلیک کنید . اکنون نقشه را رنگی می بینید که چند ضلعی های مجاور رنگ های متفاوتی داشته باشند.
اگر می خواهید بازخورد بدهید یا تجربه خود را در مورد این آموزش به اشتراک بگذارید، لطفاً در زیر نظر دهید. (به حساب GitHub نیاز دارد)